----- Original Message -----
From: "Nicolas Mailhot via devel"
<devel(a)lists.fedoraproject.org>
To: golang(a)lists.fedoraproject.org
Cc: devel(a)lists.fedoraproject.org, announce(a)lists.fedoraproject.org, "Nicolas
Mailhot" <nicolas.mailhot(a)laposte.net>
Sent: Saturday, June 8, 2019 3:45:20 PM
Subject: New Go Packaging Guidelines landed in rawhide (koji) today
Hi,
Fedora’s new Go packaging macros landed in rawhide (koji) today.
I thought that we have agreed on Go SIG meeting with eclipseo to do this in side tag along
with golang rebase(to avoid 2 rebuilds), so there is no observable breakage(if any would
occur) for package builds and all packages "just" pop in using new macros and
following new guidelines. Currently following packages are FTBFS due to this change
https://apps.fedoraproject.org/koschei/affected-by/go-srpm-macros?epoch1=...
(thanks to qulogic for this query). And still we will have to do the side tag rebuild(for
this change). We could have done that in one pass without causing any observable breakage
for anyone.
The corresponding Fedora Go packaging conventions are therefore
EFFECTIVE for new rawhide builds. For the first time in Fedora’s
history, we will be able to perform Go package builds conforming to an
approved Fedora Packaging Guideline.
Packaging documentation:
https://eclipseo.fedorapeople.org/guidelines/packaging-guidelines/Golang/
and approval:
https://pagure.io/packaging-committee/issue/382
The go-rpm-templates package provides more complete info.
F31 change page:
https://fedoraproject.org/wiki/Changes/Adopt_new_Go_Packaging_Guidelines
and approval:
https://pagure.io/fesco/issue/2120
It seems that this change has been accepted as Self Contained Change but IMHO it is System
Wide Change as it seems to affect (nearly) all Go based packages in distribution(and will
require work/attention of people that are not change owners, actually not accounted for in
change proposal). For past several releases I have been doing rebase of Go compiler
change(yet to be filed for F31) that is IMHO comparable(maybe a bit smaller) in scope and
they were always deemed by FESCO as System Wide Changes. This really leaves me confused.
Could someone from FESCO clarify?
While the guidelines will feel familiar to anyone who created a Fedora
Go packages in the last two years, they DO include a backwards-
incompatible change. Making GOPATH manipulation robust required moving
the corresponding logic to %prep with a new %goprep macro.
Therefore, existing specs are expected to fail without the addition of
the %goprep call.
When this has been discussed, new macros have been presented to me as backwards
compatible(i.e. current packages will work and build as is, although requiring refresh to
adopt new features), so it has not been concern for me. Other issue that I have is that
you have not communicated this change(landing the new macro package) prior it happening
here or elsewhere. I'm a Go SIG member(and maintainer of the previous macros packages,
which by the way are still out there) and I have not been aware of this pending change
landing now.
This is of course not the end of the road, just a key step.
I would much appreciate if you would communicate a bit more before landing such a big
changes(go-rpm-package) in future, it would made possible to avoid some breakages, collect
feedback and improve overall packagers experience. I think that communication is not easy,
at least not for me, and I don't think that it is my strong skill, but we
shouldn't resign on it as it is IMO crucial part of the Fedora community. Is there
something that can I do to improve the information flow from my side?
JC
>
> It opens the way to a mass cleanup and refresh of the Fedora Go stack.
>
https://pagure.io/packaging-committee/issue/901
>
> A preview of this refresh is available here:
>
https://copr.fedorainfracloud.org/coprs/eclipseo/golang-ng/builds/
>
> Enormous thanks to
> – Robert-André Mauchin (eclipseo) for the gigantic work done reviewing
> updating and cleaning-up all those packages, and to
> – Elliott Sales de Andrade (Qulogic), that picked up maintenance of
> golist and fixed many of its long-standing bugs and limitations.
>
> Many thanks to the mock, rpm and redhat-rpm-config maintainers,
> that integrated the changes, we built upon (Igor Gnatenko, Florian
> Festi, Miroslav Suchý, Panu Matilainen)
>
> The macro set supports Go DynamicBuildRequires
>
https://fedoraproject.org/wiki/Changes/DynamicBuildRequires
>
> They will be usable in mock as soon as rpm 4.15 lands
>
https://fedoraproject.org/wiki/Changes/RPM-4.15
>
> Use in koji or copr will have to wait for the corresponding refresh
> buldsystem-side. So this part of the change is a technology preview for
> now.
>
> Best regards,
>
> --
> Nicolas Mailhot
> _______________________________________________
> devel mailing list -- devel(a)lists.fedoraproject.org
> To unsubscribe send an email to devel-leave(a)lists.fedoraproject.org
> Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.html
> List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
>
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
>