cpu-sig-tracker(1)
β¨ NAME β¨
okay so bestie, meet cpu-sig-tracker π β the girl who tracks CentOS Proposed Updates SIG package state across Koji, GitLab and JIRA. All three. At the same time. She's giving project-manager main character energy and honestly? we're obsessed π
(this lives in the Sandogasa Manual, in case you were wondering where the family photo was taken π«Ά)
π¦ SYNOPSIS π¦
cpu-sig-tracker [-h|--help] [-V|--version] <subcommands>
like. she's a CLI with subcommands. that's the whole vibe check. β¨
π DESCRIPTION π
Track CentOS Proposed Updates SIG package state across Koji, GitLab and JIRA. no cap β that's the entire job description, and she does it flawlessly, periodt π
π OPTIONS π
-h,--helpβ Print help πΈ-V,--versionβ Print version β¨
these two are the "hi bestie, who are you" flags. run them whenever you forget where you are. we've all been there π
π COMMANDS π
π cpu-sig-tracker config π
cpu-sig-tracker config [-h|--help]
Set up GitLab and JIRA authentication tokens π β basically you hand her the keys to the group chat so she can post on your behalf. do this first, iykyk.
-h,--helpβ Print help
π cpu-sig-tracker dump-inventory π
cpu-sig-tracker dump-inventory [-r|--release] [--koji-profile] [--prune]
[-v|--verbose] [-h|--help] <-o|--output>
Enumerate packages in a proposed_updates Koji tag and emit a sandogasa-inventory TOML file π β like a little census, but for RPMs. she goes and counts them all and writes it down. so organized. so demure.
-r,--release <RELEASES>β CentOS release(s) to enumerate, e.g."c10s"or"c9s,c10s"(CSV or repeated). The Koji tag queried per release is"proposed_updates<N>s-packages-main-release"where N is the major version digit-o,--output <OUTPUT>β Output file (sandogasa-inventoryTOML). If it exists, merge in the newly-discovered packages; existing entries are preserved π (she does not erase your work, she's not like that)--koji-profile <KOJI_PROFILE>[default:cbs] β Koji CLI profile (cbsfor CentOS Build System)--pruneβ Drop packages from each workload that are no longer tagged in either the-releaseor-testingtag for that release. Orphan[[package]]entries (metadata blocks for packages no longer referenced by any workload) are left in place so user-entered fields aren't lost π₯Ί-v,--verboseβ Print progress tostderr-h,--helpβ Print help
π¦ cpu-sig-tracker file-issue π¦
cpu-sig-tracker file-issue [--affected] [--expected-fix] [--jira]
[--release] [--type] [--note] [--dry-run] [-v|--verbose] [-h|--help]
<MR_URL>
File a tracking issue in the proposed_updates GitLab group for a given Merge Request URL πβ¨ β she takes an MR and turns it into an official Big Deal Issue, because someone has to keep receipts.
--affected <AFFECTED>β Affected (currently-tagged) NVR. If omitted, left blank in the issue body; can be filled in later--expected-fix <EXPECTED_FIX>β Expected fix NVR once the MR lands and is built π§--jira <JIRA>β Override the auto-extracted JIRA key (e.g."RHEL-12345"). Useful when the MR description doesn't mention it verbatim β because of course it doesn't π--release <RELEASE>β Override the release auto-derived from the MR target branch (e.g.c10s)--type <ISSUE_TYPE>β Apply one of theproposed_updatestype labels:enhancement,bugfix,arch-enablement,security
Possible values:
enhancementbugfixarch-enablementsecurity
--note <NOTE>β Free-form context note prepended to the issue body as a lead paragraph before the structured metadata π--dry-runβ Print the issue that would be filed and exit without making any GitLab API calls π (the "look but don't touch" button, we love her for it)-v,--verboseβ Print progress tostderr-h,--helpβ Print help<MR_URL>β Full Merge Request URL to track, e.g.gitlab.com/redhat/centos-stream/rpms/xz/-/merge_requests/42(with thehttps://scheme)
πΈ cpu-sig-tracker list-issues πΈ
cpu-sig-tracker list-issues [-i|--inventory] [--release] [--package]
[--adopt] [--json] [-v|--verbose] [-h|--help]
List the SIG's tracking issues per release and package, with the MR each names; with an inventory, the packages missing one π β the group-chat roster, basically. who's in, who's ghosting (that's the missing ones π).
-i,--inventory <INVENTORY>βsandogasa-inventoryTOML; with it every inventory package is classified,proposedandmissingincluded--release <RELEASE>β Restrict to a single release (e.g.c10s)--package <PACKAGE>β Restrict to these package(s) (repeat/CSV)--adoptβ Label hand-filed tracking issuescpu-sig-trackerwithout asking, so every command tracks them π«Ά (adoption arc, we love to see it)--jsonβ Emit a machine-readable JSON array instead of grouped text-v,--verboseβ Print progress tostderr-h,--helpβ Print help
π cpu-sig-tracker ping π
cpu-sig-tracker ping [-i|--inventory] [--release] [--package] [--days]
[--reping-days] [-y|--yes] [--dry-run] [--json] [-v|--verbose]
[-h|--help]
Nudge upstream merge requests that have gone quiet, and show the last response on those that have not π£ β it's the "hey bestie you alive?" command. polite. persistent. iconic.
-i,--inventory <INVENTORY>[default:inventory.toml] β Path to thesandogasa-inventoryTOML file (its workloads name the releases to scan)--release <RELEASE>β Restrict the scan to a single release (e.g.c10s)--package <PKG>β Restrict to these package(s) (repeat/CSV)--days <N>β Days without upstream activity before a merge request is pinged (default 14)--reping-days <N>β Days after an unanswered ping before it is repeated (default 30)-y,--yesβ Take the default answer at every prompt without asking, for an unattended run: post each note unless the SIG owes a reply on that change π€--dry-runβ Report only: never prompt, never post π--jsonβ Emit a machine-readable JSON array instead of a table-v,--verboseβ Print progress tostderr-h,--helpβ Print help
π§ cpu-sig-tracker retire π§
cpu-sig-tracker retire [--release] [--reason] [--stock-fix] [-y|--yes]
[--force] [--claim] [-v|--verbose] [-h|--help] <ISSUE>
Close a tracking issue for a reason β landed, superseded or abandoned β labelling it, telling the MR, closing the MR of an abandoned change π it's the graceful exit. the "we're done here, thank u next" energy.
--release <RELEASE>β With a package name: the release to retire it in (e.g.c10s), when it is tracked in several--reason <REASON>β Why: landed (the problem is fixed in stock β labelledsupersededwhen not by the SIG's own MR) or abandoned (the SIG gives up). Inferred from the MR, stock and the RHEL issue when omitted, and asked at a terminal
Possible values:
landed: The problem is fixed in stock β by the SIG's MR merging, or another way (labelledsuperseded)abandoned: The SIG gives up on the change (Bugzilla'sCANTFIX)
--stock-fix <NVR>β With--reason landedand nothing on record: the stock build that carries the fix, as you verified it. Recorded on the issue fortimeline; asked for at a terminal otherwise-y,--yesβ Skip the interactive confirmation prompt--forceβ Skip the precondition checks (build untagged, and what the reason needs). Use when the tool can't reach Koji/GitLab or when you're sure the conditions hold β οΈ--claimβ Also assign the issue to you as it is closed.
Without this you are asked, unless -y is given: a non-interactive run must not reassign work nobody asked it to. (fr fr, consent matters even in issue trackers π«Ά)
-v,--verboseβ Print progress tostderr-h,--helpβ Print help (see a summary with-h)<ISSUE>β Tracking issue URL (/-/issues/<n>or/-/work_items/<n>), or a package name, resolved through the SIG's open tracking issues (list-issues)
π cpu-sig-tracker status π
cpu-sig-tracker status [-i|--inventory] [--release] [-p|--package]
[--json] [--refresh] [--include-closed] [-v|--verbose] [-h|--help]
Report JIRA status and suggested next action for each active tracking issue ποΈ β the "so likeβ¦ where are we" command. she tells you what's going on and what to do next. a therapist, but for issues.
-i,--inventory <INVENTORY>[default:inventory.toml] β Path to thesandogasa-inventoryTOML file--release <RELEASE>β Restrict the check to a single release (e.g.c10s)-p,--package <PACKAGES>β Narrow to specific packages (repeatable or CSV). When unset, every tracked package in scope is processed. Primarily useful with--refreshto skip the extra work-item-status probes for packages you don't care about--jsonβ Emit JSON instead of grouped text--refreshβ Rewrite tracking issue bodies to the standardized format, refreshing the MR state and JIRA status lines to their current values. Normalizes legacy bodies and keeps already-standard bodies up to date. Mutates GitLab state; off by default β οΈβ¨--include-closedβ With--refresh, also process closed tracking issues β backfill theirstart_date/due_dateand reconcile their work-item status against the current JIRA resolution (e.g.DoneβWon't dowhen JIRA was retroactively flipped). Body content is left alone. No-op without--refresh-v,--verboseβ Print progress tostderr-h,--helpβ Print help
π cpu-sig-tracker timeline π
cpu-sig-tracker timeline [--release] [--package] [--open-only] [--json]
[--csv] [-v|--verbose] [-h|--help]
How long each Proposed Update took and where the time went: filed, covered, fixed in stock, RHEL's advisory, shadowed β³ β the story arc of every package. it's giving documentary. it's giving receipts. we're seated πΏ
--release <RELEASE>β Restrict to a single release (e.g.c10s)--package <PACKAGE>β Restrict to these package(s) (repeat/CSV)--open-onlyβ Open tracking issues only (closed ones are the history and are included by default)--jsonβ Emit a machine-readable JSON array instead of a table--csvβ Emit CSV with the spreadsheet's columns instead of a table-v,--verboseβ Print progress tostderr-h,--helpβ Print help
π₯ cpu-sig-tracker untag π₯
cpu-sig-tracker untag [-y|--yes] [--force] [-v|--verbose] [-h|--help]
<--release> <TARGET>
Untag a proposed_updates build from its CBS -release tag after verifying the JIRA is resolved π·οΈβοΈ β the final boss move. clean removal, but only if JIRA says it's actually done.
--release <RELEASE>β CentOS release whoseproposed_updatestags to untag from (c9s,c10s, β¦)-y,--yesβ Skip the interactive confirmation prompt--forceβ Skip the JIRA-resolved precondition. Use when the tracking issue can't be located or you're sure the check would pass β οΈ-v,--verboseβ Print progress tostderr-h,--helpβ Print help<TARGET>β Either a package name (e.g.xzβ the tool discovers the currently-tagged NVR in-releaseand-testing) or a specific NVR (e.g.xz-5.6.4-1~proposed.el10)
and that's the whole page bestie π she's been out here doing all of this since sandogasa 0.27.0, dated 2026-10-21, and honestly? she ate. no crumbs. go file an issue or something, ily π«Άπβ¨
π¦ where this page comes from
- fedora 43: sandogasa 0.27.0-2.fc43 Β· (Apache-2.0 OR MIT) AND LicenseRef-Fedora-Public-Domain AND Unicode-3.0 AND Apache-2.0 AND ISC AND MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-3-Clause AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib
- fedora 44: sandogasa 0.27.0-2.fc44 Β· (Apache-2.0 OR MIT) AND LicenseRef-Fedora-Public-Domain AND Unicode-3.0 AND Apache-2.0 AND ISC AND MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-3-Clause AND MPL-2.0 AND (Unlicense OR MIT) AND Zlib
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms