The following artifacts are created or updated as a result of pushing changes to the main
branch, and when tagging a new release:
- Go repositories
- npm module
- Java libraries
- GitHub packages: fabric-protos
- Maven central repository: fabric-protos (tagged release only)
The following tasks are required before releasing:
- Update version numbers if required (see below for details)
Creating a GitHub release on the releases page will trigger the build to publish the new release.
When drafting the release, create a new tag for the new version (with a v
prefix), e.g. vX.Y.Z
The CI actions triggered from a tag will set publish_release to 'true' causing downstream artifacts to be published.
See previous releases for examples of the title and description.
Important: make sure you target the correct branch when creating a release (see below for version details)
The following tasks are required after releasing:
- Update version numbers to the next patch release (see below for details)
The Hyperledger Fabric protobufs and generated bindings follow the Go module version numbering system
Important: Current releases are all in the unstable v0.x.x range. A v0 version makes no stability or backward compatibility guarantees.
Use the following version numbers on each branch:
- the
0.1.x
branch is intended for Fabric 2.4 releases and should be versioned asv0.1.x
- the
0.2.x
branch is intended for Fabric 2.5 releases and should be versioned asv0.2.x
- the
main
branch is intended for Fabric 3.0 releases and should be versioned asv0.3.x
The following files need to be modified when updating the version number, and these are checked by the build process to ensure they match a tagged release:
- The
BINDING_VERSION
variable in.github/workflows/ci-checks.yml
- The
version
element inbindings/java/pom.xml
- The
version
property inbindings/node/package.json
(Thebindings/node/package-lock.json
should also be updated with the new version.)
Note: there is no file to update for the Go bindings, since these are versioned by the release tag.