Skip to content

Update toolkit go version to 1.23, update dependency install scripts, add install-prereqs-and-configure target #13991

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

Closed
wants to merge 22 commits into from

Conversation

sameluch
Copy link
Contributor

@sameluch sameluch commented Jun 11, 2025

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

What does the PR accomplish, why was it needed?
Bump golang version in toolkit to 1.23. Additionally, update prerequisite scripts and docs to include the new flow of sudo make install-prereqs and sudo make install-prereqs-and-configure.

Change Log
  • Update gonum + deps, update to go-1.23.1
  • update ubuntu prereqs
  • Add options for additional configurations via prereq script (previously only in .md files)
  • pin go version for mariner
Does this affect the toolchain?

NO

Associated issues
Links to CVEs
Test Methodology
  • Pipeline build id: 834004
  • New Ubuntu 22.04 VM
    • fresh repo clone
    • run sudo make install-prereqs-and-configure -> sudo reboot
    • sudo make build-packages DAILY_BUILD_ID=lkg REBUILD_TOOLS=y SRPM_PACK_LIST=words PACKAGE_REBUILD_LIST=words -j100
  • New Azure Linux 3.0 VM
    • fresh repo clone
    • run sudo make install-prereqs-and-configure -> sudo reboot
    • `sudo make build-packages DAILY_BUILD_ID=lkg REBUILD_TOOLS=y SRPM_PACK_LIST=words
  • New Azure Linux 2.0 VM
    • fresh repo clone
    • run sudo make install-prereqs-and-configure -> sudo reboot
    • `sudo make build-packages DAILY_BUILD_ID=lkg REBUILD_TOOLS=y SRPM_PACK_LIST=words

Additional tests

  • with old golang version installed, install msft-golang overtop on 2.0 using make install-prereqs
  • rebuild tools using old golang version to get warning message box
    • executed on ubuntu, azurelinux 3.0, azurelinux 2.0
  • test downgrade to pinned version using older available golang package using make install-prereqs

@sameluch sameluch requested a review from a team as a code owner June 11, 2025 21:17
@microsoft-github-policy-service microsoft-github-policy-service bot added documentation Improvements or additions to documentation Tools 3.0-dev PRs Destined for AzureLinux 3.0 labels Jun 11, 2025
@dmcilvaney dmcilvaney requested a review from Copilot June 12, 2025 18:55
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR bumps the Go version in the toolkit to 1.23.1 and updates associated dependency versions and installation scripts to reflect the new toolchain requirements. Key changes include:

  • Updating go.mod to use Go 1.23.0 and adjusting dependency versions (e.g., gonum from v0.15.0 to v0.16.0).
  • Enhancing the make targets in scripts (tools.mk and toolkit.mk) to provide improved warning instructions and adding the new install-prereqs-and-configure target.
  • Revising the prerequisite scripts and documentation for both Ubuntu and Mariner to support the new Go version and additional configuration options.

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
toolkit/tools/go.mod Updated Go version and dependencies
toolkit/scripts/tools.mk Modified warning/error flow for Go version checks
toolkit/scripts/toolkit.mk Added new make target (install-prereqs-and-configure) and refined OS logic
toolkit/docs/building/prerequisites-ubuntu.sh Updated package name for Go and added command-line options
toolkit/docs/building/prerequisites-ubuntu.md Updated installation instructions and command options
toolkit/docs/building/prerequisites-mariner.sh Revised script options, including support for msft-golang
toolkit/docs/building/prerequisites-mariner.md Updated documentation to reflect Mariner-specific prerequisites
.github/workflows/go-test-coverage.yml Updated the expected Go version to 1.23

Copy link
Member

@mfrw mfrw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Supersedes:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.0-dev PRs Destined for AzureLinux 3.0 documentation Improvements or additions to documentation Tools
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants