Skip to main content

Writing release notes

Pulsar release notes consist of the following parts:

Prerequisite

To generate release notes, you are suggested to install the GitHub CLI and authenticate first:

brew install gh
gh auth login

Fetch the release metadata

# Replace v2.10.2 with the target version tag
# Replace apache/pulsar with the component repo
gh release view "v2.10.2" -R apache/pulsar --json author,tagName,publishedAt

Fetch the release note

# Replace v2.10.2 with the target version tag
# Replace apache/pulsar with the component repo
gh release view "v2.10.2" -R apache/pulsar --json body --jq .body

Generate release notes

There isn't a definite way yet.

Here are 2 approaches:

Using "git log"

git log --reverse  --oneline v2.11.3..v2.11.4 | colrm 1 12 | sed 's/\] \[/][/' | perl -p -e 's/^\s+//' | sort

Alternatively using "gh pr list"

gh pr list -L 1000 --search "is:pr is:merged label:release/2.10.6 label:cherry-picked/branch-2.10" --json title,number,url | jq -r '.[] | "\(.title) [\(.number)](\(.url))"'

Update the release note page

  1. Copy the related release notes entries and add a versioned release note file.
  2. Update the version metadata files (release-*.js). For apache/pulsar releases, this means updating release-java.js (Java client) and release-pulsar.js (Pulsar).
  3. For every apache/pulsar release, you should add a <release-version> entry to the corresponding place in the releases.json file.
  4. Update swagger files. ref: swagger files

To preview the result, follow the instructions for previewing content.

Submit the release note

Submit a PR against the site repo with the added version release note file and updated version metadata files.

Here are some examples:

Check whether the release information is shown on the Pulsar Release Note page after the website is updated and built successfully.