Name: enge Version: devel Release: 1.20260901131950049564.pr109.279.g20fed6f%{?dist} Summary: enge License: MIT BuildArch: noarch URL: https://github.com/danmyway/enge Source0: enge-devel.tar.gz %generate_buildrequires %pyproject_buildrequires %description enge %prep %autosetup -n enge-devel %build %pyproject_wheel %install %pyproject_install %pyproject_save_files enge # Install config directory and example/default configs install -d %{buildroot}%{_sysconfdir}/enge # Bundled example default (guidance only) install -m 0644 src/enge/utils/enge_default_config.toml %{buildroot}%{_sysconfdir}/enge/enge_default_config.toml # Create an empty user config if not present (left for admin to fill in) # Ship as noreplace so upgrades do not clobber local changes if [ ! -f %{buildroot}%{_sysconfdir}/enge/enge_user_config.toml ]; then touch %{buildroot}%{_sysconfdir}/enge/enge_user_config.toml fi chmod 0644 %{buildroot}%{_sysconfdir}/enge/enge_user_config.toml %files -f %{pyproject_files} %{_bindir}/enge %config(noreplace) %{_sysconfdir}/enge/enge_user_config.toml %config(noreplace) %{_sysconfdir}/enge/enge_default_config.toml %changelog * Tue Sep 01 2026 Packit - devel-1.20260901131950049564.pr109.279.g20fed6f - docs: note run_id visibility in CHANGELOG (Daniel Diblik) - fix: surface run_id at dispatch, rerun, and selection (Daniel Diblik) - test: (RED) pin run_id visibility at dispatch, rerun, and selection (Daniel Diblik) - docs: --short default flip -- CHANGELOG and compare-consolidation (Daniel Diblik) - feat: flip --short to the default for report and compare (Daniel Diblik) - test: (RED) pin --short default flip for report and compare (Daniel Diblik) - docs: note run_id visibility in CHANGELOG (Daniel Diblik) - fix: surface run_id at dispatch, rerun, and selection (Daniel Diblik) - test: (RED) pin run_id visibility at dispatch, rerun, and selection (Daniel Diblik) - docs: tier moves to required-key/nullable-value in results.json contract (Daniel Diblik) - fix: make results.json task-entry 'tier' nullable, not a sentinel (Daniel Diblik) - test: (RED) pin nullable results.json task-entry 'tier' (Daniel Diblik) - docs: record compare footer set=/task= drop and header newline join (Daniel Diblik) - fix: drop set=/task= from compare footer, newline-join column headers (Daniel Diblik) - test: (RED) pin compare footer set=/task= drop and header newline join (Daniel Diblik) - docs: document repeatable --run + AND-filter run selection (Daniel Diblik) - feat: flatten run selection into one repeatable --run + AND-filter primitive (Daniel Diblik) - test: (RED) pin run-selector flattening across report/compare/rerun/cancel (Daniel Diblik) - docs: set moves to required-key/nullable-value in results.json contract (Daniel Diblik) - fix: allow results.json task-entry 'set' to be null (Daniel Diblik) - test: (RED) pin nullable results.json task-entry 'set' (Daniel Diblik) - docs: strip restated contract detail from CLAUDE.md pointer sections (Daniel Diblik) - Slim down CLAUDE.md by splitting the docs (Daniel Diblik) - docs: compare's artifacts_url and single-set gate are results.json-only (Daniel Diblik) - fix: source compare columns from results.json only, not manifest requests[] (Daniel Diblik) - test: pin compare loader's manifest-schema independence (RED) (Daniel Diblik) - docs: rerun table dividers fix — CHANGELOG (Daniel Diblik) - fix: drop show_lines=True from rerun info_table (Daniel Diblik) - test: (RED) rerun info_table dividers only at group boundaries (Daniel Diblik) - test: fix vacuous assertIn substring check in compare --short test (Daniel Diblik) - docs: --short no-op fix + new shortening rule — CHANGELOG + CLAUDE.md (Daniel Diblik) - test: cover compare main() --short threading (mutation-proof gap) (Daniel Diblik) - fix: wire up --short with the new node-ID-aware shortening rule (Daniel Diblik) - test: fix column index in report --short integration test (Daniel Diblik) - test: (RED) new --short shortening rule for report + compare (Daniel Diblik) - test: pin unchanged _split_name(name, 0) default report behaviour (Daniel Diblik) - docs: root envelope event/source/target nullability — CLAUDE.md + CHANGELOG (Daniel Diblik) - feat: root envelope event/source/target become nullable for multi-set runs (Daniel Diblik) - test: (RED) results.json root envelope event/source/target become nullable (Daniel Diblik) - docs: results.json rerun_of/artifacts_url/plan/plan_filter — CLAUDE.md + CHANGELOG (Daniel Diblik) - test: strengthen no-fallback pin with bogus envelope keys (Daniel Diblik) - feat: propagate rerun_of/artifacts_url/plan/plan_filter into results.json (Daniel Diblik) - test: (RED) results.json gains rerun_of/artifacts_url/plan/plan_filter + xunit-collection warning (Daniel Diblik) - docs: document the unknown-path coordinate-identity bugfix in the consolidation-policy fence (Daniel Diblik) - fix: never merge unknown-path columns into one consolidation coordinate (Daniel Diblik) - test: (RED) unknown-path columns must not merge into one coordinate (Daniel Diblik) - docs: rewrite compare consolidation policy + CHANGELOG for the unified view (Daniel Diblik) - feat: unify enge compare into one view with split flags and two-stage consolidation (Daniel Diblik) - test: (RED) enge compare unified-view redesign (C1/C2/R1/R3/R5, item 7) (Daniel Diblik) - Add Install system deps job (Daniel Diblik) - refactor: rename manifest/results key build_references -> build_ids (avoids collision with config-layer build_references) (Daniel Diblik) - fix: annotate request_data to keep rerun's mypy baseline at zero new codes (Daniel Diblik) - docs: dispatch-context-schema CHANGELOG entry + CLAUDE.md update (Daniel Diblik) - fix: manifest and results.json record per-request dispatch context (Daniel Diblik) - test: (RED) manifest/results.json gain per-request dispatch context (Daniel Diblik) - fix: map unrecognized TF overall result to MISSING_RESULTS (Daniel Diblik) - test: (RED) unrecognized TF overall value should map to MISSING_RESULTS (Daniel Diblik) - docs: changelog entry for rerun manifest field inheritance (Daniel Diblik) - fix: rerun manifest entries inherit set/tier/target_compose + rerun_of (Daniel Diblik) - test: (RED) rerun manifest entries inherit set/tier/target_compose + rerun_of (Daniel Diblik) - fix: compare --flakiness renders plan mismatches as em-dash + flags (Daniel Diblik) - test: (RED) compare --flakiness em-dash absence + flakiness flag (Daniel Diblik) - fix: compare --flakiness gates on comparable columns, not manifests (Daniel Diblik) - test: (RED) compare --flakiness gates on manifests, not columns (Daniel Diblik) - test: pin terminal Set column renders every dispatched set (Daniel Diblik) - docs: CHANGELOG entry for report --list multi-set Set column fix (Daniel Diblik) - fix: report --list Set column shows every dispatched set (Daniel Diblik) - test: (RED) report --list Set column shows every dispatched set (Daniel Diblik) - docs: conform CLAUDE.md cache bullet to ratified verbatim text (Daniel Diblik) - docs: document AlreadyFinalizedError split in CLAUDE.md, CHANGELOG (Daniel Diblik) - fix: split AlreadyFinalizedError from genuine ConflictError drift (Daniel Diblik) - test: (RED) pin ConflictError/AlreadyFinalizedError split (Daniel Diblik) - fix: correct the CANCELED->MISSING_RESULTS analogy in CLAUDE.md (Daniel Diblik) - fix: remove session-artifact refs from docstrings, cite ratified exit-code map (Daniel Diblik) - chore: docs regen for enge compare (docs-drift gate) (Daniel Diblik) - feat: report --compare deprecation alias, delete legacy compare path (Daniel Diblik) - test: (RED) report --compare deprecation alias and --unify removal (Daniel Diblik) - feat: implement enge compare subcommand (Daniel Diblik) - test: (RED) contract tests for enge compare engine and loader (Daniel Diblik) - chore: move manifest resolution to utils/manifest_resolution.py (Daniel Diblik) - test: strengthen raw-input mutation-check discriminating power (Daniel Diblik) - chore: document report-side results.json cache writer (Daniel Diblik) - feat: implement report-side results.json cache writer (Daniel Diblik) - test: pin report-side results.json cache writer behavior (RED) (Daniel Diblik) - feat: raise ValidationError on empty root-verdict derivation (Daniel Diblik) - test: pin ValidationError for empty finalize_root_verdict (RED) (Daniel Diblik) - chore: v3.1 golden fixtures, docs, and session-artifact cleanup (Daniel Diblik) - feat: implement results.json gap-fill write API (Daniel Diblik) - test: add gap-fill API tests for results.json (RED) (Daniel Diblik) - feat: implement v3.1 results.json dataclasses and validation (Daniel Diblik) - test: replace flat results.json tests with v3.1 schema tests (RED) (Daniel Diblik) - docs: document results.json schema, storage path, and golden fixture MD5s (Daniel Diblik) - feat: write raw xunit bytes alongside results.json (Daniel Diblik) - test: pin byte-identical xunit colocation on write (RED) (Daniel Diblik) - feat: add results_parser module and results_dir() state path (Daniel Diblik) - test: add results.json schema validation tests (RED) (Daniel Diblik) - chore: correct _resolve_launch_name return annotation to Optional[str] (Daniel Diblik) - docs: correct [composes.target_map] "" semantics across config layers (Daniel Diblik) - fix: suppress map-miss WARNING for map-ineligible sources (Daniel Diblik) - test: pin no-WARNING for map-ineligible sources on formula fallback (RED) (Daniel Diblik) - feat: resolve default target via [composes.target_map] before the formula (Daniel Diblik) - test: pin [composes.target_map] target resolution behavior (RED) (Daniel Diblik) - test: pin explicit target in dispatch golden harness configs (Daniel Diblik) - docs: fix stale setup.cfg reference in CLAUDE.md (Daniel Diblik) - style: reformat 3 test files for pinned black target-version (Daniel Diblik) - chore: pin black target-version explicitly in pyproject.toml (Daniel Diblik) - chore: migrate packaging from setup.cfg to pyproject.toml (Daniel Diblik) - chore: consume is_rhui_compose_name in set_flow RHUI detection (Daniel Diblik) - test: add is_rhui_compose_name predicate with unit tests (Daniel Diblik) - fix: Add readd permissions to ci.yml (Daniel Diblik) - docs: fix README references to a nonexistent --rp flag (Daniel Diblik) - ci: add docs-drift job to catch stale docs/cli.md (Daniel Diblik) - feat: generate docs/cli.md from the argparse parser tree (Daniel Diblik) - test: red drift test for generated CLI docs (Daniel Diblik) - refactor: extract parser construction into build_parser() (Daniel Diblik) - fix: preset diagnostics name the set, validation scoped to selection (Daniel Diblik) - test: red tests for preset set-name warnings and validation scoping (Daniel Diblik) - docs: config preset documentation (Daniel Diblik) - feat: config preset resolution ([tests.preset.]) (Daniel Diblik) - test: red tests for config preset resolution (Daniel Diblik) - fix: emit empty-string WARNING for system-layer and override merges (Daniel Diblik) - test: red tests for system-layer and override empty-string WARNINGs (Daniel Diblik) - docs: config layering in CHANGELOG, README, and CLAUDE.md (Daniel Diblik) - feat: three-layer config merging (bundled < system < user) (Daniel Diblik) - test: red tests for config-file layering (bundled < system < user) (Daniel Diblik) - chore: remove artifact_type module global, thread as local (Daniel Diblik) - test: guard against dispatch.__main__ artifact_type module global (Daniel Diblik) - fix: empty-string filter values treated as unset in find_runs (Daniel Diblik) - test: add red tests for empty-string filter value semantics (Daniel Diblik) - fix: report --list table renders oldest-first (Daniel Diblik) - test: add red test for report --list oldest-first table ordering (Daniel Diblik) - docs: CHANGELOG and README for multi-value report filters (Daniel Diblik) - fix: report run filters accept multiple values (OR within dimension) (Daniel Diblik) - test: add red tests for multi-value report run filters (Daniel Diblik) - chore: cancel module conventions — explicit returns, console output (Daniel Diblik) - fix: partial-cancel exit code 1 → 2 (remove broad except handler) (Daniel Diblik) - test: red tests for partial-cancel exit-code fix (Daniel Diblik) - test: add characterization tests for cancel module behavior (Daniel Diblik) - docs: CHANGELOG, README, CLAUDE.md for launch naming change (Daniel Diblik) - feat: RP launch names use {upgrade_path}~{tier}~{arch} grammar (Daniel Diblik) - test: add red tests for RP launch naming grammar (Daniel Diblik) - fix: target launch attribute uses compose name, omitted on rerun (Daniel Diblik) - test: red tests for target attribute compose contract (Daniel Diblik) - feat: stamp structured attributes on RP launches (Daniel Diblik) - test: add red tests for structured RP launch attributes (Daniel Diblik) - feat: record RP launch UUID in manifest request entries (Daniel Diblik) - test: add red tests for manifest launch_uuid recording (Daniel Diblik) - fix: per-key merge for set-level artifact api dicts over run-level (Daniel Diblik) - test: add red tests for per-key artifact api dict merge (Daniel Diblik) - chore: remove dead shared_archive_filename threading from dispatch (Daniel Diblik) - fix: match multi-set runs by per-request set fields in find_runs (Daniel Diblik) - chore: remove stale mypy triage working document (Daniel Diblik) - test: add integration test for resolver↔lineage seam (Daniel Diblik) - fix: wire rerun manifest lineage (parent_run_id + inherited tags) (Daniel Diblik) - fix: resolve copr and brew artifact families independently (Daniel Diblik) - docs: CHANGELOG and CLAUDE.md for per-set artifact fix (Daniel Diblik) - test: add multi-set golden fixture for per-set artifact dispatch (Daniel Diblik) - fix: resolve per-set artifact references in multi-set dispatch (Daniel Diblik) - test: add failing tests for per-set artifact reference resolution (Daniel Diblik) - fix: use timezone-aware UTC for all ReportPortal timestamps (Daniel Diblik) - fix: pass ctx to ReportPortalLaunch in rerun launch creation (Daniel Diblik) - test: add failing tests for rerun RP launch missing ctx (Daniel Diblik) - fix: upload all RP artifact logs at INFO level (Daniel Diblik) - docs: CHANGELOG entry for artifact log-level fix (Daniel Diblik) - fix: add missing commas in ARTIFACT_LOG_LEVELS, make WARN a 1-tuple (Daniel Diblik) - test: add failing tests for artifact log-level mapping bugs (Daniel Diblik) - Update CLAUDE.md (Daniel Diblik) - remove dead writes and tighten stale annotation (Daniel Diblik) - ci: narrow mypy ratchet from ignore_errors to per-code disables (Daniel Diblik) - ci: add mypy type gate, TZ matrix, collector parity guard (Daniel Diblik) - feat: wire cancel into manifest store, lift task resolver to utils (Daniel Diblik) - docs: update docs and config for manifest store (Daniel Diblik) - feat: add migrate-archive subcommand (Daniel Diblik) - feat: wire manifest reader into report, add --list and --run (Daniel Diblik) - feat: wire manifest writer into dispatch and rerun (Daniel Diblik) - feat: add read-only legacy archive bridge (Daniel Diblik) - feat: add manifest schema, writer, and reader (Daniel Diblik) - feat: add XDG path resolution for manifest store (Daniel Diblik) - feat: add inline ULID generator (Daniel Diblik) - fix: pass ctx to SubmitTest in cancel module (Daniel Diblik) - fix: pass config positionally to generate_reportportal_environment_variables (Daniel Diblik) - fix: scope debug logging to enge namespace only (Daniel Diblik) - feat: add set-level plan_filter and test_filter config keys (Daniel Diblik) - Extend rhui definitions to skip repinning (Daniel Diblik) - fix: make parity suite timezone-deterministic (Daniel Diblik) - docs: update reportportal docs for subcommand syntax, add CHANGELOG entries (Daniel Diblik) - refactor: remove legacy wrappers, add CANCELED skip tests, migrate to ExitCode (Daniel Diblik) - refactor: unify reportportal task/query pipelines into source-agnostic operations (Daniel Diblik) - refactor: convert reportportal flag-verbs to subcommands (Daniel Diblik) - test: add operation parity tests with golden fixtures (tasks 2-4) (Daniel Diblik) - test: add parity harness infrastructure for reportportal operations (Daniel Diblik) - docs: fix stale exit-code table, flag spellings, and missing CHANGELOG entry (Daniel Diblik) - docs: update CLAUDE.md for AppContext model, mark completed roadmap items (Daniel Diblik) - refactor: delete parsed_opts singleton, remove all fallback paths (Daniel Diblik) - refactor: relocate test-attribute derivation into AppContext, delete _parsed_opts_ref (Daniel Diblik) - refactor: migrate reportportal module from parsed_opts to AppContext (Daniel Diblik) - fix: address review findings — require ctx, fix rerun caller (Daniel Diblik) - refactor: migrate dispatch entry point from parsed_opts to AppContext (Daniel Diblik) - refactor: migrate set_flow from parsed_opts to explicit AppContext parameter (Daniel Diblik) - refactor: migrate pin_compose from parsed_opts to explicit cli_args parameter (Daniel Diblik) - refactor: migrate tf_send_request from parsed_opts to AppContext (Daniel Diblik) - refactor: extend AppContext with dispatch delegation properties (Daniel Diblik) - refactor: migrate rerun module from parsed_opts to AppContext (Daniel Diblik) - feat: introduce ExitCode IntEnum and fix severity precedence (Daniel Diblik) - refactor: migrate report module from parsed_opts to AppContext (Daniel Diblik) - Update .packit.yaml build targets (Daniel Diblik) - feat: auto-set skip_guest_setup for RHUI source composes (Daniel Diblik) - refactor: migrate cancel module from parsed_opts to AppContext (Daniel Diblik) - feat: wire AppContext into entry point, pass to cancel (Daniel Diblik) - test: add reusable AppContext factory for unittest (Daniel Diblik) - feat: add AppContext dataclass (DI migration foundation) (Daniel Diblik) - refactor: collapse double resolve_effective_values, delete log_fallbacks parameter (Daniel Diblik) - refactor: decompose process_request_spec into named stage functions (Daniel Diblik) - refactor: migrate merge_set_environment_variables to accept RequestContext (Daniel Diblik) - refactor: add RequestContext dataclass for dispatch parameter consolidation (Daniel Diblik) - test: add golden dispatch payload test for behavior-preserving refactor baseline (Daniel Diblik) - fix: config-resolution hardening (tier fallback, empty-string, endpoint errors, validation details) (Daniel Diblik) - test: add characterization tests for opt_manager (76% coverage) (Daniel Diblik) - Add CLAUDE.md (Daniel Diblik) - docs: update CHANGELOG for chore/cleanup-and-lint-gate changes (Daniel Diblik) - feat: add ruff lint gate with per-file BLE001/C901 ratchet, add ruff pre-commit hook (Daniel Diblik) - fix: remove unused imports and dead variable assignments (ruff F401/F841/F402/F811/E741) (Daniel Diblik) - test: convert bare-function tests to unittest.TestCase for proper discover compatibility (Daniel Diblik) - refactor: extract maybe_clear_latest_jobs_file(), retarget dryrun guard tests to real helper (Daniel Diblik) - chore: remove src/__init__.py (src must not be a package), fix setup.cfg url quoting (Daniel Diblik) - chore: add extra_tags to generate_launch_payload, replace runtime subclass with direct call (Daniel Diblik) - chore: delete dead code (merge_env_vars, parse_test_sets, get_config_value, validate_config_section, _maybe_create_rp_launch, _collect_inherited_tags) (Daniel Diblik) - Fix data-loss: latest-jobs file wiped on every record_task_ids() call (Daniel Diblik) - Add GitHub pipeline (Daniel Diblik) - Document new CLI flags and add changelog (Daniel Diblik) - Add tests for UX enhancements (Daniel Diblik) - Add secret redaction for dry-run payloads (Daniel Diblik) - Fix dispatch exit codes and failure tracking (Daniel Diblik) - Redesign dispatch output and request summary (Daniel Diblik) - Migrate from prettytable/FormatText to rich library (Daniel Diblik) - Reduce output noise and improve CLI ergonomics (Daniel Diblik) - Request status NEW considered valid for report waiting (Daniel Diblik) - Comment options to not empty override (Daniel Diblik) - Add support for symbolic RHUI composes (Daniel Diblik) - Add --pool option for Testing Farm provisioning pool (Daniel Diblik) - Normalize tmt context (Daniel Diblik) - Fix failing reportportal timestamp parsing (Daniel Diblik) - Fix tier not honored in generic config (Daniel Diblik) - Update README (Daniel Diblik) - Alma, Rocky as sources (Daniel Diblik) - Add --delete-stale and --since/--until date filters for reportportal and report (Daniel Diblik) - Optimize RP finish/enrich flow and fix CI return codes (Daniel Diblik) - Fix pin compose fallback (Daniel Diblik) - API tokens envar fallback (Daniel Diblik) - ReportPortal log handling (Daniel Diblik) - Repin compose if provided not available (Daniel Diblik) - Fix target release for CentOS (Daniel Diblik) - Launch per request in rerun (Daniel Diblik) - Use original plan_filter only if xunit not parseable (Daniel Diblik) - Format the qualified plans table nicer (Daniel Diblik) - Bump index in rerun tag if reruning a rerun (Daniel Diblik) - Create per request rerun artifacts (Daniel Diblik) - Isolate plans in undefined state (Daniel Diblik) - hotfix (#28) (Daniel Diblik) - Allow CentOS Stream as a source (#19) (Daniel Diblik) - Address user feedback (#27) (Daniel Diblik) - Fix reportportal envars for rerun (#26) (Daniel Diblik) - Update re-run module (#25) (Daniel Diblik) - Chore: Fix setup - include config in pkg files (#24) (Daniel Diblik) - compare_table has sorted header and shows archs instead of ids (#22) (Tereza Černá) - Fix brew build selection for the latest (#21) (Daniel Diblik) - Enable testing with upstream copr builds (#17) (Daniel Diblik) - add options to filter only rhsm or stage rhsm tests (#16) (Daniel Diblik) - Exit when RP token missing, change usrconf naming (#15) (Daniel Diblik) - fix tmt envars, parallel limit (#14) (Daniel Diblik) - Fix --git-ref not overriding config values (#13) (Daniel Diblik) - Fix spec bump (#12) (Daniel Diblik) - bump release for merge to devel branch (#11) (Daniel Diblik) - Make sets callable with regex (#10) (Daniel Diblik) - Refactor to accomodate leapp testing (#8) (Daniel Diblik) - Rerun (#7) (Daniel Diblik) - Fix log downloading for error state requests (Daniel Diblik) - Fix report for overall result error (Daniel Diblik)