poi-tracker(1)

๐Ÿ“ฆ
version 0.27.0 ยท 5 versions
, in fedora 43, fedora 44

๐ŸŒธ poi-tracker(1) โ€” the Sandogasa Manual, bestie edition ๐ŸŒธ

okay so. sit down. hydrate. we're learning poi-tracker, and honestly? it's giving main character energy. it's the Package-Of-Interest tracker for Fedora, EPEL, and CentOS SIGs, and yes i'm gonna walk you through every single flag because you deserve the full picture, not a vibe-summary. no cap. ๐Ÿ’…


โœจ NAME โœจ

poi-tracker โ€” Package-of-interest tracker for Fedora, EPEL, and CentOS SIGs

like. that's the whole name. that's her. ๐ŸŽ€


๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

poi-tracker [-i|--inventory] [-I|--inventory-dir] [-C|--directory]
[-w|--workspace] [--closure] [-h|--help] [-V|--version] <subcommands>

she's a dispatcher, bestie โ€” you give her a subcommand and she goes off. ๐Ÿซถ


๐Ÿ’– DESCRIPTION ๐Ÿ’–

Package-of-interest tracker for Fedora, EPEL, and CentOS SIGs

periodt. that's the description. it does what it says on the tin and it does it iconically. ๐Ÿ’œ


๐ŸŒˆ OPTIONS ๐ŸŒˆ

these are the global ones โ€” the ones that ride along with basically everything. ๐ŸŒธ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s), and yes it's repeatable. this is the most specific of the three ways to name inventories and she is always honoured: if a workspace file tries to supply an inventory, -i overrides it. -i said what it said. ๐Ÿ’…
  • -I, --inventory-dir <DIR> โ€” treat every *.toml in DIR as an inventory, roles unknown. made for the commands that don't care who's who (show, find, validate, export). got a specific file in mind? use -i. need to say which inventory is which? use a workspace. ๐Ÿงš
  • -C, --directory <DIR> โ€” run as if you'd started in DIR. literally git -C behaviour: the workspace file, the relative inventory paths, and the outputs all get looked up there. so you don't have to cd like a peasant. ๐ŸŽ€
  • -w, --workspace <PATH> โ€” the workspace file (default: ./kondo.toml when it's present) that names which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so every subcommand already knows its inputs without you typing -i. she only fills in flags you didn't give on the command line, and --no-defaults makes her ignore it entirely. ๐Ÿฆ‹
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand is working on. default: the first one. โญ
  • -h, --help โ€” print help. the classic. ๐Ÿซถ
  • -V, --version โ€” print version. ๐Ÿ’–

๐Ÿ‘‘ COMMANDS ๐Ÿ‘‘

okay this is the fun part. the subcommands. each one gets its own little section because they're all iconique in their own way. ๐ŸŒŸ

๐ŸŽ€ poi-tracker act

poi-tracker act [-i|--inventory] [-I|--inventory-dir] [--pattern]
[-C|--directory] [--start-from] [--end-with] [-w|--workspace]
[--closure] [--personal] [--branch] [--api-token] [--refresh-acls]
[-v|--verbose] [-h|--help] <--user>

enact the standing cull verdicts, interactively: orphan, remove own ACL, or give each package away โ€” and the inventories get adjusted as you go. it's a whole little ceremony. ๐Ÿ•ฏ๏ธ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable). the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply. ๐Ÿ’…
  • --user <USER> โ€” the FAS username whose ACL actions these are. required, bestie, she won't go without it. ๐ŸŒธ
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown. for commands that treat inventories alike (show, find, validate, export). use -i to pick files, or a workspace to say which is which. ๐Ÿงš
  • --pattern <GLOB,...> โ€” only process packages matching this glob (e.g. rust-*; a bare name matches exactly). comma-separated or repeated; default: all packages. ๐ŸŒˆ
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there. ๐ŸŽ€
  • --start-from <NAME> โ€” resume from this package onwards, inclusive, in the inventory's iteration order. ๐Ÿฆ‹
  • --end-with <NAME> โ€” stop after this package, inclusive. combine it with --start-from to bound a sub-range. โญ
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. only fills flags not given on the command line; --no-defaults ignores it. ๐Ÿ’–
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first). ๐Ÿซถ
  • --personal <PATH> โ€” personal inventory to drop enacted packages from. ๐Ÿ™ˆ
  • --branch <BRANCH> [default: auto] โ€” branch(es) for the reverse-dependency probe before an orphan (CSV or repeated). the default auto derives them per package from its dist-git branches: rawhide plus its own EPEL branches. lowkey important: an EPEL-only package's dependents are invisible from rawhide. ๐Ÿ’€
  • --api-token <API_TOKEN> โ€” dist-git API token (or PAGURE_API_TOKEN, or run poi-tracker config). may also be specified with the PAGURE_API_TOKEN environment variable. ๐Ÿ”ฅ
  • --refresh-acls โ€” ignore the day-fresh ACL cache and look every level up again. no shortcuts today. ๐Ÿ’…
  • -v, --verbose โ€” log each access lookup. ๐Ÿ‘‘
  • -h, --help โ€” print help. ๐ŸŽ€

๐ŸŒธ poi-tracker add

poi-tracker add [-i|--inventory] [--poc] [-I|--inventory-dir] [--reason]
[-C|--directory] [--team] [--task] [-w|--workspace] [--closure] [--rpm]
[--workload] [--track] [-h|--help] <NAME>

add a package to the inventory. simple. iconic. ๐Ÿ’œ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply. ๐Ÿฆ‹
  • --poc <POC> โ€” point of contact, formatted "Name <email>". ๐Ÿ“ง
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). use -i to pick files, or a workspace to say which is which. ๐ŸŒˆ
  • --reason <REASON> โ€” reason for tracking. always document yourself, bestie. โญ
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there. ๐Ÿ’–
  • --team <TEAM> โ€” team responsible. ๐Ÿซถ
  • --task <TASK> โ€” internal task/ticket reference. ๐ŸŽ€
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. only fills flags not given on the command line; --no-defaults ignores it. ๐ŸŒธ
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first). โœจ
  • --rpm <RPM> โ€” binary RPM subpackage(s) to track (comma-separated or repeated). ๐Ÿ“ฆ
  • --workload <WORKLOAD> โ€” workload tag(s) (comma-separated or repeated). ๐Ÿท๏ธ
  • --track <TRACK> โ€” track branch for hs-relmon (e.g. upstream, fedora-rawhide). ๐Ÿ›ค๏ธ
  • -h, --help โ€” print help. ๐Ÿ’…
  • <NAME> โ€” source RPM name. the thing you're adding. that's her. ๐Ÿ‘‘

๐Ÿงš poi-tracker adopt

poi-tracker adopt [-i|--inventory] [--pattern] [-I|--inventory-dir]
[--start-from] [-C|--directory] [--end-with] [--api-token]
[-w|--workspace] [--closure] [--dry-run] [-y|--yes] [-v|--verbose]
[-h|--help]

adopt orphaned inventory packages on dist-git. found family, but for RPMs. ๐Ÿฅบ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply. ๐Ÿ’…
  • --pattern <GLOB,...> โ€” only process packages matching this glob (e.g. rust-*; a bare name matches exactly). comma-separated or repeated; default: all packages. ๐ŸŒˆ
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). use -i to pick files, or a workspace to say which is which. ๐Ÿฆ‹
  • --start-from <NAME> โ€” resume from this package onwards (inclusive), in the inventory's iteration order. โญ
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there. ๐ŸŽ€
  • --end-with <NAME> โ€” stop after this package (inclusive). combine with --start-from to bound a sub-range. ๐Ÿ’–
  • --api-token <API_TOKEN> โ€” dist-git API token with the modify_project ACL (or set PAGURE_API_TOKEN, or run poi-tracker config). may also be specified with the PAGURE_API_TOKEN environment variable. ๐Ÿ”ฅ
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. only fills flags not given on the command line; --no-defaults ignores it. ๐ŸŒธ
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first). โœจ
  • --dry-run โ€” preview orphaned packages without adopting them. look but don't touch. ๐Ÿ‘€
  • -y, --yes โ€” adopt every orphaned match without per-package prompts. yes to all, no regrets. ๐Ÿซถ
  • -v, --verbose โ€” print progress to stderr. ๐Ÿ“ฃ
  • -h, --help โ€” print help. ๐Ÿ’…

๐Ÿ’œ poi-tracker announce

poi-tracker announce [-i|--inventory] [-I|--inventory-dir]
[--refresh-acls] [-C|--directory] [-v|--verbose] [--json]
[-w|--workspace] [--closure] [-h|--help] <--user>

render the standing cull verdicts as the grouped, announcement-ready report, with runnable ACL commands. it's the press-release version. ๐Ÿ“ข๐Ÿ‘‘

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply. ๐ŸŽ€
  • --user <USER> โ€” FAS username whose access level routes each action. required. ๐ŸŒธ
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). use -i to pick files, or a workspace to say which is which. ๐Ÿฆ‹
  • --refresh-acls โ€” ignore the day-fresh ACL cache and look every level up again. ๐Ÿ’…
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there. โญ
  • -v, --verbose โ€” log each access lookup. ๐Ÿ”
  • --json โ€” output machine-readable JSON. for the robots. ๐Ÿค–
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. only fills flags not given on the command line; --no-defaults ignores it. ๐Ÿ’–
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first). ๐ŸŒˆ
  • -h, --help โ€” print help. ๐Ÿซถ

๐Ÿฆ‹ poi-tracker config

poi-tracker config [-i|--inventory] [-I|--inventory-dir]
[-C|--directory] [-w|--workspace] [--closure] [-h|--help]

configure poi-tracker (Bugzilla API key, etc.). the getting set up era. โœจ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply. ๐Ÿ’…
  • -I, --inventory-dir <DIR> โ€” every *.toml sitting in DIR gets treated as an inventory, roles unknown ๐Ÿ’ซ โ€” perfect for the commands that don't care who's who (show, find, validate, export). Wanna be picky about which files? use -i. Wanna say which inventory is which? use a workspace, bestie.
  • -C, --directory <DIR> โ€” run like you literally started in DIR, exactly like git -C does it ๐ŸŒธ: the workspace file, any relative inventory paths, and your outputs all get looked up from there.
  • -w, --workspace <PATH> โ€” the workspace file (default: ./kondo.toml when present ๐Ÿ‘€) that names which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus all the graph and walk settings, so every subcommand already knows its inputs without you passing -i. It only fills in flags you didn't give on the command line, and --no-defaults makes it ignore the whole thing.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand should work on (default: the first one ๐Ÿฅ‡).
  • -h, --help โ€” print help โœจ

๐Ÿซถ poi-tracker dependents ๐Ÿซถ

poi-tracker dependents [-i|--inventory] [-I|--inventory-dir] [--json]
[-C|--directory] [-w|--workspace] [--closure] [-h|--help] <--graph>

Classify your inventory packages by who depends on them, working off a saved dependency graph: the leaves, the ones other keeps carry, and the ones the outside world needs ๐Ÿฆ‹

  • --graph <PATH> โ€” a dependency graph JSON, straight out of a deps --graph run โญ
  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable ๐Ÿ”) โ€” this is the most specific of the three ways to name inventories, and it is always honoured: it overrides anything a workspace file would've supplied. periodt ๐Ÿ’…
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for the commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which ๐Ÿ’–
  • --json โ€” output machine-readable JSON ๐Ÿค–
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there ๐ŸŒˆ
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it ๐Ÿ‘‘
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -h, --help โ€” print help

๐Ÿ’€ poi-tracker deps ๐Ÿ’€

poi-tracker deps [-i|--inventory] [--pattern] [-I|--inventory-dir]
[--start-from] [-C|--directory] [--end-with] [-w|--workspace]
[--closure] [-r|--repo] [--from] [--base-repo] [--runtime-only]
[--graph] [--fixpoint] [-o|--output] [--name] [--json] [-v|--verbose]
[-h|--help] <-b|--branch>

Inventory all the dependencies you're pulling from other repos (EPEL core, that vibe ๐Ÿ˜Œ)

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply ๐Ÿ’–
  • --pattern <GLOB,...> โ€” only process packages matching this glob (so like rust-*; a bare name matches exactly ๐Ÿ”). Comma-separated or repeated; default: all packages.
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • --start-from <NAME> โ€” resume from this package onwards (inclusive), following the inventory's iteration order โฉ
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there.
  • --end-with <NAME> โ€” stop after this package (inclusive). Pair it with --start-from to box in a sub-range ๐ŸŽ€
  • -b, --branch <BRANCH> โ€” fedrq branch (e.g. hs.el9, epel9) ๐ŸŒฟ
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first).
  • -r, --repo <REPO> โ€” fedrq repo class (e.g. stack) ๐Ÿ“ฆ
  • --from <FROM> [default: epel] โ€” collect providers from these repo ids (CSV or repeated). Exact match. The default suits an EPEL walk; for a Fedora walk, pass the branch's own repo id, e.g. --from rawhide. no cap ๐Ÿงš
  • --base-repo <BASE_REPO> [default: fedrq-centos-stream-] โ€” base-distro repo id prefix(es); their providers end the walk. The default treats CentOS Stream as the given beneath an EPEL stack. A Fedora walk has no base distro โ€” the default then never matches, and everything resolves within --from's repos, which is exactly what you want ๐Ÿ˜Œโœจ
  • --runtime-only โ€” walk runtime dependencies only, and don't seed the roots' BuildRequires ๐Ÿ™ˆ
  • --graph <PATH> โ€” where to write the walk's full dependency graph (every single requirer/provider edge, not just first attributions) as JSON. Default: beside -o, as <output>-graph.json ๐Ÿ“Š
  • --fixpoint <PATH> โ€” iterate to a fixpoint: collected packages found in this inventory (yours!) become roots whose BuildRequires seed further rounds ๐Ÿ”
  • -o, --output <OUTPUT> โ€” write the collected dependencies as an inventory TOML file ๐Ÿ’พ
  • --name <NAME> โ€” inventory name for --output (default: "<input name>-deps-<branch>") ๐Ÿท๏ธ
  • --json โ€” output as JSON instead of human-readable
  • -v, --verbose โ€” print progress to stderr ๐Ÿ‘€
  • -h, --help โ€” print help (see a summary with '-h')

๐ŸŒธ poi-tracker derive ๐ŸŒธ

poi-tracker derive [-i|--inventory] [-I|--inventory-dir]
[-C|--directory] [--apply] [-w|--workspace] [--closure] [--json]
[-h|--help] <--graph> <--owned> <-o|--output>

Recompute a derived dependency inventory offline from a saved graph: every owned package the keeps can reach ๐Ÿฆ‹

  • --graph <PATH> โ€” dependency graph JSON from a deps --graph run โญ
  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply ๐Ÿ’…
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • --owned <PATH> โ€” inventory of the packages you own (e.g. a sync-distgit output); only owned packages enter the derived inventory ๐Ÿ‘‘ no sneaking in, bestie
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there.
  • -o, --output <PATH> โ€” the derived inventory to recompute ๐ŸŽ€
  • --apply โ€” replace the output file's packages; without it, you just get a report, nothing gets touched ๐Ÿ™ˆ
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first).
  • --json โ€” output machine-readable JSON ๐Ÿค–
  • -h, --help โ€” print help

๐Ÿ’œ poi-tracker export ๐Ÿ’œ

poi-tracker export [-i|--inventory] [-I|--inventory-dir]
[-C|--directory] [-w|--workspace] [--closure] [-h|--help] <subcommands>

Export inventory to another format ๐Ÿ“คโœจ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply ๐Ÿ’–
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there.
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first).
  • -h, --help โ€” print help

๐ŸŽ€ poi-tracker export content-resolver ๐ŸŽ€

poi-tracker export content-resolver [-i|--inventory] [--workload]
[-I|--inventory-dir] [-o|--output] [-C|--directory] [-w|--workspace]
[--closure] [-h|--help]

Export as content-resolver YAML ๐Ÿงพโœจ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply ๐Ÿ’…
  • --workload <WORKLOAD> โ€” export only this workload ๐ŸŽฏ
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • -o, --output <OUTPUT> โ€” output file (default: {workload-name}.yaml) ๐Ÿ’พ
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there.
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first).
  • -h, --help โ€” print help

๐Ÿซถ poi-tracker export hs-relmon

poi-tracker export hs-relmon [-i|--inventory] [--workload]
[-I|--inventory-dir] [-o|--output] [-C|--directory] [--distros]
[--track] [-w|--workspace] [--closure] [--prune] [-h|--help]

Okay so this one ships it all out as an hs-relmon manifest TOML โœจ

  • -i, --inventory <INVENTORY> โ€” literally these inventory TOML file(s), and yes you can repeat it. This is the most specific of the three ways to name inventories and it is always honoured โ€” it overrides whatever a workspace file would've handed you. no arguments ๐Ÿซถ
  • --workload <WORKLOAD> โ€” filter by workload, that's it
  • -I, --inventory-dir <DIR> โ€” treat every *.toml in DIR as an inventory, roles unknown. it's giving "idk which is which and I don't care" energy, and it's for the commands that treat inventories alike (show, find, validate, export). wanna be picky? use -i to name files, or a workspace to say which is which
  • -o, --output <OUTPUT> โ€” output file (default: stdout)
  • -C, --directory <DIR> โ€” run as if you'd started in DIR (exactly like git -C): the workspace file, relative inventory paths and outputs all get looked up from there ๐Ÿ’…
  • --distros <DISTROS> [default: upstream,fedora,centos,hyperscale] โ€” the default distros list
  • --track <TRACK> [default: upstream] โ€” the default tracking branch
  • -w, --workspace <PATH> โ€” the workspace file (default: ./kondo.toml when it's there) that says which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand just knows its inputs without you passing -i. Only fills the flags you didn't give on the command line; --no-defaults ignores it entirely ๐Ÿฆ‹
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first one)
  • --prune โ€” remove manifest entries that aren't in the inventory
  • -h, --help โ€” print help

๐Ÿ”Ž poi-tracker find

poi-tracker find [-i|--inventory] [-I|--inventory-dir] [-C|--directory]
[-w|--workspace] [--closure] [-h|--help] <NAME>

Where my package at ๐Ÿ” โ€” find which inventory file(s) contain a package

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it โœจ
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -h, --help โ€” print help

<NAME> โ€” Source RPM name to search for ๐ŸŒธ


๐Ÿ“ฅ poi-tracker import

poi-tracker import [-i|--inventory] [-o|--output] [-I|--inventory-dir]
[--private-fields] [-C|--directory] [--workload] [-w|--workspace]
[--closure] [-h|--help] <JSON_FILE>

Glow-up time ๐Ÿ’… โ€” import from the legacy JSON format

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • -o, --output <OUTPUT> [default: inventory.toml] โ€” output path for the TOML inventory
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • --private-fields <FIELD,...> โ€” fields to mark as private (stripped on export) ๐Ÿ™ˆ
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --workload <WORKLOAD,...> โ€” workload tag(s) to slap on all the imported packages
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -h, --help โ€” print help

<JSON_FILE> โ€” path to legacy JSON inventory file ๐Ÿ“


โœ‚๏ธ poi-tracker intersect

poi-tracker intersect [-i|--inventory] [-I|--inventory-dir]
[-o|--output] [-C|--directory] [--json] [-w|--workspace] [--closure]
[-h|--help] <--with>

The overlap command ๐ŸŽ€ โ€” keep only the inventory packages that are also present in other inventories, optionally merging them into a file

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • --with <WITH> โ€” inventory file(s) to intersect with: only packages of the main inventory that are also found in one of these survive (repeat the flag once per file)
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • -o, --output <OUTPUT> โ€” merge the intersection into this inventory TOML file (it accumulates; existing entries win)
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --json โ€” output as JSON instead of human-readable
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -h, --help โ€” print help

๐Ÿฅฐ poi-tracker keep

poi-tracker keep [-i|--inventory] [--into] [-I|--inventory-dir]
[-C|--directory] [--deps] [-w|--workspace] [--closure] [-o|--output]
[-r|--repo] [--from] [--base-repo] [--runtime-only] [--json]
[-v|--verbose] [-h|--help] <--graph> <--owned> <-b|--branch> <PACKAGE>

I'm keeping this ๐Ÿ’– โ€” start keeping packages: walk them against the saved graph (fedrq only gets called for what it lacks), merge, recompute the derived inventory

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • --into <PATH> โ€” the keep inventory to add them to (default: the first -i)
  • --graph <PATH> โ€” the saved dependency graph to extend (from deps); the walk resolves offline whatever it already knows ๐Ÿงš
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --owned <PATH> โ€” the inventory of the packages you own โ€” newly reached owned packages become fixpoint roots and derived entries ๐Ÿ‘‘
  • --deps <PATH> โ€” derived inventory to recompute afterwards (optional)
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -o, --output <PATH> โ€” closure inventory (the deps -o file) to bring up to date with the graph afterwards (optional)
  • -b, --branch <BRANCH> โ€” fedrq branch (e.g. hs.el9, epel9)
  • -r, --repo <REPO> โ€” fedrq repo class (e.g. stack)
  • --from <FROM> [default: epel] โ€” collect providers from these repo ids (CSV or repeated).

Exact match, no vibes-based fuzzy stuff. The default suits an EPEL walk; for a Fedora walk pass the branch's own repo id, e.g. --from rawhide. ๐Ÿ”ฅ

  • --base-repo <BASE_REPO> [default: fedrq-centos-stream-] โ€” base-distro repo id prefix(es); their providers end the walk.

The default treats CentOS Stream as the given beneath an EPEL stack. A Fedora walk has no base distro โ€” the default then never matches, and everything resolves within --from's repos, which is exactly what you want. โœจ

  • --runtime-only โ€” walk runtime dependencies only, without seeding the roots' BuildRequires
  • --json โ€” output as JSON instead of human-readable
  • -v, --verbose โ€” print progress to stderr
  • -h, --help โ€” print help (see a summary with '-h')

<PACKAGE> โ€” packages to start keeping ๐ŸŒŸ


๐Ÿงน poi-tracker kondo

poi-tracker kondo [-i|--inventory] [--pattern] [-I|--inventory-dir]
[--start-from] [-C|--directory] [--end-with] [-w|--workspace]
[--closure] [--explain-into] [-y|--yes] [--refresh-acls] [--reason]
[-o|--output] [--json] [-v|--verbose] [-h|--help] <--essential> <--user>

The triage era ๐Ÿงน โ€” deal with the packages no essential inventory needs: keep them as a cull candidate, file them into an inventory, or just drop them

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • --pattern <GLOB,...> โ€” only process packages matching this glob (e.g. rust-*; a bare name matches exactly). Comma-separated or repeated; default: all packages ๐ŸŒˆ
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR counts as an inventory, but their roles are unknown ๐Ÿ‘€ โ€” perfect for commands that treat all inventories the same (show, find, validate, export). Wanna pick specific files? use -i. Wanna say which inventory is which? use a workspace ๐Ÿ’…
  • --start-from <NAME> โ€” resume from this package onwards, inclusive โ€” following the inventory's iteration order bestie
  • -C, --directory <DIR> โ€” run as if you'd started in DIR, exactly like git -C does: the workspace file, the relative inventory paths and the outputs all get looked up there โœจ
  • --end-with <NAME> โ€” stop after this package (inclusive). Pair it with --start-from and boom, you've bounded a sub-range ๐ŸŽ€
  • --essential <ESSENTIAL> โ€” essential inventory file(s): anything found in any of these is never ever a cull candidate (repeat the flag once per file, no shortcuts)
  • -w, --workspace <PATH> โ€” the workspace file (defaults to ./kondo.toml when it's there) that says which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus all the graph and walk settings, so every subcommand just knows its inputs without you juggling -i. It only fills in flags you didn't already pass on the command line; --no-defaults makes it mind its business ๐Ÿ’…
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first one)
  • --user <USER> โ€” the dist-git username whose access level routes each action ๐Ÿ‘‘
  • --explain-into <PATH> โ€” default inventory for explain: hit Enter at the explanation prompt and the package gets filed here
  • -y, --yes โ€” keep every candidate, no prompting, no thoughts, just vibes
  • --refresh-acls โ€” ignore the day-fresh ACL cache and re-look-up every single level from scratch ๐Ÿ˜ฎโ€๐Ÿ’จ
  • --reason <REASON> โ€” the reason that gets recorded in the -o cull file for packages culled this run (the access level is always appended btw). A note typed at the prompt as c <note> overrides it, per package ๐Ÿ’–
  • -o, --output <OUTPUT> โ€” merge the culled set into this inventory TOML file (it accumulates across passes, so nothing gets lost)
  • --json โ€” output as JSON instead of the human-readable stuff ๐Ÿฆ‹
  • -v, --verbose โ€” print progress to stderr
  • -h, --help โ€” print help

๐ŸŒธ poi-tracker prune-retired

poi-tracker prune-retired [--branch] [-i|--inventory]
[-I|--inventory-dir] [--pattern] [-C|--directory] [--start-from]
[--end-with] [-w|--workspace] [--closure] [-j|--jobs] [--dry-run]
[--remove] [-y|--yes] [-v|--verbose] [-h|--help]

Mark (or remove, your call) packages that aren't carried on any active branch anymore โ€” so either the dist-git project is gone, or it's retired literally everywhere ๐Ÿชฆ

  • --branch <BRANCH,...> โ€” the active branch(es) to check against (CSV or repeated; e.g. rawhide,f44,epel9). Default: queried from Bodhi's active releases, plus rawhide โœจ
  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would try to supply ๐Ÿ‘‘
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • --pattern <GLOB,...> โ€” only process packages matching this glob (e.g. rust-*; a bare name matches exactly). Comma-separated or repeated; default: all packages, no filter no problem ๐Ÿ’…
  • -C, --directory <DIR> โ€” run as if you started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --start-from <NAME> โ€” resume from this package onwards (inclusive), in the inventory's iteration order
  • --end-with <NAME> โ€” stop after this package (inclusive). Combine with --start-from to bound a sub-range ๐ŸŽ€
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -j, --jobs <JOBS> [default: 8] โ€” parallel dist-git queries, go faster bestie ๐Ÿƒโ€โ™€๏ธ
  • --dry-run โ€” preview without modifying the inventory (no cap, we love a safe lil peek)
  • --remove โ€” delete matched packages from the inventory instead of marking them unshipped (which is the default โ€” marking survives re-syncs and lets triage-retired keep closing bugs, so like, think before you yeet ๐Ÿซฃ)
  • -y, --yes โ€” skip the confirmation prompt
  • -v, --verbose โ€” print progress to stderr
  • -h, --help โ€” print help

๐Ÿ’œ poi-tracker reconcile

poi-tracker reconcile [-i|--inventory] [--into] [-I|--inventory-dir]
[-y|--yes] [-C|--directory] [--refresh-acls] [--dry-run]
[-w|--workspace] [--closure] [--json] [-v|--verbose] [-h|--help]

Bring the workspace's inventories up to date with its keeps: walk the new keeps, recompute the derived inventories, ask the decisions a program can't make on its own, and then triage whatever nothing justifies ๐Ÿ”ฅ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • --into <PATH> โ€” essential inventory that promoted packages are filed into (default: the closure's first keeps inventory)
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • -y, --yes โ€” take every default without asking (ride, keep essential), and leave the triage candidates as cull candidates ๐Ÿ˜ด
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --refresh-acls โ€” ignore the day-fresh ACL cache in the triage
  • --dry-run โ€” compute and report only: write no file, walk nothing, ask nothing (new keeps get listed instead of walked) ๐Ÿงš
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • --json โ€” report as JSON; asks and triages nothing (files are still written unless --dry-run โœ๏ธ)
  • -v, --verbose โ€” print progress to stderr
  • -h, --help โ€” print help

๐Ÿฆ‹ poi-tracker remove

poi-tracker remove [-i|--inventory] [--rpm] [-I|--inventory-dir]
[-C|--directory] [-w|--workspace] [--closure] [-h|--help] <NAME>

Remove a package from the inventory, bye bestie ๐Ÿ‘‹

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • --rpm <RPM> โ€” remove specific binary RPM(s) instead of the whole package (surgical, love that)
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -h, --help โ€” print help
  • <NAME> โ€” source RPM name to remove

๐ŸŒˆ poi-tracker semver-audit

poi-tracker semver-audit [-i|--inventory] [--pattern]
[-I|--inventory-dir] [--start-from] [-C|--directory] [--end-with]
[--batch] [-w|--workspace] [--closure] [--non-breaking] [--json]
[-v|--verbose] [-h|--help]

Audit pending upstream updates by semver impact, flagging which ones are non-breaking, which are breaking, and which need a human to review ๐Ÿซก

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply
  • --pattern <GLOB,...> โ€” only process packages matching this glob (e.g. rust-*; a bare name matches exactly). Comma-separated or repeated; default: all packages
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which
  • --start-from <NAME> โ€” resume from this package onwards (inclusive), in the inventory's iteration order
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --end-with <NAME> โ€” stop after this package (inclusive). Combine with --start-from to bound a sub-range
  • --batch [<EMAIL>] โ€” batch mode: one Bugzilla query for bugs assigned to or CC'ing EMAIL (default: the configured email), then matched against the inventory locally. Much faster on a large inventory โ€” but heads up, it misses bugs where EMAIL is neither assignee nor CC'd ๐Ÿ’€
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • --non-breaking โ€” show only non-breaking updates ๐ŸŽ€
  • --json โ€” output as JSON instead of human-readable text
  • -v, --verbose โ€” print progress to stderr
  • -h, --help โ€” print help

๐ŸŽ€ poi-tracker show ๐ŸŽ€

poi-tracker show [-i|--inventory] [--workload] [-I|--inventory-dir]
[--json] [-C|--directory] [-w|--workspace] [--closure] [-h|--help]

Bestie, this one just shows you what's in your inventory. No edits, no drama, just receipts. โœจ

  • -i, --inventory INVENTORY โ€” literally exactly these inventory TOML file(s) (you can repeat it). It's the most specific of the three ways to name inventories and it is always honoured โ€” it overrides whatever a workspace file would try to hand you. ๐Ÿ‘‘
  • --workload WORKLOAD โ€” filter by workload
  • -I, --inventory-dir DIR โ€” treat every *.toml in DIR as an inventory, though roles stay unknown ๐Ÿซฅ โ€” this is for the commands that treat inventories alike (show, find, validate, export). Want to pick exact files? Use -i. Want to say which one is which? Use a workspace.
  • --json โ€” output as JSON instead of human-readable (for when your eyes are tired and your scripts are hungry ๐Ÿ“)
  • -C, --directory DIR โ€” run as if you'd started in DIR, exactly like git -C: the workspace file, relative inventory paths and outputs all get looked up there
  • -w, --workspace PATH โ€” the workspace file (default: ./kondo.toml when it's present) that names which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so every subcommand knows its inputs without you passing -i. Heads up: it only fills in flags you didn't give on the command line, and --no-defaults ignores it entirely ๐Ÿ’…
  • --closure NAME โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • -h, --help โ€” print help

๐ŸŒˆ poi-tracker sync-distgit ๐ŸŒˆ

poi-tracker sync-distgit [-i|--inventory] [-I|--inventory-dir]
[-C|--directory] [-o|--output] [--fast] [-w|--workspace] [--closure]
[--no-groups] [--include-group] [--exclude-group] [--exclude]
[--pattern] [--start-pattern] [--end-pattern] [--auto-prefix]
[--no-auto-prefix] [--prune] [--mark-unshipped] [-j|--jobs] [--per-page]
[--workload] [--name] [-h|--help] <--user|--group>

Sync your inventory straight from Fedora dist-git (Pagure) access. ๐Ÿง It's giving plumbing and honestly? We love her.

  • -i, --inventory INVENTORY โ€” exactly these inventory TOML file(s) (repeatable), the most specific of the three ways to name inventories and always honoured: it overrides whatever a workspace file would supply. ๐Ÿ‘‘
  • --user USER โ€” import packages for this dist-git user
  • --group GROUP โ€” import packages for this dist-git group
  • -I, --inventory-dir DIR โ€” every *.toml in DIR as an inventory, roles unknown โ€” for the commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • -C, --directory DIR โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • -o, --output OUTPUT [default: inventory.toml] โ€” the output TOML file ๐Ÿ“
  • --fast โ€” one owner-alias request instead of a prefix scan. โš ๏ธ Direct owner/admin/commit only: collaborator/ticket grants get missed (and removed under --prune). Also implies --no-groups.
  • -w, --workspace PATH โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure NAME โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • --no-groups โ€” exclude group-only access ๐Ÿ™…โ€โ™€๏ธ
  • --include-group GROUP,... โ€” keep only these groups (CSV or repeated)
  • --exclude-group GROUP,... โ€” drop these groups (CSV or repeated)
  • --exclude GLOB,... โ€” exclude packages by glob (CSV or repeated)
  • --pattern PATTERN โ€” name pattern for a single patterned query
  • --start-pattern PREFIX โ€” start the prefix scan at this prefix
  • --end-pattern PREFIX โ€” stop the prefix scan before this prefix
  • --auto-prefix โ€” query by a-z/0-9 prefix (this is the --user default โœ…)
  • --no-auto-prefix โ€” single query; heads up, this may 504 for a --user sync ๐Ÿ˜ญ
  • --prune โ€” remove packages no longer in dist-git results โœ‚๏ธ
  • --mark-unshipped โ€” mark packages added by this sync that are already retired everywhere (like prune-retired)
  • -j, --jobs JOBS [default: 8] โ€” parallel dist-git queries for --mark-unshipped
  • --per-page PER_PAGE [default: 100] โ€” Pagure API page size
  • --workload WORKLOAD,... โ€” workload tags (CSV or repeated)
  • --name NAME โ€” inventory name (default: user/group)
  • -h, --help โ€” print help

๐Ÿฆ‹ poi-tracker sync-gitlab ๐Ÿฆ‹

poi-tracker sync-gitlab [-i|--inventory] [-I|--inventory-dir]
[-C|--directory] [-o|--output] [--exclude] [-w|--workspace] [--closure]
[--prune] [--workload] [--mark-unshipped] [--centos-release] [--name]
[-h|--help] <--url|--preset>

Sync inventory from a GitLab RPM group ๐ŸฆŠ โ€” yes, the fox one.

  • -i, --inventory INVENTORY โ€” exactly these inventory TOML file(s) (repeatable), the most specific of the three ways to name inventories, always honoured: it overrides whatever a workspace file would supply. ๐Ÿ‘‘
  • --url URL โ€” GitLab group URL
  • -I, --inventory-dir DIR โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • --preset PRESET โ€” preset: hyperscale, proposed-updates, centos-stream
  • -C, --directory DIR โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • -o, --output OUTPUT [default: inventory.toml] โ€” output TOML file ๐Ÿ“
  • --exclude GLOB,... โ€” exclude packages by glob (CSV or repeated)
  • -w, --workspace PATH โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure NAME โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • --prune โ€” remove packages no longer in GitLab results โœ‚๏ธ
  • --workload WORKLOAD,... โ€” workload tags (CSV or repeated)
  • --mark-unshipped โ€” mark archived projects with no released CBS build as unshipped (Hyperscale: RHEL or Stream; Proposed Updates: Stream only)
  • --centos-release REL,... [default: 9,10] โ€” CentOS releases to count as currently shipped (CSV)
  • --name NAME โ€” inventory name (default: derived from group)
  • -h, --help โ€” print help

๐Ÿ’œ poi-tracker sync-rpmfusion ๐Ÿ’œ

poi-tracker sync-rpmfusion [-i|--inventory] [-I|--inventory-dir]
[-o|--output] [-C|--directory] [--repo] [--prune] [-w|--workspace]
[--closure] [--name] [-h|--help] <-r|--release>

Sync inventory from RPM Fusion's repositories, one workload per release. ๐ŸŽ€

  • -i, --inventory INVENTORY โ€” exactly these inventory TOML file(s) (repeatable), the most specific of the three ways to name inventories and always honoured: it overrides whatever a workspace file would supply. ๐Ÿ‘‘
  • -r, --release REL,... โ€” releases to scan (CSV): f43, f44, el10. Each one becomes a workload, so the inventory can answer per release ๐Ÿ—‚๏ธ
  • -I, --inventory-dir DIR โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • -o, --output OUTPUT [default: inventory.toml] โ€” output TOML file ๐Ÿ“
  • -C, --directory DIR โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --repo CLASS โ€” fedrq repo class. The default covers free and nonfree together, which is exactly what "does RPM Fusion ship this?" is asking ๐Ÿ’…
  • --prune โ€” remove packages RPM Fusion ships for no release listed in the inventory. Bestie, important: scanning a subset never prunes what another release still ships. โœ‚๏ธ
  • -w, --workspace PATH โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure NAME โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first)
  • --name NAME โ€” inventory name (default: rpmfusion)
  • -h, --help โ€” print help

๐Ÿงš poi-tracker triage-retired ๐Ÿงš

poi-tracker triage-retired [--branch] [-i|--inventory]
[-I|--inventory-dir] [--pattern] [-C|--directory] [--start-from]
[--end-with] [-w|--workspace] [--batch] [--closure] [--all-reporters]
[--mark] [--api-key] [--claim] [--dry-run] [-y|--yes] [-v|--verbose]
[-h|--help]

Close open release-monitoring bugs as CANTFIX for any inventoried package that is retired on a dist-git branch. ๐Ÿ’€ This one's the bug-closer, and she is thorough.

  • --branch BRANCH,... [default: rawhide] โ€” dist-git branch(es) to check retirement against (CSV or repeated; e.g. rawhide, epel10, f43). Each branch scopes its own Bugzilla search โ€” a rawhide retirement closes the Fedora/rawhide bug, an epel9 retirement closes the Fedora EPEL/epel9 bug. A package retired on one branch but live on another only has bugs closed where it's dead. ๐Ÿ’…
  • -i, --inventory INVENTORY โ€” exactly these inventory TOML file(s) (repeatable), the most specific of the three ways to name inventories and always honoured: it overrides whatever a workspace file would supply. ๐Ÿ‘‘
  • -I, --inventory-dir DIR โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • --pattern GLOB,... โ€” only process packages matching this glob (e.g. rust-*; a bare name matches exactly). Comma-separated or repeated; default: all packages ๐Ÿ”
  • -C, --directory DIR โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there
  • --start-from NAME โ€” resume from this package onwards (inclusive), in the inventory's iteration order
  • --end-with NAME โ€” stop after this package (inclusive). Combine it with --start-from to bound a sub-range ๐Ÿซถ
  • -w, --workspace <PATH> โ€” the workspace file, bestie ๐Ÿ’… defaults to ./kondo.toml whenever that's hanging around. It's the receipts file that says which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus all your graph and walk settings, so every subcommand just knows its inputs without you typing -i. It only tops up flags you didn't already give on the command line, and --no-defaults straight-up ignores it, periodt.
  • --batch [<EMAIL>] โ€” batch mode, a.k.a. the speedrun โœจ One single Bugzilla query for bugs assigned to or CC'ing EMAIL (default: the email you configured), then it gets matched against the inventory locally. Lowkey so much faster on a big inventory โ€” but heads up, it misses any bug where EMAIL is neither assignee nor CC'd. ๐Ÿ’€
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first one).
  • --all-reporters โ€” closes ALL the open bugs on retired branches, not just release-monitoring (Anitya) bugs. โš ๏ธ Use with care, fr fr โ€” this closes human-filed bugs (CVEs, FTBFS, etc.) too.
  • --mark โ€” records results in the inventory's retired_on markers (adds and removes; needs a single -i file).
  • --api-key <API_KEY> โ€” your Bugzilla API key (or just set the BUGZILLA_API_KEY env var, or run poi-tracker config). May also be specified with the BUGZILLA_API_KEY environment variable.
  • --claim โ€” also sets assigned_to on every closed bug to the Bugzilla email you set via poi-tracker config. Interactive mode prompts you about it; with -y this flag is the only way to claim.
  • --dry-run โ€” preview your closures without applying them ๐Ÿ‘€ no take-backs needed.
  • -y, --yes โ€” skips the confirmation prompt.
  • -v, --verbose โ€” prints progress to stderr.
  • -h, --help โ€” prints help.

poi-tracker triage-updates ๐ŸŒธ

poi-tracker triage-updates [-i|--inventory] [--pattern]
[-I|--inventory-dir] [--start-from] [-C|--directory] [--end-with]
[--batch] [-w|--workspace] [--close-stale] [--closure] [--skip-stale]
[--api-key] [--claim] [--dry-run] [-y|--yes] [-v|--verbose] [-h|--help]

Triage the open release-monitoring bugs for your inventoried packages by bumping their Bugzilla priority so it matches the inventory. โœจ

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s), repeatable. This is the most specific of the three ways to name inventories, and it is always honoured โ€” it overrides whatever a workspace file would've supplied. ๐Ÿ’…
  • --pattern <GLOB,...> โ€” only process packages matching this glob (like rust-*; a bare name matches exactly). Comma-separated or repeated; default is all the packages.
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown. For commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • --start-from <NAME> โ€” resume from this package onwards (inclusive), in the inventory's iteration order.
  • -C, --directory <DIR> โ€” run as if you'd started in DIR (like git -C): the workspace file, relative inventory paths and outputs all get looked up there.
  • --end-with <NAME> โ€” stop after this package (inclusive). Combine with --start-from to bound a sub-range. ๐ŸŽฏ
  • --batch [<EMAIL>] โ€” batch mode: one Bugzilla query for bugs assigned to or CC'ing EMAIL (default: the configured email), matched against the inventory locally. Much faster on a large inventory, but it misses bugs where EMAIL is neither assignee nor CC'd.
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --close-stale โ€” close partially-addressed bugs without asking.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first).
  • --skip-stale โ€” skip the Bodhi check for already-built updates.
  • --api-key <API_KEY> โ€” Bugzilla API key (or set BUGZILLA_API_KEY env var, or run poi-tracker config). May also be specified with the BUGZILLA_API_KEY environment variable.
  • --claim โ€” also set assigned_to on each closed bug to the Bugzilla email set via poi-tracker config. Interactive mode prompts; with -y this flag is the only way to claim.
  • --dry-run โ€” preview updates without applying them. ๐Ÿ‘€
  • -y, --yes โ€” skip the confirmation prompt.
  • -v, --verbose โ€” print progress to stderr.
  • -h, --help โ€” print help.

poi-tracker unkeep ๐ŸŽ€

poi-tracker unkeep [-i|--inventory] [--deps] [-I|--inventory-dir]
[--apply] [-C|--directory] [--json] [-w|--workspace] [--closure]
[-h|--help] <--graph> <PACKAGE>

Stop keeping packages: over a saved dependency graph, report what the removal frees, and optionally edit the inventories. It's giving "let it go" energy ๐Ÿฆ‹

  • --graph <PATH> โ€” dependency graph JSON from a deps --graph run.
  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply.
  • --deps <PATH> โ€” derived dependency inventories (a deps output merged by intersect, say); freed packages leave these with --apply.
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • --apply โ€” edit the inventories; without it, report only. ๐Ÿซถ
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there.
  • --json โ€” output machine-readable JSON.
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first).
  • -h, --help โ€” print help.
  • <PACKAGE> โ€” packages to stop keeping.

poi-tracker validate ๐Ÿ’œ

poi-tracker validate [-i|--inventory] [-I|--inventory-dir]
[-C|--directory] [-w|--workspace] [--closure] [-h|--help]

Validate inventory consistency. The vibe check for your TOMLs, basically. โœ…

  • -i, --inventory <INVENTORY> โ€” exactly these inventory TOML file(s) (repeatable) โ€” the most specific of the three ways to name inventories, and always honoured: it overrides whatever a workspace file would supply.
  • -I, --inventory-dir <DIR> โ€” every *.toml in DIR as an inventory, roles unknown โ€” for commands that treat inventories alike (show, find, validate, export). Use -i to pick files, or a workspace to say which is which.
  • -C, --directory <DIR> โ€” run as if started in DIR (like git -C): the workspace file, relative inventory paths and outputs are looked up there.
  • -w, --workspace <PATH> โ€” workspace file (default: ./kondo.toml when present) naming which inventory is which โ€” owned, keeps, derived, retired, cull โ€” plus the graph and walk settings, so each subcommand knows its inputs without -i. Only fills flags not given on the command line; --no-defaults ignores it.
  • --closure <NAME> โ€” which [[closure]] of the workspace a walk subcommand works on (default: the first).
  • -h, --help โ€” print help.

๐Ÿ’– And that's a wrap on the whole page, bestie!! This gorgeous manual is brought to you by sandogasa, sitting pretty at version 0.27.0, dated 2026-10-21. Go forth and be iconic out there ๐Ÿ’…โœจ๐Ÿ‘‘
๐Ÿ“ฆ 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