Skip to content

Release process (post 0.8.0)

Tiago Bento edited this page Aug 31, 2022 · 3 revisions

🔴 Please refer to RELEASE_PROCESS.md direct on the code.

NOTE ⚠️

From this version on, we're not merging our prerelease branch back to master. That means that every bug fix that happens on the prerelease branch should be cherry-picked to master as well.

1. Create the prerelease branch.

  1. Make sure you're on the master branch and have no changes.
  2. git checkout -b {version}-prerelease
  3. (optional) Run yarn run update-version-to {version}. Usually master already has the correct version of the next release, but if not, update it accordingly.
  4. (optional) Update root package.json with the version to be used for BPMN, DMN and SceSim editors. Usually master points to a *-SNAPSHOT version of the Editors. Releases should be done with *-Final versions.
  5. yarn run init && yarn run build:prod
  6. git add .
  7. git commit -am "Release {version}"
  8. git push origin {version}-prerelease⚠ This will trigger a GitHub Workflow
    • Create draft release - prerelease.yml

This workflow will create a Draft Release on GitHub with the artifacts ready. It will also update the kogito-online GitHub page to contain the resources for the next version of the Chrome Extension. If something's wrong, you can push again and the kogito-online GitHub page will be updated again and a new Draft Release will be created on GitHub.

2. Update master to the new version

  1. git checkout master
  2. git checkout -b bump-version-to-{new-version}
  3. yarn run update-version-to {new-version}
  4. git add .
  5. git commit -am "Bump version to {new-version}"
  6. git push
  7. Open a PR.

3. Continue with the release process

  1. Wait for GitHub Workflow "Create draft release" to be complete.
  2. Perform the Sanity Checks with the release artifacts
  3. Change the target branch for the release to {version}-prerelease
  4. Write the release text
  5. Publish release ⟶ ⚠ This will trigger two GitHub Workflows
    • Publish release artifacts - publish_artifacts.yml
    • Publish Chrome Extension to the Chrome Web Store - publish_chrome_ext.yml

The first Workflow will finish updating kogito-online GitHub Page. That means updating the /editors/latest URI to point to the version that was just released. It will also publish the artifacts to NPM, so it cannot be re-run.

The second Workflow will publish the Chrome Extension to the Chrome Store. It'll probably not be available instantly, but you can check it on the Google Dev Console

4. Finish the release

  1. Wait for "Publish release artifacts" to be ready
  2. Execute the post-release tests on the Sanity Checks spreadsheet
  3. Update and release the VS Code Extensions on kie-tooling-store
  4. Update and publish the Examples on kogito-tooling-examples
  5. Write a blogpost about the release
  6. Write an email to the team about the release

Done!

After all that, you should have one commit on master:

1. Bump version to {next-version}

You should also have a tag called {version} with non-empty packages/kie-bc-editors-unpacked/[bpmn/dmn] folders and a yarn.lock on the repository root dir.