Repository navigation
Conversation
d746c60 to
fc217f5
Compare
| spec_file: "{{ spec_file_path }}" | ||
| targets: "{{ rhpkg_targets }}" | ||
| koji_tags: "{{ koji_tags }}" | ||
| koji_executable: "{{ build_package_koji_command }}" |
There was a problem hiding this comment.
P2 — This passes build_package_koji_command, whose role default is still koji (obal/data/roles/build_package/defaults/main.yaml:3). That overrides rhpkg_release.py's koji_executable default of brew, so an rhpkg configuration that does not explicitly override the command will send build queries and tag operations to koji rather than Brew. Could this select brew by default in rhpkg mode, or validate/document the required override?
| def submit(self, item): | ||
| """Reuse complete/in-flight builds, otherwise prepare and submit dist-git.""" | ||
| target = item['target'] | ||
| if not self.options['scratch']: |
There was a problem hiding this comment.
P2 — This bypasses receipt resumption whenever scratch mode is enabled. If a scratch release is run with build_package_wait=false and invoked again to finish it, the saved task is not reused: a new scratch task is submitted and the receipt is overwritten. Could scratch mode resume its recorded task IDs too (while validating the requested inputs), and add a rerun regression test?
fc217f5 to
f580f84
Compare
Summary
Replace Tito release integration with rhpkg dist-git builds and obal-managed Koji/Brew tag reconciliation. This implements the missing Brew/dist-git workflow discussed in #380 and #294, and addresses the existing-build tagging problem from #424.
rhpkg_targets.brew. Preserve explicit command overrides and direct Koji defaults.build_package_releaser: kojior the existingbuild_package_use_koji_build: truesetting.copr-cliworkflow. Setup reads package inventory settings and installs neither Tito nor rhpkg for COPR inventories.package_whitelist_checkand support both explicit tag lists and legacy releaser configuration for registration checks. Share its registration query with the rhpkg flow and check missing destination tags before promoting existing builds; missing/blocked packages and query failures stop tagging. These checks default on for rhpkg releases and do not gate scratch builds.obal checkand inventory tag verification.Compatibility and migration
Tito is no longer an available releaser. Existing Tito inventories must configure
rhpkg_targets; legacyrel-eng/releasers.confsettings are not translated automatically. Missing target configuration and an explicit Tito selection fail with a diagnostic.COPR inventories retain
build_package_build_system: copr. Existing direct Koji inventories can retainbuild_package_use_koji_build: true.Custom Tito source/test builders, including
setup_sources_git, are unsupported. Asynchronous release and scratch invocations save receipts; rerun the same action with waiting enabled to finish. Once a scratch task has been completed through obal, a subsequent scratch invocation can submit a new build. No live Brew release has been submitted.Prebuilt gems and tarballs referenced by the spec remain supported through local files or git-annex. The removed
setup_sources_gittask cloned a project source repository and handedsource_dirto a Tito builder; it was separate from rhpkg's dist-git checkout. Pipelines that generate artifacts before updating the packaging repository use the existing spec/annex source path.Regression coverage
Add 48 Brew regression cases using public Foreman package versions to simulate promotion from
rpm/developtorpm/5.0. Tests use real Git and RPM tools with local dist-git repositories and stateful Brew/rhpkg clients. Coverage includes existing-build promotion, version/release and macro changes, multiple destinations, task recovery, partial tag failures, scratch isolation and resumption, changed-input rejection, default command selection and overrides, downloads, registration checks, rejected legacy configuration, and preservation of dist-git service files.Replace obsolete Tito expectations and retain the existing COPR tests. Five setup tests verify dependency selection for COPR, direct Koji, and rhpkg inventories, plus setup without any package inventory, without installing packages on the test host.
Validation
f580f84.setup.py check -m -s, andgit diff --check: passed.The annex regression drops local content, fetches it from a non-web annex remote, and verifies the actual source bytes inside the submitted scratch SRPM while preserving the annex link. Brew command semantics were checked in the existing Satellite tooling container; no live build or tag was submitted.
Documentation files are excluded from this change.