frostfs-node/docs/release-instruction.md
Evgenii Stratonikov 10c855efef [] go.mod: Update dependencies
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-07-25 16:56:02 +03:00

2.4 KiB

Release instructions

Pre-release checks

These should run successfully:

  • make all;
  • make test;
  • make lint (should not change any files);
  • make fmts (should not change any files);
  • go mod tidy (should not change any files);
  • integration tests in neofs-devenv.

Writing changelog

Add an entry to the CHANGELOG.md following the style established there. Add an optional codename, version and release date in the heading. Write a paragraph describing the most significant changes done in this release. Add Fixed, Added, Removed and Updated sections with fixed bug descriptions and changes. Describe each change in detail with a reference to GitHub issues if possible.

Update the supported version of neofs-contract in README.md if there were changes in releases.

Tag the release

Use vX.Y.Z tag for releases and vX.Y.Z-rc.N for release candidates following the semantic versioning standard. Tag must be created from the latest commit of the master branch.

Update VERSION files

Make sure the VERSION file contains correct release version. It must be the tag you have just created.

Push changes and release tag to GitHub

This step should bypass the default PR mechanism to get a correct result (so that releasing requires admin privileges for the project), both the master branch update and tag must be pushed simultaneously like this:

$ git push origin master v0.12.0

Prepare and push images to a Docker Hub

Create images for neofs-storage, neofs-ir and neofs-cli, neofs-adm applications and push them into Docker Hub (so that releasing requires privileges in nspccdev organization in Docker Hub)

$ make images
$ docker push nspccdev/neofs-storage:0.24.0
$ docker push nspccdev/neofs-storage-testnet:0.24.0
$ docker push nspccdev/neofs-ir:0.24.0
$ docker push nspccdev/neofs-cli:0.24.0
$ docker push nspccdev/neofs-adm:0.24.0

Make a proper GitHub release

Edit an automatically-created release on GitHub, copy things from changelog. Build and tar release binaries with make prepare-release, attach them to the release. Publish the release.

Close GitHub milestone

Close corresponding vX.Y.Z GitHub milestone.

Post-release

Prepare pull-request for neofs-devenv.

Rebuild NeoFS LOCODE database via CLI util locode generate command (if needed).