I'm happy to announce that you can now use https to push commits
to src.fedoraproject.org. You will need to use 'fedpkg clone -a'
and have a session with a running browser to do the initial
authentication, but after that everything should be transparent.
Users who are not part of the 'packager' group can now use
this to push to forks of projects to create pull requests.
Please see https://fedoraproject.org/wiki/Infrastructure/HTTPS-commits
for more details.
We hope this support will allow more community members to
contribute along with allowing more flexibility to maintainers
who don't always have SSH access.
== Summary ==
The [[PackagingDrafts/Go| current Go packaging guidelines]] have been in a draft
state for several years now, and they do not reflect the
[[ More_Go_packaging|current practices ]] from the Go SIG. As a result of new
RPM macros developed by [[User:nim| Nicolas Mailhot]], the Go SIG wishes to
formally adopt new Go Packaging Guidelines, which aim at automation, reliability
== Owner ==
* Name: [[User:eclipseo| Robert-André Mauchin]]
* Name: [[User:jcajka| Jakub Cajka]]
* Name: [[User:nim| Nicolas Mailhot]]
* Name: [[User:qulogic| Elliott Sales de Andrade]]
* Email: <golang(a)lists.fedoraproject.org>
== Detailed Description ==
Over 775 Go packages are currently residing in Fedora's repositories, yet no
formal guidelines have ever been approved. As a result, the various Go SPECs are
inconsistent and most often outdated. Moreover, the next version of Go, 1.13,
will introduce the concept of modules by default, which will completely change
how Go libraries are distributed. With the current state of our tooling, the Go
SIG is not prepared to face such a drastic change.
[[User:nim| Nicolas Mailhot]] has worked on a set of new RPM macros which
will allow us to disconnect the upstream Go tooling from the downstream
integration inside RPM. This will allow us to adapt easily to future upstream
changes without the need to rewrite our SPEC catalogue.
== Benefit to Fedora ==
* Simplicity: SPEC files are simpler, less error-prone
* Automation: the new macros computes packages definition, Requires,
Provides and has provision for the new automated BuildRequires
* Standardization of SPEC files across the Go library
* Drastic reduction of boilerplate and SPEC size
* Automatic removal of vendored code
* Ease of testing: all units tests are detected and run
* Ease of upkeep
* Ease of adaptation to upstream changes
== Scope ==
* Proposal owners:
Get the last macros approved in ''redhat-rpm-config'']
** Get ''[https://pagure.io/golist golist]'', the tool detecting
dependencies, updated and split from the
** Release ''GOPATH'' directory ownership from the
''[https://src.fedoraproject.org/rpms/golang golang]'' package, so it
can be managed by the ''[https://pagure.io/go-rpm-macros
** Get ''[https://pagure.io/go-rpm-macros go-rpm-macros]'' packaged and reviewed
** Retire ''[https://src.fedoraproject.org/rpms/go-srpm-macros
** Port existing Go packages to the new macros (it probably won't be
finished by [[Releases/31 | Fedora 31]])
* Other developers: N/A (not a System Wide Change)
* Policies and guidelines:
[https://pagure.io/packaging-committee/pull-request/883 Get the Go
packaging guidelines approved by the Packaging Committee]
== Upgrade/compatibility impact ==
No compatibility impact is expected. All the new macros are backward compatible
with the old ones.
== How To Test ==
The COPR [https://copr.fedorainfracloud.org/coprs/nim/macros-ng/ nim/macros-ng]
can be used to test the new macros on Rawhide. Sample SPEC files are available
in the FPC Guidelines proposal.
== User Experience ==
The user impact is minimal or nil. As a result of the simplification of SPEC
files, we may ship updated libraries more quickly, and it may be easier for new
contributors to package Go applications.
== Dependencies ==
N/A (not a System Wide Change)
== Contingency Plan ==
* Contingency mechanism: If the required packages are not merged by
the deadline target, or if the Guidelines are not approved, we may
continue with our current set of non-approved practices. No other
impact is expected.
* Contingency deadline: N/A (not a System Wide Change)
* Blocks release? No
* Blocks product? No
== Documentation ==
The FPC Guidelines proposal is available on
eclipseo personal space].
Fedora Program Manager
FESCo has given us the go-ahead to turn zchunk metadata on again for
the F30 fedora repository after the librepo segmentation fault bug
was fixed. An updated librepo was built a week ago and was pushed
to stable five days ago, so most beta users should have the new
If you're using F30 and have librepo-1.9.6-1.fc30, please update to
librepo-1.9.6-2.fc30 as soon as possible! If you don't, you will once
again get a segmentation fault when running dnf.
If you find yourself getting a segmentation fault when running dnf on a
system with librepo-1.9.6-1.fc30, you can temporarily work around it by
doing the following:
1. Edit /etc/dnf/dnf.conf and add the following line:
dnf update librepo
Verify that you got librepo-1.9.6-2.fc30 or later in the update
3. Remove the 'zchunk=False' line you added to /etc/dnf/dnf.conf
At this point, dnf should download the repository metadata without any
segmentation faults, and any further repository metadata downloads
should be significantly smaller.