Skip to content

Commit

Permalink
cmd/dist: enforce the lowest bootstrap version
Browse files Browse the repository at this point in the history
The go1.24 release notes say that go1.22.6 is the
minimum bootstraps required,
the go team also use go1.22.6 bootstraps in testing,
so if there's a problem with using an older version,
automated testing won't uncover it.

Now enforce this in dist to avoid
release notes that do not match reality, which can be confusing.

For #64751

Change-Id: Icd2f8a47b2bbb2d7c3dab9be9a228f43b9630063
GitHub-Last-Rev: 425cd7f
GitHub-Pull-Request: #69168
Reviewed-on: https://go-review.googlesource.com/c/go/+/609762
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
  • Loading branch information
qiulaidongfeng authored and gopherbot committed Sep 26, 2024
1 parent 8014360 commit 607975c
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/cmd/dist/buildtool.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ package main

import (
"fmt"
"go/version"
"os"
"path/filepath"
"regexp"
Expand Down Expand Up @@ -118,9 +119,11 @@ var ignoreSuffixes = []string{
"~",
}

const minBootstrap = "go1.22.6"

var tryDirs = []string{
"sdk/go1.22.6",
"go1.22.6",
"sdk/" + minBootstrap,
minBootstrap,
}

func bootstrapBuildTools() {
Expand All @@ -134,6 +137,15 @@ func bootstrapBuildTools() {
}
}
}

// check bootstrap version.
ver := run(pathf("%s/bin", goroot_bootstrap), CheckExit, pathf("%s/bin/go", goroot_bootstrap), "env", "GOVERSION")
// go env GOVERSION output like "go1.22.6\n" or "devel go1.24-ffb3e574 Thu Aug 29 20:16:26 2024 +0000\n".
ver = ver[:len(ver)-1]
if version.Compare(ver, version.Lang(minBootstrap)) > 0 && version.Compare(ver, minBootstrap) < 0 {
fatalf("%s does not meet the minimum bootstrap requirement of %s or later", ver, minBootstrap)
}

xprintf("Building Go toolchain1 using %s.\n", goroot_bootstrap)

mkbuildcfg(pathf("%s/src/internal/buildcfg/zbootstrap.go", goroot))
Expand Down

0 comments on commit 607975c

Please sign in to comment.