Hi Tomas,
Tomas Volf <[email protected]> writes:
Hi,
when I started up a shell with a go, I noticed that the version
I got
was a big weird, 1.26rc1 to be precise. According to Efraim
that is
fine, but I do not understand why (I am not disputing, just
looking to
understand). Should not the package one gets from
guix shell go
not be the latest, but *stable* version (so currently go-1.25)?
Especially since we are getting close to a release, it feels
weird to
have go default to a release candidate.
Guix has multiple versions of Go packaged:
$ guix show go | grep ^version
version: 1.26rc1
version: 1.25.5
version: 1.24.3
version: 1.23.9
version: 1.22.12
version: 1.21.13
version: 1.20.14
version: 1.17.13
version: 1.4-bootstrap-20171003
When you run `guix shell somepackage', you always get the latest
packaged version, which in this case, is 1.26rc1. If you want a
specific version, you can `guix shell [email protected]' (or whatever
version you want).
When building Guix packages, Go 1.24 is the default, as this is
what’s bound to the `go' symbol in (gnu packages golang).
I guess I have two questions:
1. Why not have go-next instead if 1.26 is needed for some
reason?
This is effectively what the Go 1.26rc1 package is. There appears
to be no consistency as to whether a foo-next variable refers to a
package with name "foo" or "foo-next" -- I see many examples of
both in the codebase.
2. What are rules for when it is fine to update package to
release
candidate instead of waiting for the final version?
I don’t believe Guix has any rules around this, but also, such
rules would not apply to this situation. It’s not a package
update in the strict sense of changing a "go" package from 1.25 to
1.26rc1. It’s the addition of a Go 1.26rc1 pacakge, while
retaining several earlier versions.
-- Ian