Content
Updated by Markus Kahl 2 days ago
**Prerequisites**
* Clone Devkit [https://github.com/opf/openproject-devkit](https://github.com/opf/openproject-devkit)
**Steps**
The release branch is created right after the feature freeze, 2 weeks before the release is actually created and published.
The following command will perform all the changes necessary to create the new release branch without pushing them:
`bin/opdev create-release-branch`
The steps will be printed so that you have a chance to review them before pushing.
Once you're ready, run the following command to actually push the new release branch:
`bin/opdev create-release-branch --push`
And follow the instructions printed:
* [x] [ ] Post a message in Element #general room to inform devs and writers that all documentation and bugs now need to be made against the new release branch (use/adapt the sample text from command output)
* [x] [ ] Update [opf/saas-deploy repository variables](https://github.com/opf/openproject-flavours/settings/variables/actions/SAAS_OPENPROJECT_STAGE_BRANCH) to deploy stage with the newly created release branch
<img class="image_resized op-uc-image op-uc-image_inline" style="width:525px;" src="/api/v3/attachments/372339/content">
* [x] [ ] Close this work package
**Example**
For example, you're trying to release OpenProject 13.0. The release branch `release/13.0` needs to be created from current `dev` branch. Assuming that `lib/open_project/version.rb` from `dev` branch is at 13.0.0 version, `bin/opdev create-release-branch --push` will perform these steps:
* For [opf/openproject](https://github.com/opf/openproject), [opf/openproject-deutsche\_bahn](https://github.com/opf/openproject-deutsche_bahn), [opf/openproject-open\_desk](https://github.com/opf/openproject-open_desk), and [opf/saas-openproject](https://github.com/opf/saas-openproject) repositories:
* Check that previous release branch, `release/12.2`, is fully contained in `dev` branch
* Create `release/13.0` branch from `dev` branch
* For [opf/openproject-website](https://github.com/opf/openproject-website) repository
* Point to `release/13.0` branch for website stage deployment and Crowdin translations (following [documented instructions](https://github.com/opf/openproject-website/blob/release/documentation/DOCS.md)).
* For [opf/monitoring](https://github.com/opf/monitoring) repository
* Point to `release/13.0` for the status badges (modifying README.md)
Then, if no error occurred,
* Modifications are pushed
* The file `lib/open_project/version.rb` on `dev` branch of `opf/openproject` is updated and pushed to be version 13.1.0
* Instructions are printed to perform some last manual steps:
* Post a message in Element #general room to inform devs and writers that all documentation and bugs now need to be made against the new release branch
* Update [opf/saas-deploy repository variables](https://github.com/opf/openproject-flavours/settings/variables/actions/SAAS_OPENPROJECT_STAGE_BRANCH) to deploy stage with the newly created release branch
* Close this work package
* Clone Devkit [https://github.com/opf/openproject-devkit](https://github.com/opf/openproject-devkit)
**Steps**
The release branch is created right after the feature freeze, 2 weeks before the release is actually created and published.
The following command will perform all the changes necessary to create the new release branch without pushing them:
`bin/opdev create-release-branch`
The steps will be printed so that you have a chance to review them before pushing.
Once you're ready, run the following command to actually push the new release branch:
`bin/opdev create-release-branch --push`
And follow the instructions printed:
* [x]
* [x]
<img class="image_resized op-uc-image op-uc-image_inline" style="width:525px;" src="/api/v3/attachments/372339/content">
* [x]
**Example**
For example, you're trying to release OpenProject 13.0. The release branch `release/13.0` needs to be created from current `dev` branch. Assuming that `lib/open_project/version.rb` from `dev` branch is at 13.0.0 version, `bin/opdev create-release-branch --push` will perform these steps:
* For [opf/openproject](https://github.com/opf/openproject), [opf/openproject-deutsche\_bahn](https://github.com/opf/openproject-deutsche_bahn), [opf/openproject-open\_desk](https://github.com/opf/openproject-open_desk), and [opf/saas-openproject](https://github.com/opf/saas-openproject) repositories:
* Check that previous release branch, `release/12.2`, is fully contained in `dev` branch
* Create `release/13.0` branch from `dev` branch
* For [opf/openproject-website](https://github.com/opf/openproject-website) repository
* Point to `release/13.0` branch for website stage deployment and Crowdin translations (following [documented instructions](https://github.com/opf/openproject-website/blob/release/documentation/DOCS.md)).
* For [opf/monitoring](https://github.com/opf/monitoring) repository
* Point to `release/13.0` for the status badges (modifying README.md)
Then, if no error occurred,
* Modifications are pushed
* The file `lib/open_project/version.rb` on `dev` branch of `opf/openproject` is updated and pushed to be version 13.1.0
* Instructions are printed to perform some last manual steps:
* Post a message in Element #general room to inform devs and writers that all documentation and bugs now need to be made against the new release branch
* Update [opf/saas-deploy repository variables](https://github.com/opf/openproject-flavours/settings/variables/actions/SAAS_OPENPROJECT_STAGE_BRANCH) to deploy stage with the newly created release branch
* Close this work package