diff --git a/docs/release-instruction.md b/docs/release-instruction.md new file mode 100644 index 00000000..d6d13e57 --- /dev/null +++ b/docs/release-instruction.md @@ -0,0 +1,41 @@ +# Release instructions + +## Pre-release checks + +These should run successfully: +* `go test ./...`; +* `golangci-lint run ./...`; +* `go fmt ./...` (should not change any files); +* `go mog tidy` (should not change any files); +* `./prepare.sh /path/to/neofs-api/on/your/machine` (should not change any files). + +## Writing changelog + +Add an entry to the `CHANGELOG.md` following the style established there. Add an +optional codename(for not patch releases), 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, new features and +other changes. + +Open Pull Request (must receive at least one approval) and merge this changes. + +## Tag a 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. + +Update your local `master` branch after approved and merged `CHANGELOG.md` changes. +Tag a release (must be signed) and push it: + +``` +$ git tag -s vX.Y.Z[-rc.N] && git push origin vX.Y.Z[-rc.N] +``` + +## Make a Github release + +Using Github's web interface create a new release based on just created tag +with the same changes from changelog and publish it. + +## Close github milestone + +Close corresponding vX.Y.Z github milestone.