)]}'
{
  "commit": "0c7fc4fc3391870f0d35df17353cf034faa9ba68",
  "tree": "7c114571a39825f7a44873bd21ce064d249819f4",
  "parents": [
    "e21b768d0add2c38e8939ff36bbed013c5004667"
  ],
  "author": {
    "name": "Brian Christiansen",
    "email": "bchristianse@nvidia.com",
    "time": "Tue Jul 14 13:30:34 2026 -0600"
  },
  "committer": {
    "name": "Brian Christiansen",
    "email": "bchristianse@nvidia.com",
    "time": "Wed Jul 22 13:16:17 2026 -0600"
  },
  "message": "Make sinfo --states parsing and listing table-driven\n\n_node_state_id() hand-coded a check for every node state flag, and the\nlist of valid states reported on error kept a second hand-maintained\ncopy, so both had to be touched whenever a node state flag was added --\nand they had drifted from each other and from the man page.\n\nDrive both from the shared node_state_flags[] table: _node_state_id()\nmatches flags with parse_node_state_flag(), and _node_state_list()\nenumerates the same table via node_state_flag_index(). A newly\nadded flag then works with --states and is reported automatically.\nNODE_RESUME is excluded from both -- it is a transient action flag, not\na state a node is reported in.\n\nThe base-state loop, the combined DRAIN/DRAINED/DRAINING states, and a\nsmall set of legacy compact aliases (RESV, PLND, NO_RESPOND, BOOT,\nBOOT^, REBOOT^) not present in node_state_flags[] are kept explicitly.\nEvery full state name and documented alias still parses; only a few\nambiguous partial prefixes (e.g. \"power\", \"c\") now resolve in the\ncanonical table order. The reported state list now uses the canonical\nname of each state; compact aliases still parse but are no longer\nlisted. The drifted enumeration in the sinfo.1 man page is replaced with\na reference to the NODE STATE CODES section.\n\nTicket: 25499\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "65b9cd045c88e5c42577c6419823903ae1cb4239",
      "old_mode": 33188,
      "old_path": "doc/man/man1/sinfo.1",
      "new_id": "acf4affd945e0e40ada06a6cdcbfb3979db8e444",
      "new_mode": 33188,
      "new_path": "doc/man/man1/sinfo.1"
    },
    {
      "type": "modify",
      "old_id": "815b51aff2a02094374939a06c15d2b07ccb8e1d",
      "old_mode": 33188,
      "old_path": "src/common/slurm_protocol_defs.c",
      "new_id": "f6fcfd79213eee265f1062d2a7a1f7e4dc029a42",
      "new_mode": 33188,
      "new_path": "src/common/slurm_protocol_defs.c"
    },
    {
      "type": "modify",
      "old_id": "c1d67ec2a477059ce9d64e146e0b30079b7ad1e5",
      "old_mode": 33188,
      "old_path": "src/common/slurm_protocol_defs.h",
      "new_id": "0e27ae3cadf6d2c4b4b9b55072f4ed6d1fd50a8d",
      "new_mode": 33188,
      "new_path": "src/common/slurm_protocol_defs.h"
    },
    {
      "type": "modify",
      "old_id": "45b7538de7122e87c219262ed61738c29478a496",
      "old_mode": 33188,
      "old_path": "src/sinfo/opts.c",
      "new_id": "a7da352a54ba286a18a10c9abb0c0f02337fab6f",
      "new_mode": 33188,
      "new_path": "src/sinfo/opts.c"
    }
  ]
}
