x/build: update for new distribution archive builds #58659
Labels
Builders
x/build issues (builders, bots, dashboards)
early-in-cycle
A change that should be done early in the 3 month dev cycle.
NeedsFix
The path to resolution is known, but the work has not been done.
release-blocker
Milestone
For #24904, I have mailed CL 470676, which adds a new
make.bash -distpack
flag that generates distribution archives.On the release infrastructure side, x/build needs to start using
make.bash -distpack
in Go 1.21 and later to produce the distribution archives (including the source archives), instead of the code it currently uses to generate them. The-distpack
mode also writes the module files that we need to serve for GOTOOLCHAIN support (#57001). Those need to start being served from go.dev/dl like the other archives.When writing a VERSION file for Go 1.21 or later, the file should be of the form
That time stamp is used as the modification time in the archives (for reproducibility). This means something in the x/build metadata will have to record the time to use for each release and then write that time into the VERSION file.
The reproducibility work enables building distribution archives on any kind of machine. In particular it should be possible to build everything on an appropriately trusted+locked down linux/amd64 system. You use
GOOS=goos GOARCH=goarch ./make.bash -distpack
.Note that if we move the generation of the linux/arm distribution archives to linux/amd64, we need to set
GOARM=6
as well, to mimic the environment on linux-arm-aws. SoGOOS=linux GOARCH=arm GOARM=6 ./make.bash -distpack
.It doesn't matter what goos/goarch is used to generate the source archives (you get the same result on every system, as one would expect), but it does need to be generated by
make.bash -distpack
for reproducibility.Once the release infrastructure is updated, we should issue a go1.21alpha1 (built from a master branch is fine, no need for a release branch) to exercise the infrastructure and to test that external users can reproduce the archives (#57120).
/cc @golang/release
The text was updated successfully, but these errors were encountered: