forked from TrueCloudLab/frostfs-node
930b51b57d
- 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>
72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
# 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](https://github.com/nspcc-dev/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](https://semver.org/) 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](https://github.com/nspcc-dev/neofs-devenv).
|
|
|
|
Rebuild NeoFS LOCODE database via CLI `util locode generate` command (if needed).
|