Skip to content

Commit 7ff0c49

Browse files
docs: add release process (#420)
Co-authored-by: Marcos Sevilla <31174242+marcossevilla@users.noreply.github.com>
1 parent c23f214 commit 7ff0c49

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

CONTRIBUTING.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
## 🦦 Releasing
2+
3+
1. Go to the **main** branch and ensure it is up to date with the remote:
4+
5+
```bash
6+
git checkout main
7+
git pull
8+
```
9+
10+
2. Run the script that will generate the CHANGELOG for you:
11+
12+
```bash
13+
sh tool/release_ready.sh <new-version>
14+
```
15+
16+
**Note 💡** : You should follow semantic versioning and bump according to the changes the new version makes.
17+
18+
`<new-version>`: The version of this new extension release, for example: 0.2.1
19+
20+
The release_ready script will:
21+
22+
- Create a new branch just for this release and checkout to it.
23+
- Automatically update the CHANGELOG file with the associated changes.
24+
25+
3. Manually remove the *(deps-dev)* scope or other entries of the conventional commits entries in the CHANGELOG
26+
4. Add the changes and commit with the commit message that the *release_ready* script outputted.
27+
5. Raise a Pull Request, the title should be the same as the commit message outputted by the *release_ready* script.
28+
6. When the Pull Request is merged, tag a new release to the commit. When adding the tag ensure:
29+
- The tag is pointing to the commit that you recently merged.
30+
- The title of the tag should be v<new-version>
31+
- The title of the release should be v<new-version>
32+
- 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.
33+
7. After the release is tagged the new changes will be available by the the following syntax:
34+
35+
```yaml
36+
VeryGoodOpenSource/..@v<new-version>
37+
```
38+
39+
Where:
40+
41+
- `<new-version>`: The version of this new workflow or action, for example: 0.2.1
42+
8. Go to the **main** branch and ensure it is up to date with the remote:
43+
44+
```yaml
45+
git checkout main
46+
git pull
47+
```
48+
49+
9. Retag the major release.
50+
51+
For the Workflow or Action to be updated for those users using the `@<major-version` syntax we will require to retag the major release.
52+
53+
```yaml
54+
sh tool/retag_v<major-version>.sh <new-version>
55+
```
56+
57+
Where:
58+
59+
- `<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/).
60+
- `<new-version>`: The version of this new workflow or action, for example: 0.2.1.
61+
62+
63+
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.
64+
65+
10. After the retag the new changes will be available by the the following syntax:
66+
67+
```yaml
68+
VeryGoodOpenSource/..@v<major-version>
69+
```
70+
71+
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/).

0 commit comments

Comments
 (0)