2020-11-16 14:03:16 +00:00
|
|
|
# Release instructions
|
|
|
|
|
|
|
|
## Pre-release checks
|
|
|
|
|
|
|
|
These should run successfully:
|
2021-08-31 13:14:04 +00:00
|
|
|
* `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).
|
2020-11-16 14:03:16 +00:00
|
|
|
|
|
|
|
## Writing changelog
|
|
|
|
|
2022-07-22 14:04:37 +00:00
|
|
|
Add an entry to the `CHANGELOG.md` following the style established there. Add an
|
2020-11-16 14:03:16 +00:00
|
|
|
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
|
2021-08-31 13:14:04 +00:00
|
|
|
and changes. Describe each change in detail with a reference to GitHub issues if
|
2022-07-22 14:04:37 +00:00
|
|
|
possible.
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2022-07-22 14:04:37 +00:00
|
|
|
Update the supported version of neofs-contract in `README.md` if there were
|
2022-04-21 11:28:05 +00:00
|
|
|
changes in releases.
|
2021-06-03 16:39:27 +00:00
|
|
|
|
2020-11-16 14:03:16 +00:00
|
|
|
## Tag the release
|
|
|
|
|
|
|
|
Use `vX.Y.Z` tag for releases and `vX.Y.Z-rc.N` for release candidates
|
2021-07-09 11:49:26 +00:00
|
|
|
following the [semantic versioning](https://semver.org/) standard. Tag must be
|
|
|
|
created from the latest commit of the master branch.
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2022-07-05 13:56:30 +00:00
|
|
|
## Update VERSION files
|
|
|
|
|
|
|
|
Make sure the VERSION file contains correct release version. It must be the tag
|
|
|
|
you have just created.
|
|
|
|
|
2021-08-31 13:14:04 +00:00
|
|
|
## Push changes and release tag to GitHub
|
2020-11-16 14:03:16 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2021-08-31 13:14:04 +00:00
|
|
|
## Prepare and push images to a Docker Hub
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2021-08-31 13:14:04 +00:00
|
|
|
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)
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2021-09-14 09:07:34 +00:00
|
|
|
$ make images
|
2021-08-31 13:14:04 +00:00
|
|
|
$ 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
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2021-08-31 13:14:04 +00:00
|
|
|
## Make a proper GitHub release
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2021-08-31 13:14:04 +00:00
|
|
|
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.
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2021-08-31 13:14:04 +00:00
|
|
|
## Close GitHub milestone
|
2020-11-16 14:03:16 +00:00
|
|
|
|
2021-08-31 13:14:04 +00:00
|
|
|
Close corresponding vX.Y.Z GitHub milestone.
|
2020-11-16 14:03:16 +00:00
|
|
|
|
|
|
|
## Post-release
|
|
|
|
|
2022-07-22 14:04:37 +00:00
|
|
|
Prepare pull-request for
|
2021-02-15 07:36:42 +00:00
|
|
|
[neofs-devenv](https://github.com/nspcc-dev/neofs-devenv).
|
|
|
|
|
2022-04-21 11:28:05 +00:00
|
|
|
Rebuild NeoFS LOCODE database via CLI `util locode generate` command (if needed).
|