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

v1.16.3 release #1606

Closed
17 tasks done
michi-covalent opened this issue Oct 25, 2024 · 0 comments
Closed
17 tasks done

v1.16.3 release #1606

michi-covalent opened this issue Oct 25, 2024 · 0 comments
Assignees

Comments

@michi-covalent
Copy link
Collaborator

michi-covalent commented Oct 25, 2024

  • Install gh and authenticate with GitHub by running gh auth login.

  • Define NEW_RELEASE and PREVIOUS_RELEASE environment variables. For
    example, if you are releasing a new Hubble CLI version based on
    Cilium 1.16.1 with the previous release being Cilium 1.16.0:

    export NEW_RELEASE=1.16.1
    export PREVIOUS_RELEASE=1.16.0
    
  • Create a release prep branch:

    git checkout main
    git pull origin main
    git switch -c pr/$USER/v$NEW_RELEASE-prep
    
  • Check if replace directive in go.mod is in sync with cilium/cilium. Run:

     curl https://raw.githubusercontent.com/cilium/cilium/$NEW_RELEASE/go.mod
    

    and copy the replace directive to go.mod if it's out of sync.

  • Update Cilium dependency:

    go get github.com/cilium/cilium@${NEW_RELEASE}
    go mod tidy && go mod vendor && go mod verify
    git add go.mod go.sum vendor
    
  • Prepare release notes. You need to generate release notes from both
    cilium/cilium and cilium/hubble repositories and manually combine them.

    docker pull quay.io/cilium/release-tool:main
    alias release='docker run -it --rm -e GITHUB_TOKEN=$(gh auth token) quay.io/cilium/release-tool:main'
    release changelog --base v$PREVIOUS_RELEASE --head v$NEW_RELEASE --repo cilium/cilium --label-filter hubble-cli
    release changelog --base v$PREVIOUS_RELEASE --head main --repo cilium/hubble
    
  • Modify CHANGELOG.md with the generated release notes:

    $EDITOR CHANGELOG.md
    ...
    git add CHANGELOG.md
    
  • Push the prep branch and open a Pull Request against main branch.

     git commit -s -m "Prepare for v$NEW_RELEASE release"
     git push
    

    Get the pull request reviewed and merged: Prepare for v1.16.3 release #1607

  • Update your local checkout:

    git checkout main
    git pull origin main
    
  • Set the commit you want to tag:

    export COMMIT_SHA=<commit-sha-to-release>
    

    Usually this is the most recent commit on main, i.e.

    export COMMIT_SHA=$(git rev-parse origin/main)
    
  • Create a tag:

    git tag -s -a "v$NEW_RELEASE" -m "v$NEW_RELEASE" $COMMIT_SHA
    

    Admire the tag you just created for 1 minute:

    git show "v$NEW_RELEASE"
    

    Then push the tag:

    git push origin "v$NEW_RELEASE"
    
  • Ping hubble-maintainers team on Slack to get an approval to run
    Image Release Build workflow.

  • Wait for the Create a release workflow to finish.

  • Find the release draft in the Releases page. Copy and paste release notes from
    CHANGELOG.md, and click on Publish release button.

  • Post a release announcement message in the Cilium Slack #general channel. Example:

    Hubble CLI v0.8.2 is released 
    Release notes and binaries: https://github.com/cilium/hubble/releases/tag/v0.8.2
    Notable changes:
    - Change 1
    - ...
    
  • Update the Releases section of the README.md to point to the latest
    release.

  • Update stable.txt in the main branch:

    git switch -c pr/$USER/update-stable main
    echo v$NEW_RELEASE > stable.txt
    git add README.md stable.txt
    git commit -s -m "Update stable release to $NEW_RELEASE"
    git push origin pr/$USER/update-stable
    

    and then open a pull request against the main branch, get it reviewed and merged: Update stable release to 1.16.3 #1611

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant