Release process¶
Creating a new release involves creating a new release of the design system, the react components and the CMS itself. It's important that it's done in that order, due to the dependencies between the projects.
In the following you'll need to use the "Bypass branch protection" option when merging to skip having someone review the changes.
Creating the release¶
Design system¶
- Create a pull request from the
develop
branch againstmain
. - Wait for Github Actions to run and turn green.
- Merge the pull request.
- Create a new
release
- Enter the release version as "Choose a tag", and select to create it on publish.
- Select
main
as target. - Click "Generate release notes" to automatically fill out title and description.
- Ensure that "Set as the latest release" is selected before publishing the release.
Update DPL React for local development¶
These steps are not critical for release, but are required for developers to get the latest version of the design system when developing.
In order to update the dependencies, you need to be authenticated with the GitHub NPM package repository.
In https://github.com/danskernesdigitalebibliotek/dpl-react:
- Create a new branch locally from
develop
(remember togit pull
first). - Ensure you're using the right version of
node
. You can usenvm use
for this. - Update the version of the design system used by running
yarn add @danskernesdigitalebibliotek/dpl-design-system@[version]
, you can find the latest version of the design system in the package on Github NOTE: You need to be certified for this. - Commit and push the changes.
- Create a pull request from your branch against
develop
. - Wait for actions to turn green.
- Merge the pull request.
DPL React¶
- Create a pull request from the
develop
againstmain
. - Wait for actions to go green.
- Merge pull request.
- Create a new release in the same way as with the Design system.
DPL CMS¶
- Create a new branch locally from
develop
(remember togit pull
first). - Merge
main
into your branch. - Update the version of the Design System used:
RELEASE=[version] VERSION=[version] task dev:composer:update-design-system
. Refer totask dev:composer:update-design-system --summary
if needed. - Update the version of React components used:
RELEASE=[version] VERSION=[version] task dev:composer:update-react
- Commit, push your branch and create a pull request against
develop
. - Wait for actions to go green.
- Merge your pull request.
- Create a new pull request from
develop
againstmain
. - Wait for actions to go green.
- Merge your pull request.
- Create a new release in the same way as with the Design system.
Deployment and announcement¶
After creating a release, there's only a few housecleaning tasks left.
Deployment to staging¶
In order to deploy the new release to staging so that DDF can test it, refer to Platform runbook. This will require access to Azure in order to run the deployment.
JIRA and communication¶
That was the technical part, now you need to tell somebody about your shiny new release.
Do the following for both the Hermod and Brahma projecs in Jira (this obviously requires Jira access).
- Rename the
upcoming
release to the released version. - Mark the release as released.
- Create a new unrelased
upcoming
release if it doesn't happen automatically. - When the release has been deployed to
staging, tell DDF by creating a new topic
in the the
#DDF+
Zulip channel with the release name in the subject and links to the release on staging and the release notes for the projects that has contributed to the release. Take a look at past release announcements in Zulip for an example