Skip to content

Commit 46053ca

Browse files
committed
Add SOP on how to create a new release (#404)
1 parent ee041ee commit 46053ca

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

scripts/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Creating a release
2+
3+
SOP to create a new release in smtml.
4+
5+
## Semi-automatically
6+
7+
1. Trigger the [Release PR workflow].
8+
2. Approve the PR and merge changes to **main**.
9+
3. Locally, pull the changes and tag the latest commit with `v[VERSION]`, where `VERSION` is the version created by the workflow.
10+
4. Push the tag.
11+
4. Re-run the latest [opam-repository CI] to automatically publish the package.
12+
5. Track the created PR in the opam-repository to check for CI errors or comments from maintainers.
13+
14+
**Note**: There is a cron job in GitHub that is set to run the [Release PR workflow] every monday at 9AM.
15+
16+
[Release PR workflow]: https://github.com/formalsec/smtml/actions/workflows/release.yml
17+
[opam-repository CI]: https://github.com/formalsec/smtml/actions/workflows/publish.yml
18+
19+
## Manually
20+
21+
```sh
22+
# 1. Run the create-release.sh script:
23+
# a. If no version is specified, the create-release.sh script simply bumps the current version.
24+
./create-release.sh
25+
# b. If specified, it will use the provided tag instead. Example:
26+
# ./create-release.sh 0.18.0
27+
28+
# 2. Approve the created PR and merge it to main.
29+
30+
# 3. Update the main branch:
31+
git switch main
32+
git fetch --all
33+
git rebase
34+
35+
# 4. Create the tag:
36+
git tag -a vVERSION # Where VERSION is the desired version
37+
git push -u origin vVERSION
38+
39+
# 5. Publish new version to the opam-repository:
40+
./publish.sh
41+
```

0 commit comments

Comments
 (0)