Skip to content

Commit 6e0c9b9

Browse files
committed
add manual release steps
1 parent 3bda0db commit 6e0c9b9

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

RELEASE.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
2+
# Release Guide
3+
4+
This document describes the manual release process for xrpl4j.
5+
6+
## Stable Releases
7+
8+
1. Checkout main and pull in latest changes from remote
9+
```
10+
git checkout main
11+
git pull
12+
```
13+
2. Create a new release branch from main (e.g. `releases/v6.0` for major version release, `releases/v6.1` for minor version release)
14+
```
15+
git checkout -b releases/v6.1
16+
```
17+
18+
3. Set intended release version
19+
```
20+
mvn versions:set -DnewVersion=6.1.0
21+
```
22+
4. Commit and push changes in `pom.xml` files created by step #3.
23+
5. Verify Integration tests that executes on `Devnet` passes in GitHub actions. Integration tests that executes on
24+
`Testnet` might fail as the amendment would generally not be available on `Testnet` yet.
25+
6. Create a new tag for the release and push to remote
26+
```
27+
git tag v6.1.0
28+
git push origin v6.1.0
29+
```
30+
7. Generate and deploy artifacts to [maven central repository](https://central.sonatype.com/) (This would prompt to sign the artifacts using private key)
31+
```
32+
mvn clean deploy -DskipTests -P release
33+
```
34+
8. Approve the release on [maven central repository](https://central.sonatype.com/)
35+
9. Update the version to next patch version, commit and push to remote
36+
```
37+
mvn versions:set -DnewVersion=6.1.1
38+
git commit -m "update version to 6.1.1"
39+
git push
40+
```
41+
10. Generate release notes on GitHub using `v6.1.0` git tag.
42+
11. Subsequent bug fixes if any are merged into `releases/v6.1` branch and released as patch version upgrades
43+
44+
## Release candidates
45+
46+
Steps remains same as stable release. We would follow Semantic Versioning and name the version something like `6.1.
47+
0-rc.1`. In the event when the change we want to release as release candidate is not merged in the `main` branch, we
48+
would release it from feature branch itself and tag the commit of feature branch.

0 commit comments

Comments
 (0)