Skip to content

Release guide

thekingofcity edited this page Sep 23, 2022 · 5 revisions

Release Rust client

Github Release

  1. Bump up crate versions and update links, README, CHANGELOG, and examples. Cut a pull request that is just for the release.
  2. After the pull request is merged, tag the commit and make the release on Github.
  3. Upload CLI binaries to the release, namely controller/cli and src/cli.

Crate.io release

  1. Make sure no path dependencies exist in Cargo.toml files.
  2. Make sure there are no uncommitted changes.
  3. Publish sub-crate first, you can use cargo publish --dry-run to check if there is any error.
  4. Publish the Pravega rust client.

Release Python client

  1. Ensure the version in the Cargo.toml file corresponds to the release version.
  2. The release of the Python client to the https://pypi.org/project/pravega is automated by a github workflow. This workflow will be triggered when a github tag is created.
  3. Upload the new python binding whl artifacts in the pypi repository to the github release.

Release Nodejs client

  1. Ensure the version in the Cargo.toml file corresponds to the release version.
  2. For the version in package.json, there is no need to alter it because the workflow will change it to the tag version, though it is recommended to update it for clarity.
  3. Steps 4, 5, and 6 are automated by a github workflow.
  4. A draft github release page is created automatically.
  5. The native node add-ons for Linux, macOS, and Windows will be built first and uploaded to the github release with the same tag.
  6. Then the javascript code will be compiled and uploaded to https://www.npmjs.com/package/@pravega/pravega. This workflow will be triggered only when the previous jobs succeed.
  7. Publish the auto-created github release page otherwise the users won't be able to pull the prebuilt binaries.