cosmos-sdk icon indicating copy to clipboard operation
cosmos-sdk copied to clipboard

ci: bump go to 1.22

Open julienrbrt opened this issue 2 years ago • 4 comments

Description

Bump CI to use Go 1.22, and simapp to use Go 1.22. However, as the sdk is a library, and we don't have Go 1.22 specific features we want to use, we keep our minimum Go version to Go 1.21.


Author Checklist

All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.

I have...

  • [ ] included the correct type prefix in the PR title
  • [ ] confirmed ! in the type prefix if API or client breaking change
  • [ ] targeted the correct branch (see PR Targeting)
  • [ ] provided a link to the relevant issue or specification
  • [ ] reviewed "Files changed" and left comments if necessary
  • [ ] included the necessary unit and integration tests
  • [ ] added a changelog entry to CHANGELOG.md
  • [ ] updated the relevant documentation or specification, including comments for documenting Go code
  • [ ] confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.

I have...

  • [ ] confirmed the correct type prefix in the PR title
  • [ ] confirmed all author checklist items have been addressed
  • [ ] reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

Summary by CodeRabbit

  • Chores
    • Enhanced performance and compatibility by updating Go version from 1.21 to 1.22 in workflow configurations, go.mod files, and Dockerfiles.
    • Aligned toolchain declarations in go.mod files and Dockerfiles with the new Go version for an improved development experience.
    • Matched the new Go version by updating base images in Dockerfiles from golang:1.21-alpine to golang:1.22-alpine.

julienrbrt avatar Feb 10 '24 16:02 julienrbrt

Walkthrough

The recent updates involve upgrading the Go version from 1.21 to 1.22 across various components of the project, including simapp, test configurations, Dockerfiles, and go.work.example. These changes ensure compatibility with Go 1.22 and incorporate new features and improvements.

Changes

Files Change Summary
simapp/go.mod, tests/go.mod, tests/starship/tests/go.mod Updated Go version to 1.22 and added toolchain declarations for go1.22.0
Dockerfile, contrib/devtools/Dockerfile, contrib/images/simd-dlv/Dockerfile, contrib/images/simd-env/Dockerfile Changed base image to golang:1.22-alpine
go.work.example Updated Go version and toolchain version
flake.lock Updated nixpkgs dependency with timestamp, narHash, and rev changes

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

coderabbitai[bot] avatar Feb 10 '24 16:02 coderabbitai[bot]

I say we wait a little bit before merging since it's not been updated everywhere (eg: homebrew)

testinginprod avatar Feb 10 '24 17:02 testinginprod

I say we wait a little bit before merging since it's not been updated everywhere (eg: homebrew)

Makes sense. It isn't updated on nixpkgs either, so ci won't let it go through.

julienrbrt avatar Feb 10 '24 17:02 julienrbrt

We just now need to wait until homebrew bumps Go and nixpkgs as well: https://github.com/Homebrew/homebrew-core/pull/157782, then let's merge.

julienrbrt avatar Feb 13 '24 15:02 julienrbrt

@yihuang any help here with nix: https://github.com/cosmos/cosmos-sdk/actions/runs/7976846552/job/21778336332?pr=19396 I don't understand what's wrong 🥲

julienrbrt avatar Feb 22 '24 20:02 julienrbrt

@yihuang any help here with nix: https://github.com/cosmos/cosmos-sdk/actions/runs/7976846552/job/21778336332?pr=19396 I don't understand what's wrong 🥲

it says, error: go.mod specified Go version 1.22, but no compatible Go attribute could be found., which means it can't find go_1_22 in current nixpkgs, we need to pin to a later nixpkgs version which has go 1.22 packaged. currently, we use the master branch which is the most up-to-date branch, but we need to update the commit rev in the flake.lock file, you can do this by running:

nix flake update nixpkgs

yihuang avatar Feb 23 '24 00:02 yihuang