Public Release Procedure for Projects

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Procedure

Run release Locally

The procedure will:

  • increment the version string appropriately
  • run tests to make sure that increase in version number does not break functionality
  • commit changes
  • optionally tag using a tag name convention that uses the release name (snapshot releases are not tagged).
  • push
  • build the installable release artifact, if the project renders itself to that. This will be referred to as "the binary", and it shall be used as "release binary" at the next step.

At the end of the procedure, the Git tag used to tag the release will be displayed, so it can be used at the next step.

Procedure

release info
current version: 1.0.3-SNAPSHOT-4

release patch
releasing 1.0.3, is this OK? [y/n] y

...
[INFO] BUILD SUCCESS
...

git add ok
...
git commit ok
git tag ok, tagged with release-1.0.3
...
git push ok

...
[INFO] BUILD SUCCESS
...

no 'release_repository' defined in ./bin/operations.conf, the binary release available as ./bin/../target/gld-1.0.3.zip ...
setting next local version 1.0.4-SNAPSHOT-1, is this OK? [y/n] y

RELEASE SUMMARY:

A new patch version (1.0.3) was released, committed to repository and tagged.
If you want to create an official GitHub release, use tag "release-1.0.3" and binary gld-1.0.3.zip.
The local version has been incremented to 1.0.4-SNAPSHOT-1.

Make a GitHub Release

If the project requires a public "binary" release, go to GitHub project page -> Releases.

The tag should already by there.

Draft a new release

Copy and paste the release tag from the local release procedure output.

Tag: release-1.0.3

The logic should recognize it as "Existing tag"

Release title: 1.0.3

Describe the release: Introduced features, bug fixes. This will be part of the release history. Projects maintain notes to be consolidated into the release announcement in ./doc/release-notes.txt.

Clean ./doc/release-notes.txt and commit.

cat /dev/null > ./doc/release-notes.txt
git add ./doc/release-notes.txt
git commit -m "cleaned ./doc/release-notes.txt post-release"
git push

If is an installable release, attach binaries: "Attach binaries by dropping them or selecting them." If it is a library release, do the same.

Publish release.