terminator/RELEASE.md
2021-01-04 07:25:20 +01:00

90 lines
2.1 KiB
Markdown

Releasing Terminator
====================
Make sure you have the latest master branch, no un-committed changes, and are ready to release that state.
```
VERSION=1.92
```
## Set version in Python
```
sed -i "s/APP_VERSION =.*/APP_VERSION = '${VERSION}'/" terminatorlib/version.py
sed -i -e "s/@@VERSION@@/${VERSION}/" terminatorlib/preferences.glade
```
## Generate the changelog
For the changelog we are using [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator)
```
github_changelog_generator --future-release "v$VERSION"
# Fix CHANGELOG CRLF
dos2unix CHANGELOG.md
```
Check and review CHANGELOG.md for the expected result.
## Review and update translations
Check for open pull-requests by Transifex or pull the files manually.
See [TRANSLATION](TRANSLATION.md).
## Update AUTHORS
This will make sure we mention everyone that has contributed to Terminator.
```
git log --use-mailmap | grep ^Author: | cut -f2- -d' ' | grep -v ^Launchpad | sort | uniq | sed 's/^/* /' | cat .authors.header - .authors.footer > AUTHORS
```
Make sure to review the list, and update `.mailmap` when it is necessary.
## Git Tag
Commit these changes to the "master" branch:
```
git add terminatorlib/version.py CHANGELOG.md RELEASE.md
git commit -v -m "Release version $VERSION"
git push origin master
```
And tag it with a signed tag:
```
git tag -s -m "Version $VERSION" v$VERSION
```
Push the tag.
```
git push --tags
```
## Signed artifacts
To provide a signed tarball for distributions we use sdist and gpg:
```
VERSION=$(git describe --tags | sed s/^v//)
GPGKEY=$(git config --get user.email)
mkdir -p dist
git archive HEAD --prefix terminator-${VERSION}/ -o dist/terminator-${VERSION}.tar.gz
gpg -u ${GPGKEY} --armor \
--output dist/terminator-${VERSION}.tar.gz.asc \
--detach-sig dist/terminator-${VERSION}.tar.gz
```
## GitHub Release
Now update the tag to a release on GitHub, and add the artifacts:
https://github.com/gnome-terminator/terminator/releases
Make sure to add the proper section from CHANGELOG.md as description to the release.