66 lines
No EOL
2.5 KiB
Markdown
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/ |