I've been thinking a little about how Go is updated in Fedora. I would like
to hear other opinions about the current state of the releases and improve
it.


This is not related to the Fedora proposal that I'm planning to submit
today regarding the update of Go. I do not pretend to change anything for
the next Fedora release, but at least have an idea of if what we are doing
right now can be improved.


The current state:

Each Fedora release has a major release of Go available.

For example, Fedora 33 had 1.15, and Fedora 34 had 1.16.


The problem:

I see two main issues with this approach.

   1. Both Go and Fedora have release cycles of 6 months, so the schedule
   is a little tight. Go releases can be delayed and have issues in the mass
   rebuild phase.
   2. A user needs to wait for the next Fedora release to get a new major
   version of Go. So consequentially, they will tend to download from
   upstream, making the Go package just necessary for dependencies but with
   little use on its own. Also, backport bugs to Fedora releases might be a
   problem. Releasing packages that depend on new features are an issue too
   [0].


What I think is an improvement:

Suppose a new Go major version is released in the middle of a Fedora life
cycle. In that case, I think it is an improvement for the user to be able
to update to the following Go release.

A hypothetical new release cycle would look like this:

   - Fedora N release follows Go upstream as close as we can.
   - Fedora N-1 sticks with the latest major version of Go that was
   available on it until the release of Fedora N.


Another hypothetical approach could be using modules with each upstream
supported release in a stream.


To help in the decision, I made a report tool/web page [1] that shows the
current state of the packages that depend on Go (Thanks to the COPR API).

It compares the builds of every single Go dependent package in Fedora 35
using the current available Go package with the same list of Go packages
but using the Go package is available on Fedora Rawhide. To rephrase it, it
compares Fedora 35 packages built with Go 1.16 with Fedora 35 packages
built with Go 1.17.


As you can see, right now, from the 1901 packages that depend on Go, 196
have some sort of change and 1705 built exactly the same. You can search
for "Same results" or "Something has changed" to see this. Or by the name
of the package.


The report is not smart enough to say what happened right now so some
"issues" are in fact improvements like golang-github-cactus-statsd-client,
others like golang-github-briandowns-spinner are real issues.


My idea is to improve this report with your suggestions. Hence, if a new Go
major release is available, we can confidently say that the package can be
updated in the middle of a Fedora release.


[0] https://github.com/containers/podman/pull/12544

[1] https://alexsaezm.fedorapeople.org/report.html -> let it load, it has a
JS that allows you to search
_______________________________________________
golang mailing list -- golang@lists.fedoraproject.org
To unsubscribe send an email to golang-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/golang@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to