This document contains the static website sources for gopass and instructions for contributors on how to create new releases.
- Preparation (install goreleaser, clone repos)
- Update CHANGELOG.md/VERSION
- Commit/Tag - DO NOT PUSH YET
- Test build (
goreleaser --skip-publish) - Push git changes
- Final build (
goreleaser) - Update and deploy website
# Install our modified version of goreleaser
go get -u github.com/goreleaser/goreleaser
cd $GOPATH/src/github.com/goreleaser/goreleaser
git remote add gopass git@github.com:gopasspw/goreleaser.git
git fetch gopass
git checkout gopass
git pull gopass gopass
go installThis is the regular release process.
We develop new feature and fixes in feature branches (usually called feature/some-fancy-feature
for features or fix/issue-XYZ where XYZ matches the number of an existing issue)
IN YOUR OWN FORK OF THE REPO. Please DO NOT push any branches to the main gopass
repo except release-X.Y branches.
cd $GOPATH/src/github.com/gopasspw/gopass
go build && make tests && make test-integration
# update CHANGELOG.md and VERSION in ONE COMMIT
git commit -am'Tag X.Y.Z+1'
git tag -s v1.X.Y
make completion
goreleaser --skip-publish
git push origin v1.X.Y
GITHUB_TOKEN=XXX goreleaser
# add `--prerelease` for any RC / pre-release
# update gopass websiteAfterwards you should update the release description on GitHub to match the current CHANGELOG entry. Go to https://github.com/gopasspw/gopass/releases/tag/v1.X.Y edit it.
If we need to release a patch release and can't base this upon master because there have been changes which should not be included in the patch release (e.g. new features) we need to summon a new release branch from a past release tag. Then we'd cherry-pick or port the required fixes to this branch and create a release from there.
General rule for cherry-picking:
- Keep the changes small and self contained
- Squashed commits per Feature help very much (one commit per fix/feature)
- Keep the order
git checkout vX.Y.Z
git checkout -b release-X.Y
git cherry-pick ABC
git cherry-pick DEF
git cherry-pick FFF
go build && make tests && make test-integration
# update CHANGELOG.md and VERSION in ONE COMMIT
git commit -am'Tag X.Y.Z+1'
git tag -s vX.Y.Z+1
goreleaser --skip-publish
git push origin vX.Y.Z+1
GITHUB_TOKEN=abc... goreleaser
git push origin release-X.Y
# update gopass website
Afterwards you should update the release description on GitHub to match the current CHANGELOG entry. Go to https://github.com/gopasspw/gopass/releases/tag/v1.X.Y edit it.
- Go to
/themes/gopass, - install dependencies via
npm install - run
gulp watchto develop locally (with auto-reload) - start a server via
make dev(hugo serve -b localhost:1313) (in the root dir)