Skip to content

Commit 372f810

Browse files
authored
docs: add release process (#343)
1 parent 7139721 commit 372f810

File tree

1 file changed

+73
-1
lines changed

1 file changed

+73
-1
lines changed

CONTRIBUTING.md

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,78 @@ pull request reviewed, the reviewer(s) may ask you to complete additional
2727
work, tests, or other changes before your pull request can be ultimately
2828
accepted.
2929

30+
## 🦦 Releasing
31+
32+
1. Go to the **main** branch and ensure it is up to date with the remote:
33+
34+
```bash
35+
git checkout main
36+
git pull
37+
```
38+
39+
2. Run the script that will generate the CHANGELOG for you:
40+
41+
```bash
42+
sh tool/release_ready.sh <new-version>
43+
```
44+
45+
**Note 💡** : You should follow semantic versioning and bump according to the changes the new version makes.
46+
47+
`<new-version>`: The version of this new extension release, for example: 0.2.1
48+
49+
The release_ready script will:
50+
51+
- Create a new branch just for this release and checkout to it.
52+
- Automatically update the CHANGELOG file with the associated changes.
53+
54+
3. Manually remove the *(deps-dev)* scope or other entries of the conventional commits entries in the CHANGELOG
55+
4. Add the changes and commit with the commit message that the *release_ready* script outputted.
56+
5. Raise a Pull Request, the title should be the same as the commit message outputted by the *release_ready* script.
57+
6. When the Pull Request is merged, tag a new release to the commit. When adding the tag ensure:
58+
- The tag is pointing to the commit that you recently merged.
59+
- The title of the tag should be v<new-version>
60+
- The title of the release should be v<new-version>
61+
- The description should be a raw copy of the CHANGELOG’s file version’s body you recently crafted (without the version header). If in doubt, see the other released tags as an example.
62+
7. After the release is tagged the new changes will be available by the the following syntax:
63+
64+
```yaml
65+
VeryGoodOpenSource/..@v<new-version>
66+
```
67+
68+
Where:
69+
70+
- `<new-version>`: The version of this new workflow or action, for example: 0.2.1
71+
8. Go to the **main** branch and ensure it is up to date with the remote:
72+
73+
```yaml
74+
git checkout main
75+
git pull
76+
```
77+
78+
9. Retag the major release.
79+
80+
For the Workflow or Action to be updated for those users using the `@<major-version` syntax we will require to retag the major release.
81+
82+
```yaml
83+
sh tool/retag_v<major-version>.sh <new-version>
84+
```
85+
86+
Where:
87+
88+
- `<major-version>`: Is the major version of the release, for example in 2.16.3 the major version is 2. For more information see the [semantic versioning documentation](https://semver.org/).
89+
- `<new-version>`: The version of this new workflow or action, for example: 0.2.1.
90+
91+
92+
If your change is a breaking change and requires a new major release you should update the name of the retag script and its `v<major-version>` instances.
93+
94+
10. After the retag the new changes will be available by the the following syntax:
95+
96+
```yaml
97+
VeryGoodOpenSource/..@v<major-version>
98+
```
99+
100+
Where: `<major-version>`: Is the major version of the release, for example in 2.16.3 the major version is 2. For more information see the [semantic versioning documentation](https://semver.org/).
101+
30102
[conventional_commits_link]: https://www.conventionalcommits.org/en/v1.0.0
31103
[bug_report_link]: https://github.com/VeryGoodOpenSource/very_good_workflows/issues/new?assignees=&labels=bug&template=bug_report.md&title=fix%3A+
32-
[very_good_ventures_link]: https://verygood.ventures
104+
[very_good_ventures_link]: https://verygood.ventures

0 commit comments

Comments
 (0)