hs-relmon(1)
πΈ NAME πΈ
okay so hi bestie π welcome to hs-relmon(1), coming at you live from the Sandogasa Manual. Here's the whole vibe:
hs-relmon β Release monitoring tool for CentOS Hyperscale SIG packages
β¨ SYNOPSIS β¨
hs-relmon [-h|--help] [-V|--version] <subcommands>
π¦ DESCRIPTION π¦
Release monitoring tool for CentOS Hyperscale SIG packages
that's it, that's the whole description, and honestly? iconic. it's giving "does exactly what it says on the tin" π
π OPTIONS π
-h,--helpβ Print help-V,--versionβ Print version
π COMMANDS π
π hs-relmon check-latest
hs-relmon check-latest [-d|--distros] [--repology-name] [--track]
[--json] [--file-issue] [-h|--help] <PACKAGE>
Check the latest version of a package across distributions β so you can find out who's ahead and who's lowkey lagging π«Ά
-d,--distros <DISTROS>β Comma-separated list of distros to check.
Valid names:
upstreamβ Newest version across all reposfedoraβ Fedora Rawhide + latest stablefedora-rawhideβ Fedora Rawhide onlyfedora-stableβ Latest stable Fedora onlycentosβ Latest CentOS Streamcentos-streamβ Latest CentOS Streamhyperscale/hsβ Hyperscale EL9 + EL10hs9β Hyperscale EL9 onlyhs10β Hyperscale EL10 only
--repology-name <PROJECT>β Override the Repology project name for when it differs from the package (e.g.linuxforperf).--track <TRACK>[default:upstream] β Distribution to compare Hyperscale builds against.
Valid names:
upstreamβ Newest version across all repos (default)fedora-rawhideβ Fedora Rawhidefedora-stableβ Latest stable Fedoracentosβ Latest CentOS Streamcentos-streamβ Latest CentOS Stream
--jsonβ Output as JSON instead of a table--file-issue [<URL>]β File or update a GitLab issue if the package is outdated. Searches for an open issue labeledrfe::new-versionand updates its title, or creates a new one. Defaults tohttps://gitlab.com/CentOS/Hyperscale/rpms/PKG. Uses the token fromhs-relmon config, or GITLAB_TOKEN env var as an override.-h,--helpβ Print help (see a summary with '-h')<PACKAGE>β Source package name (e.g.ethtool)
π§ hs-relmon check-manifest
hs-relmon check-manifest [--json] [--issue-status] [--issue-assignee]
[-h|--help] <MANIFEST>
Check all packages listed in a manifest file β one manifest, every package, no scrolling through tabs like a menace π
--jsonβ Output as JSON instead of tables--issue-status <STATUS>β Only show packages whose GitLab issue matches this work-item status. Packages without an issue are excluded. Issues that do not match are not updated.
Default statuses:
To doβ Planned but not startedIn progressβ Currently being worked onDoneβ CompletedCanceledβ Will not be done
--issue-assignee <USERNAME>β Only show packages whose GitLab issue is assigned to this username. Use"none"to match unassigned issues. Packages without an issue or without a matching assignee are excluded.-h,--helpβ Print help (see a summary with '-h')<MANIFEST>β Path to the TOML manifest file
β hs-relmon check-repos
hs-relmon check-repos [--package] [--gitlab-group] [--apply] [-y|--yes]
[--json] [-v|--verbose] [-h|--help] <MANIFEST>
Check every manifest package's GitLab repo against the SIG's conventions β default branch the newest Hyperscale branch, merge requests fast-forwarded β and set them with --apply. bestie it's literally a vibe check for your repos π
--package <LIST>β Comma-separated packages to check (default: all)--gitlab-group <URL>[default:https://gitlab.com/CentOS/Hyperscale/rpms] β GitLab group the packages' repos live under--applyβ Set what differs, asking per repo (afor the rest,qto stop)-y,--yesβ Apply to every repo without asking--jsonβ Output as JSON instead of human-readable-v,--verboseβ Print progress to stderr-h,--helpβ Print help<MANIFEST>β Path to the TOML manifest file
π hs-relmon check-stock
hs-relmon check-stock [--repositories] [--skip] [--color] [-v|--verbose]
[-h|--help] <MANIFEST>
Compare every manifest package's Hyperscale builds against stock: still ahead, or caught up β and then whether to retire it or rebase it, per the manifest's divergent
--repositories <REPOSITORIES>[default:main] β Comma-separated Hyperscale repositories whose-release/-testingtags are compared against stock. The repository is the segment between-packages-and the stage suffix, e.g.maininhyperscale10s-packages-main-release.--skip <LIST>β Comma-separated packages to skip--color[=<WHEN>][default:auto] β Colorize the verdicts, asls --color:--coloralone isalways;auto(the default) colors a TTY unless NO_COLOR is set;never
Possible values:
auto: Auto-detect: enable on a TTY whenNO_COLORis unsetalways: Force colored output even when pipednever: Disable colored output entirely
-v,--verboseβ Print progress to stderr-h,--helpβ Print help (see a summary with '-h')<MANIFEST>β Path to the TOML manifest file
π₯ hs-relmon config
hs-relmon config [-h|--help]
Configure GitLab authentication β go set up your token so the rest of this can actually do stuff π«Ά
-h,--helpβ Print help
π hs-relmon dupe-subpkgs
hs-relmon dupe-subpkgs [--repositories] [--release] [--package] [--fix]
[--json] [-v|--verbose] [-h|--help]
Find binary RPMs shipped by 2+ source packages in a tag β the classic "wait why is this file in two places" moment π
--repositories <REPOSITORIES>[default:main] β Comma-separated Hyperscale repositories to scan. The repository is the segment between-packages-and the stage suffix, e.g.maininhyperscale10s-packages-main-release. Each repository's-releaseand-testingtags across EL9/EL10 (and the Stream variants) are scanned.--release <RELEASE>β Hyperscale release(s) to scan, repeatable or comma- separated. Each value is a short EL token (9,9s,10,10s) or the equivalent full release name (hyperscale9s,hyperscale10s, ...) β both forms mean the same release. Defaults to all four.--package <PACKAGE>β Source package name(s), repeatable or comma-separated. Only collisions that involve one of these sources are reported (the whole tag is still scanned to find what they collide with). Defaults to all packages.--fixβ For each collision, show the candidate builds and the binaries only each one provides (which would vanish from the tag if it were untagged), then prompt for which build to untag. Defaults to skipping. Requires CBS write authentication. In--jsonmode or without a terminal the plan is printed and nothing is untagged.--jsonβ Output as JSON instead of a table-v,--verboseβ Print progress to stderr-h,--helpβ Print help (see a summary with '-h')
π hs-relmon file-conflicts
hs-relmon file-conflicts [--repositories] [--release] [--package]
[--json] [-v|--verbose] [-h|--help]
Find files shipped by 2+ sources across enabled repos β same energy as dupe-subpkgs but for files that collide when the repos are all switched on together β¨
--repositories <REPOSITORIES>β Comma-separated repositories that are enabled together on a host, compared per EL version. Overrides the per-EL defaults (main + kernel on EL10/10s; main only on EL9/9s, which has no kernel repo). The-releasetag of each is combined and files owned by two or more distinct source packages are flagged.--release <RELEASE>β Hyperscale release(s) to scan, repeatable or comma- separated. Each value is a short EL token (9,9s,10,10s) or the equivalent full release name (hyperscale9s,hyperscale10s, ...) β both forms mean the same release. Defaults to all four.--package <PACKAGE>β Source package name(s), repeatable or comma-separated. Only conflicts that involve one of these sources are reported (the whole repo set is still scanned to find what they conflict with). Defaults to all packages.--jsonβ Output as JSON instead of a table-v,--verboseβ Print progress to stderr-h,--helpβ Print help (see a summary with '-h')
π hs-relmon list-issues
hs-relmon list-issues [--group] [--issue-status] [--issue-assignee]
[--json] [--manifest] [--add-missing] [-h|--help]
List GitLab issues labeled rfe::new-version β the whole to-do list, but make it a table π
--group <GROUP>[default:https://gitlab.com/CentOS/Hyperscale/rpms] β GitLab group URL to search--issue-status <STATUS>β Only show issues matching this work-item status.
Default statuses:
To doβ Planned but not startedIn progressβ Currently being worked onDoneβ CompletedCanceledβ Will not be done
--issue-assignee <USERNAME>β Only show issues assigned to this username. Use"none"to match unassigned issues.--jsonβ Output as JSON instead of a table--manifest <PATH>β Path to a TOML manifest file. When provided, the output shows which packages withrfe::new-versionissues are missing from the manifest.--add-missingβ Add packages that haverfe::new-versionissues but are missing from the manifest. Requires--manifest. Packages are inserted in sorted order.-h,--helpβ Print help (see a summary with '-h')
π¦ hs-relmon prune-archived
hs-relmon prune-archived [--repositories] [--skip] [--dry-run]
[-y|--yes] [-v|--verbose] [-h|--help] <MANIFEST>
Untag CBS builds for archived-upstream packages stock caught up to β if upstream went to sleep and stock already caught up, this is the little cleanup fairy π§Ήβ¨
--repositories <REPOSITORIES>[default:main] β Comma-separated Hyperscale repositories to manage. The repository is the segment between-packages-and the stage suffix, e.g.maininhyperscale10s-packages-main-release. Tags whose repository is not in this list are not touched.--skip <LIST>β Comma-separated packages to skip--dry-runβ Preview operations without applying them-y,--yesβ Untag at/behind-stock without prompting; skip ahead-of-stock-v,--verboseβ Print progress to stderr-h,--helpβ Print help (see a summary with '-h')<MANIFEST>β Path to the TOML manifest file
πΈ hs-relmon prune-manifest
hs-relmon prune-manifest [--release-keep] [--testing-keep]
[--repositories] [--skip] [--dry-run] [-y|--yes] [-v|--verbose]
[-h|--help] <MANIFEST>
Untag old hyperscale builds for every package in a manifest, keeping N newest in each -release/-testing tag
--release-keep <RELEASE_KEEP>[default:2] β how many builds to keep per-releasetag π--testing-keep <TESTING_KEEP>[default:1] β how many builds to keep per-testingtag β¨--repositories <REPOSITORIES>[default:main] β comma-separated list of Hyperscale repositories to manage. The repository is literally the segment chillin' between-packages-and the stage suffix β so likemaininhyperscale10s-packages-main-release. Any tag whose repository isn't on this list? Not touched. Not even glanced at, bestie. π--skip <LIST>β comma-separated package names to skip during the batch run. Obsessed with this one for when a single package runs its own tag cleanup (looking at you,systemd) and you truly do not want this tool anywhere near it π--dry-runβ preview the operations without applying them π-y,--yesβ skip the per-package confirmation prompt, no more y/n tap dance-v,--verboseβ print progress tostderr-h,--helpβ print help (and you can peep a summary with just-h)<MANIFEST>β path to the TOML manifest file π
πΈ hs-relmon prune-tags πΈ
hs-relmon prune-tags [--release-keep] [--testing-keep] [--repositories]
[--dry-run] [-y|--yes] [-v|--verbose] [-h|--help] <PACKAGE>
Untag those old hyperscale builds for one package, keeping the N newest in every -release/-testing tag. Spring cleaning but make it build tags π§Ήβ¨
--release-keep <RELEASE_KEEP>[default:2] β builds to keep per-releasetag π--testing-keep <TESTING_KEEP>[default:1] β builds to keep per-testingtag β¨--repositories <REPOSITORIES>[default:main] β comma-separated Hyperscale repositories to manage. The repository is the segment between-packages-and the stage suffix, e.g.maininhyperscale10s-packages-main-release. Tags whose repository is not in this list are not touched.--dry-runβ preview operations without applying them-y,--yesβ skip the confirmation prompt-v,--verboseβ print progress tostderr-h,--helpβ print help (see a summary with-h)<PACKAGE>β the source package name (e.g.ethtool) π«Ά
π hs-relmon retire π
hs-relmon retire [--gitlab-group] [--dry-run] [--force] [-y|--yes]
[-v|--verbose] [-h|--help] <--manifest> <PACKAGE>
Retire package(s) that stock now carries: untag their builds from every hyperscale tag, drop them from the manifest, and archive their GitLab repos. It's giving "we're so over you" but, like, administratively π
--manifest <PATH>β path to the TOML manifest file to drop them from--gitlab-group <URL>[default:https://gitlab.com/CentOS/Hyperscale/rpms] β the GitLab group the packages' repos live under--dry-runβ show the plan without untagging, editing or archiving--forceβ retire a package the manifest declaresdivergent(carrying SIG changes), which is otherwise refused. Normally this is a hard no β<italic>--force</italic>is the override π¨-y,--yesβ retire without confirming; it never untags a build newer than stock, and then leaves the package in place-v,--verboseβ print progress tostderr-h,--helpβ print help<PACKAGE>β package(s) to retire
Heads up bestie: thatdivergentrefusal is real, and-ywill quietly not nuke anything newer than stock β the package just stays. Read the room before you smash enter. π
π¦ hs-relmon review π¦
hs-relmon review [--repositories] [--skip] [--changelog-lines]
[--dry-run] [-v|--verbose] [-h|--help] [TARGET]
Interactively review builds sitting in hyperscale -testing tags and promote (+1), reject (-1), or skip (0) each one. Main character energy: you are the vibe check π
--repositories <REPOSITORIES>[default:main] β comma-separated Hyperscale repositories to scan. The repository is the segment between-packages-and the stage suffix, e.g.maininhyperscale10s-packages-main-testing.--skip <SKIP>β package name(s) to exclude from review, repeatable or comma-separated. Use it for packages with their own release pipeline (e.g.systemd) that should never be promoted through this tool. Periodt. π--changelog-lines <CHANGELOG_LINES>[default:20] β for a package with nothing yet in release, show at most this many lines of its changelog (a new package has no prior version to diff against). Packages that are already in release always show just the entries newer than the released build. So you're not reading a whole saga when a snack would do π--dry-runβ list the builds that would be reviewed, then exit-v,--verboseβ print progress tostderr-h,--helpβ print help (see a summary with-h)[TARGET]β optional package name or build NVR. With a package name, it reviews its latest build in each testing tag; with an NVR, it reviews that specific build; omitted, it reviews everything in testing β¨
And that's the whole page, bestie β go untag something and feel something. π«Ά
This was hs-relmon(1) from sandogasa version 0.27.0, dated 2026-10-21 β love that for us. π
π¦ 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