Hi,

I am proposing for inclusion a set of rpm technical files aimed at automating 
the packaging of forge-hosted projects.

— Packaging draft: https://fedoraproject.org/wiki/More_Go_packaginghttps://pagure.io/packaging-committee/issue/734
— go-srpm-macros RFE with the technical files: 
https://bugzilla.redhat.com/show_bug.cgi?id=1526721

This proposal is integrated with and depends on the 
https://fedoraproject.org/wiki/Forge-hosted_projects_packaging_automation draft
It builds on the hard work of the Go SIG and reuses the rpm automation of 
https://fedoraproject.org/wiki/PackagingDrafts/Go when it exists, and produces 
compatible packages. 

What it does:

— drastically shorter spec files, up to 90% in some cases, often removing 
hundreds of lines per spec.
— simple, packager-friendly spec syntax
— automated package naming derived from the native identifier (import path). No 
more packages names without any relation with current upstream naming.
— working Go autoprovides. No forgotten provides anymore.
— working Go autorequires. No forgotten requires anymore.
— strict automated directory ownership (used by autorequires and autoprovides).
— centralized computation of source URLs (via Forge-hosted projects packaging 
automation). No more packages lacking guidelines. No more broken guidelines no 
one notices.
— easy switch between commits, tags and releases (via Forge-hosted projects 
packaging automation). No more packages stuck on commits when upstream starts 
releasing.
— guidelines-compliant automated snapshot naming, including snapshot timestamps 
(via Forge-hosted projects packaging automation). No more packages stuck in 
2014.
— guidelines-compliant bootstraping.
— systematic use of the Go switches defined by the Go maintainer. Easy to do 
changes followed by a mass rebuild.
— flexibility, do the right thing transparently by default, leave room for 
special cases and overrides.
— no bundling (a.k.a. vendoring) due to the pain of packaging one more Go 
dependency.
— centralized Go macros that can be audited and enhanced over time.
— aggressive leverage of upstream unit tests to detect quickly broken code.

Please consult packaging draft for full information.

The proposal has been tested in Rawhide and EL7 over a set of ~ 140 Go 
packages. This set is a mix of current Fedora packages, bumped to a more recent 
version, rewrites of Fedora packages, and completely new packages. 

I hope posting the second part of the automation will answer some questions 
people had on the 
https://fedoraproject.org/wiki/Forge-hosted_projects_packaging_automation draft

Regards,

-- 
Nicolas Mailhot
_______________________________________________
golang mailing list -- golang@lists.fedoraproject.org
To unsubscribe send an email to golang-le...@lists.fedoraproject.org

Reply via email to