Top Menu

Jump to content
Home
    Modules
      • Projects
      • Activity
      • Work packages
      • Gantt charts
      • Calendars
      • Team planners
      • Boards
      • News
    • Getting started
    • Introduction video
      Welcome to OpenProject Community
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • Upgrade to Enterprise edition
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Enterprise support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      Forgot your password?

      or sign in with your existing account

      Google

Side Menu

  • Overview
  • Activity
    Activity
  • Roadmap
  • Work packages
    Work packages
  • Gantt charts
    Gantt charts
  • Calendars
    Calendars
  • Team planners
    Team planners
  • Boards
    Boards
  • News
  • Forums

Content

Updated by Oliver Günther 11 months 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**

* [ ] Release added to [https://github.com/opf/openproject/releases](https://github.com/opf/openproject/releases)
* [ ] Release added as news to https://community.openproject.org/projects/openproject/news/new
* [ ] 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=10.4.0&type=packager)
* [ ] Confirmed packages completed at https://packager.io/gh/opf/openproject/refs/stable/X
* [ ] Confirmed docker tags built at https://hub.docker.com/r/openproject/openproject/
* [ ] 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)
Loading...