Skip to content

Commit bcbd537

Browse files
committed
add docs around the release process
1 parent f82373b commit bcbd537

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

docs/maintainer-guide.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
11
# Maintainer Guide 🧑‍🔬
22

3-
todo
3+
This document is intended for maintainers of the project. It describes the process of maintaining the project, including how to release new versions.
4+
5+
## Release Process 🏷️
6+
7+
Here is a very high level flow of how we go from idea to release:
8+
9+
1. User XYZ wants to add feature ABC to the project
10+
2. The user likely opens an issue
11+
3. Either the user or a maintainer creates a pull request with the feature
12+
4. The pull request is reviewed by a maintainer - CI passing, etc
13+
5. The pull request is merged
14+
6. A new tag is pushed to the repository
15+
7. A pre-release is created on GitHub. Maintainers can test this pre-release and so can users.
16+
8. The pre-release looks good, so the maintainer(s) flip the release to a full release (aka latest)
17+
9. The [`update-latest-release-tag`](../.github/workflows/update-latest-release-tag.yml) workflow is run to sync major release tags with the latest release tag
18+
19+
### Creating a Release
20+
21+
> This project uses semantic versioning
22+
23+
Creating a release is a rather straight forward process.
24+
25+
Simply run the following script and follow the prompts to create, and push a new release tag:
26+
27+
```bash
28+
script/release
29+
```
30+
31+
Now that the new release is published you can set it as a pre-release to test it out, or set it as the latest release.
32+
33+
Once a tag is set to the latest release, we need to update the major release tags to point to the latest release tag.
34+
35+
_What does that mean?_... Here is an example! Let's say we just pushed a new release with the tag `v1.2.3` and we want our "major" release tag `v1` to point to this new release. We would run the [`update-latest-release-tag`](../.github/workflows/update-latest-release-tag.yml) workflow to accomplish this. The workflow has a few inputs with descriptions that will help you along with this process.
36+
37+
The reason that we update release tags to point to major releases is for the convenience of users. If a user wants to use the latest version of this Action, all they need to do is simply point to the latest major release tag. If they point at `v1` then they will pick up **all** changes made to `v1.x.x` without having to update their workflows. When/if a `v2` tag rolls out, then they will need to update their workflows (example).

0 commit comments

Comments
 (0)