(drop superfluous angle brackets around FESCo issue link) |
(Don't think this needs release notes) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Revitalize Forge Macros = | = Revitalize Forge Macros = | ||
== Summary == | == Summary == | ||
Line 25: | Line 23: | ||
== Current status == | == Current status == | ||
[[Category: | [[Category:ChangeAcceptedF40]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | ||
Line 45: | Line 43: | ||
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/C6O3U6XTE55W4FHW3DOJS2BN6HMIFC4K/ devel thread] | * [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/C6O3U6XTE55W4FHW3DOJS2BN6HMIFC4K/ devel thread] | ||
* FESCo issue: https://pagure.io/fesco/issue/3061 | * FESCo issue: https://pagure.io/fesco/issue/3061 | ||
* Tracker bug: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2238452 #2238452] | ||
* Release notes tracker: | * Release notes tracker: N/A | ||
== Detailed Description == | == Detailed Description == |
Latest revision as of 17:04, 3 October 2023
Revitalize Forge Macros
Summary
Up until now, the
forge macros
have been part of redhat-rpm-config
.
We will split them out into a new forge-srpm-macros
package.
We will add more test coverage and add a new %forgeversion
macro to allow adding snapshot info to Version instead of Release.
Owner
- Name: Maxwell G
- Email: maxwell@gtmx.me
Current status
- Targeted release: Fedora Linux 40
- Last updated: 2023-10-03
- devel thread
- FESCo issue: https://pagure.io/fesco/issue/3061
- Tracker bug: #2238452
- Release notes tracker: N/A
Detailed Description
The forge macros will be removed from
redhat-rpm-config
in favor of a standalone forge-srpm-macros
package.
redhat-rpm-config
will gain a dependency on forge-srpm-macros
.
This will ease maintenance and allow the forge macros to develop independently
of redhat-rpm-config.
This split will also allow us to address longstanding issues such as
lack of test coverage and noncompliance with the new Versioning Guidelines that
mandate putting snapshot info in Version instead of Release.
Development is under way in https://git.sr.ht/~gotmax23/forge-srpm-macros. Maintaining the macros in a separate upstream repository enables us to have proper CI and proper versioning and frees us from having to sync macro files across distgit branches.
The new forge-srpm-macros project
now has support for Codeberg, nested Gitlab groups, and a new
%forgeversion
macro.
There are also unit tests covering the core forge macros functionality to
prevent future regressions.
The tests have already uncovered a two year old bug in the Pagure forge
functionality!
For now, we will limit this Change to rawhide, but we may backport the
forge-srpm-macros
package to stable Fedora releases depending on feedback
from the redhat-rpm-config maintainers and other stakeholders.
This is not a backwards incompatible Change,
so it should be safe to backport after proper testing in Rawhide.
Feedback
The redhat-rpm-config maintainers have expressed that they'd prefer if the forge
macros were split into a separate project.
Other developers have expressed that the lack of regression tests makes them
hesitant to propose or accept changes to the forge macros; this Change fixes that.
The Go SIG who makes use of go-rpm-macros
that relies on the forge
macros is happy to see more maintenance of these macros.
The inability to get changes into the forge macros have blocked us from fixing
bugs that affect the Go macros.
Benefit to Fedora
This split out will ease maintenance and allow us to address longstanding issues in the current codebase.
Scope
- Proposal owners:
- ✅ Create an upstream repository for the forge-srpm-macros project
- ✅ Prepare a PR for
redhat-rpm-config
to remove the macros and associated forge.lua code and add a dependency on the new package: https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/260 - Submit the
forge-srpm-macros
package for review - Build
forge-srpm-macros
and the updatedredhat-rpm-config
package in a side tag using provenpackager privileges - Close existing PRs open against the forge macros and direct authors to the new project
- Other developers:
- Review the
redhat-rpm-config
PR - Preform test builds of packages that use the forge macros
- Review the
- Policies and guidelines:
- ✅ Adjust the SourceURL Packaging Guidelines to recommend the new
%forgeversion
macro: https://pagure.io/packaging-committee/pull-request/1295
- ✅ Adjust the SourceURL Packaging Guidelines to recommend the new
- Trademark approval: N/A (not needed for this Change)
- Alignment with Community Initiatives: N/A
Upgrade/compatibility impact
There shouldn't be any.
The forge macros will remain in the buildroot,
and redhat-rpm-config
will Require the new package.
How To Test
There is a test Copr available that contains builds of forge-srpm-macros
'
main
branch.
You can use it in mock like this:
copr mock-config gotmax23/forge-srpm-macros-dev fedora-rawhide-x86_64 > ~/.config/mock/forge.cfg fedpkg sources # To preform a full package build mock --spec *.spec --source . -r forge # To build a source package only mock --buildsrpm --spec *.spec --source . -r forge
User Experience
This is a developer focussed Change. This Change does not propose any drastic changes to the macros themselves and does not mandate specfile changes, so it shouldn't be too visible.
Dependencies
This change requires coordination with the redhat-rpm-config developers to split out the macros.
Contingency Plan
- Contingency mechanism: Revert the
redhat-rpm-config
change and retireforge-srpm-macros
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? No
Documentation
N/A (not a System Wide Change)