-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document release procedure #67
Open
xendk
wants to merge
5
commits into
refactoring
Choose a base branch
from
release-procedure
base: refactoring
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,61 +1,7 @@ | ||
# Documentation Site | ||
# General | ||
|
||
This project exists to consolidate and standardize documentation across DPL | ||
(Danish Public Libraries) repositories. It's based on [mkdocs | ||
material](https://squidfunk.github.io/mkdocs-material/) and uses a handy | ||
[multirepo-plugin](https://github.com/jdoiro3/mkdocs-multirepo-plugin) to import | ||
markdown and build documentation from other DPL repositories dynamically. | ||
|
||
## Adding documentation | ||
|
||
Any repository you want to add to the documentation site, must have a `docs/` | ||
folder in the project root on github and relevant markdown must be moved inside. | ||
|
||
If you wish to further divide your documentation into subfolders, mkdocs will | ||
accomodate this and build the site navigation accordingly. Here is an example: | ||
|
||
``` shell | ||
docs/ | ||
| README.md # Primary docs/index file for your navigation header | ||
└───folder1 # Left pane navigation category | ||
│ │ file01.md | ||
│ └───subfolder1 # Expandable sub-navigation of folder1 | ||
│ │ file02.md | ||
│ │ file03.md | ||
└───folder2 # Additional left pane navigation category | ||
│ file04.md | ||
``` | ||
|
||
The `docs/` folder is self-contained, meaning that any relative links e.g. | ||
`"../../"` linking outside the docs/ directory, should use an absolute URL like: | ||
<https://github.com/danskernesdigitalebibliotek/dpl-docs/blob/main/README.md> | ||
|
||
Otherwise, following the link from the documentation site will cause a 404. | ||
|
||
## Site development | ||
|
||
The documentation project is hosted | ||
[here](https://github.com/danskernesdigitalebibliotek/dpl-docs). | ||
|
||
It uses a Github workflow to build and publish to github pages. Since | ||
documentation can be updated independently from other repos, a cron has been | ||
established to publish the site every 6 hours. While this covers most use cases, | ||
it's also possible to trigger it adhoc through [Github | ||
actions](https://github.com/danskernesdigitalebibliotek/dpl-docs/actions/workflows/build-publish.yml) | ||
with the workflow_dispatch event trigger. | ||
|
||
Customizations (colors, font, social links) and general site configuration can | ||
be configured in | ||
[mkdocs.yml](https://github.com/danskernesdigitalebibliotek/dpl-docs/blob/main/mkdocs.yml) | ||
|
||
### Requirements | ||
|
||
- [mkdocs | ||
material](https://squidfunk.github.io/mkdocs-material/getting-started/) | ||
- [multirepo-plugin](https://github.com/jdoiro3/mkdocs-multirepo-plugin) | ||
|
||
### Docker compose setup | ||
|
||
For those not able or wanting to install Python packages on their | ||
machine, there's a rudimentary `docker-compose.yml` file that'll bring | ||
up a container running `mkdocs serve` on the usual HTTP port. | ||
- [Documentation Site](documentation-site) | ||
How to add documentation to this site. | ||
- [DPL CMS release process](release-process) | ||
The steps needed to create a new release of the library sites. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# Documentation Site | ||
|
||
This project exists to consolidate and standardize documentation across DPL | ||
(Danish Public Libraries) repositories. It's based on [mkdocs | ||
material](https://squidfunk.github.io/mkdocs-material/) and uses a handy | ||
[multirepo-plugin](https://github.com/jdoiro3/mkdocs-multirepo-plugin) to import | ||
markdown and build documentation from other DPL repositories dynamically. | ||
|
||
## Adding documentation | ||
|
||
### General documentation | ||
|
||
Documentation that isn't specific to any particular repository should | ||
be placed in this [general | ||
section](https://github.com/danskernesdigitalebibliotek/dpl-docs/tree/main/docs/General/). | ||
|
||
### External documentation | ||
|
||
Any repository you want to add to the documentation site, must have a `docs/` | ||
folder in the project root on github and relevant markdown must be moved inside. | ||
|
||
If you wish to further divide your documentation into subfolders, mkdocs will | ||
accomodate this and build the site navigation accordingly. Here is an example: | ||
|
||
``` shell | ||
docs/ | ||
| README.md # Primary docs/index file for your navigation header | ||
└───folder1 # Left pane navigation category | ||
│ │ file01.md | ||
│ └───subfolder1 # Expandable sub-navigation of folder1 | ||
│ │ file02.md | ||
│ │ file03.md | ||
└───folder2 # Additional left pane navigation category | ||
│ file04.md | ||
``` | ||
|
||
The `docs/` folder is self-contained, meaning that any relative links e.g. | ||
`"../../"` linking outside the docs/ directory, should use an absolute URL like: | ||
<https://github.com/danskernesdigitalebibliotek/dpl-docs/blob/main/README.md> | ||
|
||
Otherwise, following the link from the documentation site will cause a 404. | ||
|
||
## Site development | ||
|
||
The documentation project is hosted | ||
[here](https://github.com/danskernesdigitalebibliotek/dpl-docs). | ||
|
||
It uses a Github workflow to build and publish to github pages. Since | ||
documentation can be updated independently from other repos, a cron has been | ||
established to publish the site every 6 hours. While this covers most use cases, | ||
it's also possible to trigger it adhoc through [Github | ||
actions](https://github.com/danskernesdigitalebibliotek/dpl-docs/actions/workflows/build-publish.yml) | ||
with the workflow_dispatch event trigger. | ||
|
||
Customizations (colors, font, social links) and general site configuration can | ||
be configured in | ||
[mkdocs.yml](https://github.com/danskernesdigitalebibliotek/dpl-docs/blob/main/mkdocs.yml) | ||
|
||
### Requirements | ||
|
||
- [mkdocs | ||
material](https://squidfunk.github.io/mkdocs-material/getting-started/) | ||
- [multirepo-plugin](https://github.com/jdoiro3/mkdocs-multirepo-plugin) | ||
|
||
### Docker compose setup | ||
|
||
For those not able or wanting to install Python packages on their | ||
machine, there's a rudimentary `docker-compose.yml` file that'll bring | ||
up a container running `mkdocs serve` on the usual HTTP port. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# 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](https://github.com/danskernesdigitalebibliotek/dpl-design-system) | ||
|
||
1. Create a pull request from the `develop` branch against `main`. | ||
2. Wait for Github Actions to run and turn green. | ||
3. Merge the pull request. | ||
4. [Create a new | ||
release](https://github.com/danskernesdigitalebibliotek/dpl-design-system/releases/new) | ||
1. Enter the release version as "Choose a tag", and select to | ||
create it on publish. | ||
2. Select `main` as target. | ||
3. Click "Generate release notes" to automatically fill out title | ||
and description. | ||
4. 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](https://danskernesdigitalebibliotek.github.io/dpl-docs/DPL-React/#requirements). | ||
|
||
In https://github.com/danskernesdigitalebibliotek/dpl-react: | ||
|
||
1. Create a new branch locally from `develop` (remember to `git pull` first). | ||
2. Ensure you're using the right version of `node`. You can use `nvm | ||
use` for this. | ||
3. 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](https://github.com/danskernesdigitalebibliotek/dpl-design-system/pkgs/npm/dpl-design-system) | ||
NOTE: You need to be certified for this. | ||
4. Commit and push the changes. | ||
5. Create a pull request from your branch against `develop`. | ||
6. Wait for actions to turn green. | ||
7. Merge the pull request. | ||
|
||
## [DPL React](https://github.com/danskernesdigitalebibliotek/dpl-react) | ||
|
||
1. Create a pull request from the `develop` against `main`. | ||
2. Wait for actions to go green. | ||
3. Merge pull request. | ||
4. [Create a new | ||
release](https://github.com/danskernesdigitalebibliotek/dpl-react/releases/new) | ||
in the same way as with the Design system. | ||
|
||
## [DPL CMS](https://github.com/danskernesdigitalebibliotek/dpl-cms) | ||
|
||
1. Create a new branch locally from `develop` (remember to `git pull` first). | ||
2. Merge `main` into your branch. | ||
3. Update the version of the Design System used: `RELEASE=[version] | ||
VERSION=[version] task dev:composer:update-design-system`. Refer to | ||
`task dev:composer:update-design-system --summary` if needed. | ||
4. Update the version of React components used: `RELEASE=[version] | ||
VERSION=[version] task dev:composer:update-react` | ||
5. Commit, push your branch and create a pull request against `develop`. | ||
6. Wait for actions to go green. | ||
7. Merge your pull request. | ||
8. Create a new pull request from `develop` against `main`. | ||
9. Wait for actions to go green. | ||
10. Merge your pull request. | ||
11. [Create a new | ||
release](https://github.com/danskernesdigitalebibliotek/dpl-cms/releases/new) | ||
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](../../DPL-Platform/runbooks/how-release-a-new-version-for-approval-testing/). | ||
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](https://reload.atlassian.net/jira/software/c/projects/DDFHER/boards/497) | ||
and | ||
[Brahma](https://reload.atlassian.net/jira/software/c/projects/DDFBRA/boards/498) | ||
projecs in Jira (this obviously requires Jira access). | ||
|
||
1. Rename the `upcoming` release to the released version. | ||
2. Mark the release as released. | ||
3. Create a new unrelased `upcoming` release if it doesn't happen automatically. | ||
4. When the release has been [deployed to | ||
staging](#deployment-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](https://reload.zulipchat.com/#narrow/channel/419623-DDF.2B/topic/Release.202024.2E46.2E0/near/482035323) | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With this info in mind I suggest reverting
docs/General/documentation-site.md
todocs/README.md
. Having this documented withindocs/General
seems to defeat the purpose of the instructions.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eh, why? The purpose of the instructions is to tell anyone interested in adding to the documentation how to do it. Why should this be the very first thing people see when visiting? I'd hope that most visitors is visiting to read documentation, not just looking for how to add to it.