Bodhi Non-RPM Artifacts
Bodhi, the Fedora Updates System, should be able to process more than just RPMs.
- Name: Randy Barlow
- Email: firstname.lastname@example.org
- Release notes owner:
As Fedora starts to deliver more than just RPMs and ISOs, we need a way to handle delivering updates to these artifacts. Bodhi currently handles this workflow for RPMs only, but we want to start using it for other content, such as Docker containers, Flatpak apps, OSTrees, etc. If it can be tagged in Koji, it should be accepted by Bodhi.
Benefit to Fedora
By using Bodhi for the updates process for all artifacts, we are able to better leverage community testers, enforce gating based on automated test results, handle bugzilla interactions, send email announcements, etc.
- Proposal owners:
- Document the existing REST API: https://github.com/fedora-infra/bodhi/issues/1323
- Requirements gathering
- Database model changes: https://github.com/fedora-infra/bodhi/issues/1324
- Modify the REST API so that the content type can be specified. It would be ideal to do this backwards-compatible if possible, but we can also release Bodhi 3.0.0 if we need to make an incompatible change: https://github.com/fedora-infra/bodhi/issues/1325
- Modify fedmsgs so they declare which content type is being references: https://github.com/fedora-infra/bodhi/issues/1326
- Python bindings modifications: https://github.com/fedora-infra/bodhi/issues/1327
- CLI modifications: https://github.com/fedora-infra/bodhi/issues/1328
- Web UI changes: https://github.com/fedora-infra/bodhi/issues/1329
- Masher modifications to the push process: https://github.com/fedora-infra/bodhi/issues/1330
- Unit tests
- Upstream tracker issue: https://github.com/fedora-infra/bodhi/issues/653
- Upstream milestone for this effort: https://github.com/fedora-infra/bodhi/milestone/4
- Other developers:
- QA: Taskotron will need handle kicking off tests for non-RPM updates
- QA: Client-side updates-testing tools like fedora-easy-karma could optionally be updated to detect these new artifacts
- Release engineering:
- Policies and guidelines: N/A (not a System Wide Change)
- Trademark approval: N/A (not needed for this Change)
N/A (not a System Wide Change)
How To Test
- Once a non-RPM artifact is built and tagged in Koji, the maintainer should be able to submit it to Bodhi.
- The maintainer should be able to set the karma thresholds and require gating based on any Taskotron or Wiki-based test.
- Testers should be able to submit feedback.
- Release engineering should be able to "push" the content out in the standard updates process.
- Users of these various components will notice more frequent updates, ideally with more stability and less breakage.
- This plan relies on these artifacts having tags in Koji.
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- We can simply switch back to the old compose processes for these components instead of using Bodhi.
- Contingency deadline: F26 Beta
- Blocks release? No
- Blocks product? No
N/A (not a System Wide Change)