cpu-sig-tracker(1)

πŸ“¦
version 0.27.0 Β· 5 versions
, in fedora 43, fedora 44

✨ 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-inventory TOML). 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 (cbs for CentOS Build System)
  • --prune β€” Drop packages from each workload that are no longer tagged in either the -release or -testing tag 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 to stderr
  • -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 the proposed_updates type labels: enhancement, bugfix, arch-enablement, security

Possible values:

  • enhancement
  • bugfix
  • arch-enablement
  • security
  • --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 to stderr
  • -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 the https:// 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-inventory TOML; with it every inventory package is classified, proposed and missing included
  • --release <RELEASE> β€” Restrict to a single release (e.g. c10s)
  • --package <PACKAGE> β€” Restrict to these package(s) (repeat/CSV)
  • --adopt β€” Label hand-filed tracking issues cpu-sig-tracker without 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 to stderr
  • -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 the sandogasa-inventory TOML 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 to stderr
  • -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 β€” labelled superseded when 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 (labelled superseded)
  • abandoned: The SIG gives up on the change (Bugzilla's CANTFIX)
  • --stock-fix <NVR> β€” With --reason landed and nothing on record: the stock build that carries the fix, as you verified it. Recorded on the issue for timeline; 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 to stderr
  • -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 the sandogasa-inventory TOML 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 --refresh to 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 their start_date / due_date and reconcile their work-item status against the current JIRA resolution (e.g. Done β†’ Won't do when JIRA was retroactively flipped). Body content is left alone. No-op without --refresh
  • -v, --verbose β€” Print progress to stderr
  • -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 to stderr
  • -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 whose proposed_updates tags 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 to stderr
  • -h, --help β€” Print help
  • <TARGET> β€” Either a package name (e.g. xz β€” the tool discovers the currently-tagged NVR in -release and -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