Skip to content

Commit 70fd056

Browse files
authored
Merge pull request #137 from jt-nti/290-release-process-2.x
[FABCJ-290] Add release guide
2 parents 15c166c + b494824 commit 70fd056

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

RELEASING.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Releasing
2+
3+
The following artifacts are created as a result of releasing Fabric Chaincode Java:
4+
5+
- docker images
6+
- [fabric-javaenv](https://hub.docker.com/r/hyperledger/fabric-javaenv)
7+
- Java libraries
8+
- [fabric-chaincode-shim](https://search.maven.org/search?q=a:fabric-chaincode-shim)
9+
- [fabric-chaincode-protos](https://search.maven.org/search?q=a:fabric-chaincode-protos)
10+
11+
**Note:** A docker image with a matching V.R version is required before releasing a new version of Fabric.
12+
13+
## Before releasing
14+
15+
It's useful to create an issue to keep track of each release, for example [Release v2.1.0](https://jira.hyperledger.org/browse/FABCJ-283).
16+
17+
The following tasks are required before releasing:
18+
19+
- Update version numbers in `build.gradle` files to the required version
20+
- Update test, sample, and docs files to match the new version
21+
- Create a new release notes file
22+
- Update the `CHANGELOG.md` file
23+
24+
The `changelog.sh` script in `scripts` will prepopulate the changelog but you must check and edit the file manually afterwards as required
25+
26+
See the [[FABCJ-289] release: 2.2.0 LTS](https://github.com/hyperledger/fabric-chaincode-java/pull/124) pull request for an example, although be careful to search for all versions in the codebase as they're easy to miss and things change!
27+
28+
## Create release
29+
30+
Creating a GitHub release on the [releases page](https://github.com/hyperledger/fabric-chaincode-java/releases) will trigger the build to publish the new release.
31+
32+
When drafting the release, create a new tag for the new version (with a `v` prefix), e.g. `v2.1.4`
33+
34+
See previous releases for examples of the title and description.
35+
36+
## Publish Java libraries
37+
38+
Log on to the [nexus repository manager](https://oss.sonatype.org/#welcome) to manually publish the JARs which were pushed by the release build.
39+
40+
Find the results of the release build under _Build Promotion > Staging Repositories_ and perform the following steps:
41+
42+
1. Close
43+
44+
You should see a series of close activities (see note)
45+
46+
2. Release using the automatically drop option
47+
48+
You should see a series of release activities (see note)
49+
50+
Note: you may need to refresh to update the activities view.
51+
52+
When the release has completed and the _Staging Repositories_ list is empty, the Java chaincode libraries should appear in the maven repository. They can take some time to appear in the UI but they should exist in the repository sooner.
53+
54+
## After releasing
55+
56+
- Update version numbers in `build.gradle` files to the next version
57+
- Update test, sample, and docs files to match the new version
58+
59+
See the [Bump version to 2.2.1](https://github.com/hyperledger/fabric-chaincode-java/pull/127) pull request for an example. It should include almost all the files changed to prepare for the release, except for the release notes and changelog which do not need updating.

0 commit comments

Comments
 (0)