frostfs-node/docs/release-instruction.md
Stanislav Bogatyrev 930b51b57d [#1578] Minor Makefile fixes
- Add VERSION file to make it work without .git folder
- Remove obsolete GO111MODULE flag
- Move linter version to variable
- clean .cache on `make clean`
- Move help target to a separate help.mk file

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2022-07-06 10:00:19 +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).