Release process - openucx/ucx GitHub Wiki

Preparations

  1. Create release branch v<major>.<minor>.x
  2. Bump version of master branch
  3. Update NEWS on the release branch
    1. Mention items that affect user experience (feature/bugfix/enhancement), or key infrastructure changes
    2. Go over commit titles excluding merge commits since the previous release and add relevant items
    3. NEWS should be updated for every release candidate git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative fork<X-1>commit..branch<X>
    4. Add items from internal checklists, such as Plan-of-Record
    5. Tag key community members in the new PR to add/modify missing items
  4. Author list file is maintained by CI with script contrib/authors_update.sh that contains for instance:
    1. git log --no-merges --pretty=format:"%an%x09%ae" origin/v1.17.x..origin/v1.18.x | sort -u

Original release notes (can be deleted once we close on this one)

https://github.com/openucx/ucx/wiki/UCX-release-checklist

Publishing releases

  1. Go to Code->Releases
  1. Click Draft new release
  1. Set the release version, target branch, and mark as pre-release (for release candidate)
  1. Click Publish Release

  2. An automatic Azure pipeline will start building the packages (https://dev.azure.com/ucfconsort/ucx/_build?definitionId=5&_a=summary), please Do not touch the release page while the job is running. If CI has not been started it maybe needed to re-create tag.

  3. When step (5) finishes, there will be a new release page with all packages (23 Assets) attached to it

  4. Remove excess news from the release page, tick/untick Pre-release box and click Publish to convert Draft into Pre-release/Latest-release

  5. Upload API documentation:

    1. Generate documentation commit like below
      1. Check the content of the commit, and the files below
      2. Push on openucx/gh-pages using output command from script
    2. Confirm that documentation on readthedocsio is up to date
$ ./contrib/api_update.sh upstream/v1.18.x
Proceed with documentation generation for upstream/v1.18.x (v1.18)?
...
Push commit with: git push upstream 84c9c077425f4879d9df004a49597d9452dd3964:gh-pages
$ ls -1 ./ucx_docs/api/latest/{*pdf,html/index.html}
./ucx_docs/api/latest/html/index.html
./ucx_docs/api/latest/ucx.pdf
./ucx_docs/api/latest/ucx-v1.18.pdf
  1. Send an email to ucx-dev mailing list to announce the release -
  • Send an email for each Release Candidate (RC) and for the official release.
  • Each email should include:
    1. Type of release — RC or official.
    2. Planned schedule — expected date for the next RC or official release.
    3. Link to the corresponding release or pre-release on GitHub.
  • Ensure that all relevant review groups approve the final RC before publishing the official release.
  1. Bump release version in configure.ac and ucx.spec.in (if another minor release is planned on this release branch)

Release candidates

  • NEWS file should contain separated section for every drop:
## 1.13.0-rc2 (DATE)
#### Bugfixes
* Bugfix 3
## 1.13.0-rc1 (DATE)
#### Features
* Feature 1
* Feature 2
#### Bugfixes
* Bugfix 1
* Bugfix 2
  • GA release drop should cointain single section, which is merge of all release candidates
## 1.13.0 (DATE)
#### Features
* Feature 1
* Feature 2
#### Bugfixes
* Bugfix 1
* Bugfix 2
* Bugfix 3
⚠️ **GitHub.com Fallback** ⚠️