Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tooling]: Upgrade TCR's Go build version to 1.24 #928

Open
1 of 26 tasks
mengdaming opened this issue Feb 14, 2025 · 0 comments
Open
1 of 26 tasks

[Tooling]: Upgrade TCR's Go build version to 1.24 #928

mengdaming opened this issue Feb 14, 2025 · 0 comments
Labels
go Pull requests that update Go code S Small

Comments

@mengdaming
Copy link
Contributor

Contact Details

[email protected]

Change Request

TCR is currently built with Go 1.23, while version 1.24 is now available.

Change Description

Upgrade go version in tcr module from 1.23 to 1.24.

We should check in particular that:

  • All existing toolchains still work as before
  • All GitHub actions work properly

Alternatives

Stay with Go 1.23

Additional Context

Go 1.24 release notes: https://go.dev/doc/go1.24

After upgrade to Go 1.24 is complete, the following changes could be looked into (cf. Tools / Go command section in Go 1.24 release notes):

  • Go modules can now track executable dependencies using tool directives in go.mod. TCR is currently using the workaround described in the release note to deal with tool dependencies. We could replace it with the tool dependencies option now that Go tools supports it natively.
  • The go build command now sets the main module’s version in the compiled binary based on the version control system tag and/or commit. We could leverage on it to manage TCR versionning info, which is currrently done through go build ldflags in Makefile and goreleaser

Code of Conduct

  • I agree to follow this project's Code of Conduct

To Do List

  • Upgrade go version to 1.24
    • Change go version to 1.24 in go modules
      • src/go.mod (tcr module)
      • tcr-doc/go.mod (tcr doc generation)
    • Change go version in GitHub actions
      • .github/workflows/go.yml
      • .github/workflows/golangci_lint.yml
      • .github/workflows/goreleaser.yml
    • Verify that the 3 steps pass on GitHub
      • Check build
      • Check lint
      • Check release (can only be done after changes are merged on main branch)
    • Update the development documentation
      • dev-doc/build.md
    • Update .golangci.yml
    • Update examples with go language
      • examples/go-bazel/go.mod
      • examples/go-go-tools/go.mod
      • examples/go-gotestsum/go.mod
      • examples/go-make/go.mod
  • Test that there is no regression
    • Verify that build works
    • Verify that tests work
    • Verify that linter doesn't raise any problems
    • Test that new version works with all existing toolchain (cf. script tools/tcr/verify-tcr-examples.sh)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
go Pull requests that update Go code S Small
Development

No branches or pull requests

1 participant