diff --git a/docs/notes/2.24.x.md b/docs/notes/2.24.x.md index 2a4785b22f9..1c795cd127f 100644 --- a/docs/notes/2.24.x.md +++ b/docs/notes/2.24.x.md @@ -108,6 +108,8 @@ Added a new `cache_scope` field to `adhoc_tool` and `shell_command` targets to a Fix a bug where Pants raised an internal exception which occurred when compiling a Go package with coverage support when the package also had an external test which imported the base package. +Fix a bug where Pants sent a minor Go version instead of the major one to the Go toolchain during packaging. + Recognize `-fullpath` as a test binary flag. Add support for the `all:` prefix to patterns used with the `go:embed` directive. The `all:` prefix includes files which start with `_` or `.` which are ordinarilly excluded . diff --git a/src/python/pants/backend/go/util_rules/build_pkg.py b/src/python/pants/backend/go/util_rules/build_pkg.py index ed76338088a..91ff26fbef3 100644 --- a/src/python/pants/backend/go/util_rules/build_pkg.py +++ b/src/python/pants/backend/go/util_rules/build_pkg.py @@ -715,7 +715,7 @@ async def build_go_package( # See https://github.com/golang/go/blob/f229e7031a6efb2f23241b5da000c3b3203081d6/src/cmd/go/internal/work/gc.go#L79-L100 # for where this logic comes from. - go_version = request.minimum_go_version or "1.16" + go_version = go_root.major_version(request.minimum_go_version or "1.16") if go_root.is_compatible_version(go_version): compile_args.extend(["-lang", f"go{go_version}"]) diff --git a/src/python/pants/backend/go/util_rules/build_pkg_test.py b/src/python/pants/backend/go/util_rules/build_pkg_test.py index be4d1f7e5da..e38c638900f 100644 --- a/src/python/pants/backend/go/util_rules/build_pkg_test.py +++ b/src/python/pants/backend/go/util_rules/build_pkg_test.py @@ -89,7 +89,7 @@ def test_build_pkg(rule_runner: RuleRunner) -> None: ).digest, s_files=(), direct_dependencies=(), - minimum_go_version=None, + minimum_go_version="1.21.2", ) direct_dep = BuildGoPackageRequest( import_path="example.com/foo/dep", diff --git a/src/python/pants/backend/go/util_rules/goroot.py b/src/python/pants/backend/go/util_rules/goroot.py index 5e2cc64b7aa..8be67363518 100644 --- a/src/python/pants/backend/go/util_rules/goroot.py +++ b/src/python/pants/backend/go/util_rules/goroot.py @@ -39,6 +39,11 @@ def is_compatible_version(self, version: str) -> bool: """Can this Go compiler handle the target version?""" return compatible_go_version(compiler_version=self.version, target_version=version) + def major_version(self, version: str) -> str: + _version_components = version.split(".") # e.g. [1, 17] or [1, 17, 1] + major_version = ".".join(_version_components[:2]) + return major_version + @property def full_version(self) -> str: return self._raw_metadata["GOVERSION"]