@@ -169,6 +169,13 @@ model.
169169| PyPI Trusted Publishing | PyPI's OIDC verifier | Validates the OIDC token from the ` publish.yml ` workflow and authorizes the upload |
170170| PyPI | pypi.org | The distribution channel; serves wheels and sdists over HTTPS to ` pip ` |
171171| Read The Docs | bitmath.readthedocs.io | Hosts the rendered documentation; rebuilds on push to master |
172+ | ` .packit.yaml ` | Repository root | Packit configuration; declares which release events trigger Copr scratch builds, dist-git PRs, Koji builds, and Bodhi updates |
173+ | ` python-bitmath.spec ` | Repository root | RPM packaging spec used by Packit to build Fedora and EPEL RPMs |
174+ | Packit | packit.dev | Hosted automation that connects upstream releases to Fedora dist-git, Copr, Koji, and Bodhi based on ` .packit.yaml ` |
175+ | Copr | copr.fedorainfracloud.org/coprs/tbielawa/bitmath-ci | Fedora's build-on-demand farm; used for PR scratch builds and release-candidate builds |
176+ | Fedora dist-git | src.fedoraproject.org/rpms/python-bitmath | Where the official RPM source lives for each Fedora/EPEL branch |
177+ | Koji | koji.fedoraproject.org | Fedora's official build system; produces the RPMs that ship to users |
178+ | Bodhi | bodhi.fedoraproject.org | Fedora's update system; pushes Koji-built RPMs to stable for f42, epel9, and epel10 |
172179
173180### Pipeline View
174181
@@ -218,6 +225,80 @@ model.
218225 +------------------------+
219226```
220227
228+ ### RPM Distribution Path (Fedora and EPEL via Packit)
229+
230+ The same ` release: published ` event that triggers ` publish.yml ` also
231+ fires the Packit pipeline. The two paths run in parallel and are
232+ independent of each other; PyPI consumers get the wheel, Fedora and
233+ EPEL consumers get an RPM. Production releases (clean ` vX.Y.Z ` tags)
234+ flow through ` propose_downstream ` to dist-git, Koji, and Bodhi.
235+ Release-candidate tags (` vX.Y.Z-rcN ` ) take a shorter path that only
236+ produces Copr builds for testing.
237+
238+ ```
239+ +------------------------+
240+ | release: published |
241+ | (same event that fires |
242+ | the publish.yml flow |
243+ | above) |
244+ +-----------+------------+
245+ | reads .packit.yaml
246+ v + python-bitmath.spec
247+ +------------------------+
248+ | Packit |
249+ | |
250+ | clean vX.Y.Z tag: |
251+ | propose_downstream |
252+ | opens dist-git PRs |
253+ | for rawhide, f42, |
254+ | epel9, epel10 |
255+ | |
256+ | vX.Y.Z-rcN tag: |
257+ | copr_build only |
258+ +-----------+------------+
259+ | dist-git PR merged
260+ v
261+ +------------------------+
262+ | Fedora dist-git |
263+ | src.fedoraproject |
264+ | .org/rpms/ |
265+ | python-bitmath |
266+ +-----------+------------+
267+ | commit trigger
268+ v
269+ +------------------------+
270+ | Koji |
271+ | builds RPMs from |
272+ | each dist-git branch |
273+ +-----------+------------+
274+ | tagged build
275+ v
276+ +------------------------+
277+ | Bodhi |
278+ | update_type: |
279+ | enhancement; |
280+ | stable push for |
281+ | f42, epel9, epel10 |
282+ | (rawhide skipped) |
283+ +-----------+------------+
284+ | dnf install python-bitmath
285+ v
286+ +------------------------+
287+ | Fedora / EPEL consumer |
288+ +------------------------+
289+ ```
290+
291+ The Copr scratch-build job that fires on every pull request is not
292+ shown above; it is a CI-style validation, not part of the release
293+ pipeline. It uses the same ` .packit.yaml ` and spec file to confirm
294+ the RPM still builds across the targeted Fedora and EPEL branches
295+ before a change merges.
296+
297+ ** Known limitation** : the target matrix in ` .packit.yaml ` today is
298+ ` fedora-rawhide ` , ` fedora-42 ` , ` epel-9 ` , and ` epel-10 ` . As new
299+ Fedora and EPEL releases land, that list needs to be refreshed. That
300+ work is tracked outside this document.
301+
221302### Actions
222303
2233041 . ** Version bump.** I edit ` VERSION ` to the new SemVer string.
0 commit comments