Consider putting forge macros in maintainance mode and deprecating them #14
Labels
No labels
1: low-difficultly
1: low-priority
2: low-priority
3: medium-difficulty
3: medium-priority
5: high-difficulty
5: high-priority
blocked
documentation
help-wanted
in-progress
mvp
tests
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
packaging/forge-srpm-macros#14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I am considering putting the forge macros in maintenance mode and deprecating them for a couple reasons. I believe the Go macros and fonts macros are the main users of the forge macros lua library, so my first goal before doing that would be to explore a different solution for those ecosystems. My proposed solution for the Go ecosystem is in https://gitlab.com/fedora/sigs/go/go2rpm/-/work_items/60 and that ticket has some more context as to why I view the forge macros as deficient. I'd like to explore a better path forward that still provides opportunities for automation while avoiding the need to memorize forge url formats or the need to maintain this project — a large pile of lua code that runs during specfile parsing and is difficult to maintain in a backwards compatible fashion.
To summarize the current issues I see with the forge macros:
I am not planning to propose a "Retire forge macros" Change or anything like that, but I would like move away from the forge macros, at least in the Go ecosystem.
I think that %forgesource could be replaced by a macro that takes URL or VCS tag and derives the source tarball URL from it (passing commit or tag as argument) and %forge(suto)setup could be replaced by %(auto)setup -C. The rest is magic that should IMHO not be needed. Perhaps a macro to conveniently construct a snapshot bit of the version tag.
For the go tooling, I am leaning towards handling this all in Python in go2rpm and just hardcoding the proper Source URLs (other than the
%{version}part). But I am happy to participate a forge macros v2 effort if you or anyone else wants to work on that.Indeed, being able to rely on
%autosetup -Cwould definitely simplify this. There's a fair amount of forge macros code to figure out archive top directory names, and each forge has different edge cases when tags have slashes or other special characters.