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.1 release #1581

Open
18 tasks
michi-covalent opened this issue Aug 20, 2024 · 0 comments
Open
18 tasks

v1.16.1 release #1581

michi-covalent opened this issue Aug 20, 2024 · 0 comments

Comments

@michi-covalent
Copy link
Collaborator

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

  • Install the latest Cilium release tool:

    git clone https://github.com/cilium/release.git "$(go env GOPATH)/src/github.com/cilium/release"
    cd $(go env GOPATH)/src/github.com/cilium/release
    git checkout master && git pull && make
    sudo install release /usr/local/bin
    
  • 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:

    GITHUB_TOKEN=$(gh auth token) release changelog --base v$PREVIOUS_RELEASE --head v$NEW_RELEASE --repo cilium/cilium --label-filter hubble-cli
    
  • 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.

  • 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.

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