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

ctxutil: Guard linkname of context.cancelCtxKey behind bazel build tag #129900

Closed
rickystewart opened this issue Aug 29, 2024 · 0 comments · Fixed by #132111
Closed

ctxutil: Guard linkname of context.cancelCtxKey behind bazel build tag #129900

rickystewart opened this issue Aug 29, 2024 · 0 comments · Fixed by #132111
Labels
A-build-system C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-dev-inf

Comments

@rickystewart
Copy link
Collaborator

rickystewart commented Aug 29, 2024

This is an illegal use of go:linkname as of Go 1.23:

pkg/util/ctxutil/context.go
83://go:linkname context_cancelCtxKey context.cancelCtxKey

Assigning to dev-inf for now, but I don't think that team is the correct owner.

Part of #128922

Jira issue: CRDB-41761

Epic CRDB-41921

@rickystewart rickystewart added C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-dev-inf labels Aug 29, 2024
@rickystewart rickystewart changed the title ctxutil: Remove linkname of context.cancelCtxKey ctxutil: Guard linkname of context.cancelCtxKey behind bazel build tag Oct 7, 2024
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 8, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

Epic: none
Part of: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 8, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 8, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 8, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 9, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries
* Needed to update `gazelle`, `rules_go`, and a couple other Bazel
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries
* Needed to update `gazelle`, `rules_go`, and a couple other Bazel
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 10, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries
* Needed to update `gazelle`, `rules_go`, and a couple other Bazel
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 11, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries
* Needed to update `gazelle`, `rules_go`, and a couple other Bazel
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 11, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries
* Needed to update `gazelle`, `rules_go`, and a couple other Bazel
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 11, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries
* Needed to update `gazelle`, `rules_go`, and a couple other Bazel
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
rickystewart added a commit to rickystewart/cockroach that referenced this issue Oct 11, 2024
* [ ] Adjust the Pebble tests to run in new version.
* [ ] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [ ] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [ ] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [ ] Adjust `--@io_bazel_rules_go//go/toolchain:sdk_version` in [.bazelrc](../.bazelrc).
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [ ] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch @distdir//:archives` to ensure you've updated all hashes to the correct value.
* [ ] Bump the go version in `go.mod`.
* [ ] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.
  libraries
* Needed to update `gazelle`, `rules_go`, and a couple other Bazel
  libraries

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: cockroachdb#129900
Closes: cockroachdb#129897
Closes: cockroachdb#129902
craig bot pushed a commit that referenced this issue Oct 11, 2024
132111: build: upgrade to Go 1.23.2 r=rail,fqazi a=rickystewart

* [x] Adjust the Pebble tests to run in new version.
* [x] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [x] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [x] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [x] Adjust `--`@io_bazel_rules_go//go/toolchain:sdk_version`` in [.bazelrc](../.bazelrc).
* [x] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https:/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [x] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [ ] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch `@distdir//:archives`` to ensure you've updated all hashes to the correct value.
* [x] Bump the go version in `go.mod`.
* [x] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [ ] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).

In addition to the upgrade, the following changes had to be made:

* Needed to ugprade `staticcheck` to a version that supported Go 1.23
* Needed to update `errcheck` to a version that supported Go 1.23
* Needed to update `gosnowflake` to work around an issue that manifested
  in the error "failed to parse CA certificate". Updating this to the
  latest version would have resulted in a ton of packages being upgraded
  which would increase the risk of this change proportionally. Instead,
  I opted for a smaller jump plus the addition of a patch that applies
  snowflakedb/gosnowflake@f33dfc7eb567.

Epic: CRDB-41921
Release note (build change): Upgrade to Go 1.23.2

Closes: #129900
Closes: #129897
Closes: #129902

Co-authored-by: Ricky Stewart <[email protected]>
@craig craig bot closed this as completed in 310e53a Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-build-system C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-dev-inf
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants