mithril-vndb/docs/releasing.md
2022-04-27 21:01:09 +02:00

66 lines
No EOL
2.5 KiB
Markdown

<!--meta-description
Describes how we do releases of Mithril.js
-->
# Mithril.js Release Processes
Mithril's release process is automated by [pr-release]. pr-release is maintained by a long time mithril.js community member [@JAForbes](https://github.com/JAForbes).
pr-release handles the following:
- Generating changelog entries
- Automating the semver version
- Publishing releases and pre-releases to npm
- Creating github releases
- Rollbacks
## For contributors
Contributors should create their feature branch targetting the default branch `next`. When this branch is merged `pr-release` will either generate or update a release PR from `next` to `main`.
The description and title will be managed by [pr-release], including the semver version.
Contributors who have permissions should add the correct semver label to their PR (`major` | `minor` | `patch`). If no label is set, `patch` is assumed.
If you do not have permissions, the maintainer will set the label on your behalf.
## Changelog
There are two changelogs in the mithril project
- `docs/changelog.md` a hand written curated reflection of changes to the codebase
- `docs/release.md` an automatically prepended log of changes, managed by pr-release
In future we may collapse these into a single file, the separation is due to the fact the `changelog.md` predates the `release.md` file.
## For maintainers
Whenever a new feature branch is opened, a reviewing maintainer should add the correct semver label to their PR (`major` | `minor` | `patch`). If no label is set, `patch` is assumed.
If a `major` or `minor` feature branch is merge, but no labels were set, you can go back and apply the labels and then re-run the `pr` workflow in github actions, this will recalculate the semver version.
## Updating mithril.js.org
Fixes to documentation can land whenever, updates to the site are built and published via `scripts/update-docs.js`.
```bash
# These steps assume that MithrilJS/mithril.js is a git remote named "mithriljs"
# Ensure your next branch is up to date
$ git checkout next
$ git pull mithriljs next
# Splat the docs folder from next onto master
$ git checkout master
$ git checkout next -- ./docs
# Manually ensure that no new feature docs were added
$ node scripts/update-docs
```
After the docs build completes, the updated docs should appear on https://mithril.js.org in a few minutes.
**Note:** When updating the stable version with a release candidate out, ***make sure to update the index + navigation to point to the new stable version!!!***
[pr-release]: https://pr-release.org/