Content
View differences
Updated by Markus Kahl about 1 month ago
**Prerequisites**
* Clone and install [https://github.com/opf/openproject-devkit](https://github.com/opf/openproject-devkit)
* Set up and authorize [https://cli.github.com/](https://cli.github.com/) with a `repo` scope token with access to the openproject, release-api and openproject-website repositories. This is used for:
* automatic triggering of the website documentation build
* automatic publishing of the release entry on GitHub
* Create an access token for the OpenProject community, and export that using `export OPENPROJECT_API_TOKEN="token"`. This is used for:
* This is used for automatic creation of the release news
**Releasing**
Creating a new release boils down to running `bin/opdev release X.Y.Z`, which does the following:
* Create a `workspace/` directory where openproject core and release api are cloned. Then the following release actions are done locally:
* Release core stable/X from release/X.Y
* Tag stable/X with vX.Y.Z
* Bump release/X.Y to X.Y.(Z+1)
* Create a release-api entry
* Creating and publishing release notes (if not already present)
So, to actually run this command to release OpenProject@vX.Y.Z you use:
`./bin/opdev release X.Y.Z`
Once that command has completed, you can inspect your local workspace to make sure the release is complete and then redo it with push enabled:
`./bin/opdev release --push X.Y.Z`
**Release Checklist**
* [x] Confirm release got added correctly to [https://github.com/opf/openproject/releases](https://github.com/opf/openproject/releases)
* [x] Confirm release got added as news to https://community.openproject.org/projects/openproject
* [x] Confirmed release API up to date [https://releases.openproject.com/v1/check.svg?version=X.Y.Z&type=packager](https://releases.openproject.com/v1/check.svg?version=17.2.0&type=packager)
* [x] [ ] Confirmed packages completed at [https://packages.openproject.com/u/opf/openproject/channels/stable/17](https://packages.openproject.com/u/opf/openproject/channels/stable/17)
* [x] Confirmed docker tags built at [https://github.com/opf/openproject/actions/workflows/docker-release.yml?query=](https://github.com/opf/openproject/actions/workflows/docker-release.yml?query=)
* [x] Confirmed Helm chart PR (created automatically once the step above is finished) is green and merged (https://github.com/opf/helm-charts/pulls)
* [ ] ~~MAJOR VERSIONS ONLY: Updated tag in docker-compose.yml~~ [~~https://github.com/opf/openproject-deploy/blob/stable/11/compose/docker-compose.yml#L14~~](https://github.com/opf/openproject-deploy/blob/stable/11/compose/docker-compose.yml#L14)
* Clone and install [https://github.com/opf/openproject-devkit](https://github.com/opf/openproject-devkit)
* Set up and authorize [https://cli.github.com/](https://cli.github.com/) with a `repo` scope token with access to the openproject, release-api and openproject-website repositories. This is used for:
* automatic triggering of the website documentation build
* automatic publishing of the release entry on GitHub
* Create an access token for the OpenProject community, and export that using `export OPENPROJECT_API_TOKEN="token"`. This is used for:
* This is used for automatic creation of the release news
**Releasing**
Creating a new release boils down to running `bin/opdev release X.Y.Z`, which does the following:
* Create a `workspace/` directory where openproject core and release api are cloned. Then the following release actions are done locally:
* Release core stable/X from release/X.Y
* Tag stable/X with vX.Y.Z
* Bump release/X.Y to X.Y.(Z+1)
* Create a release-api entry
* Creating and publishing release notes (if not already present)
So, to actually run this command to release OpenProject@vX.Y.Z you use:
`./bin/opdev release X.Y.Z`
Once that command has completed, you can inspect your local workspace to make sure the release is complete and then redo it with push enabled:
`./bin/opdev release --push X.Y.Z`
**Release Checklist**
* [x] Confirm release got added correctly to [https://github.com/opf/openproject/releases](https://github.com/opf/openproject/releases)
* [x] Confirm release got added as news to https://community.openproject.org/projects/openproject
* [x] Confirmed release API up to date [https://releases.openproject.com/v1/check.svg?version=X.Y.Z&type=packager](https://releases.openproject.com/v1/check.svg?version=17.2.0&type=packager)
* [x]
* [x] Confirmed docker tags built at [https://github.com/opf/openproject/actions/workflows/docker-release.yml?query=](https://github.com/opf/openproject/actions/workflows/docker-release.yml?query=)
* [x] Confirmed Helm chart PR (created automatically once the step above is finished) is green and merged (https://github.com/opf/helm-charts/pulls)
* [ ] ~~MAJOR VERSIONS ONLY: Updated tag in docker-compose.yml~~ [~~https://github.com/opf/openproject-deploy/blob/stable/11/compose/docker-compose.yml#L14~~](https://github.com/opf/openproject-deploy/blob/stable/11/compose/docker-compose.yml#L14)