7.7 KiB
Release Process
- Update translations translation-process.md.
- Update data stores data-stores.md.
- Update bitcoinj checkpoint bitcoinj-checkpoint.
- Write release notes (see below).
- Webpage (Prepare PR)
-
Update version number in:
-
Update currency list in market_currency_selector.html (use MarketsPrintTool to create HTML content).
-
Bisq maintainers, suggestion for writing release notes
To be able to create release notes before you make the final release tag, you can temporarily create a local tag and remove it afterwards again.
git tag v(new version, e.g. 0.9.4) #create tag
git tag -d v(new version, e.g. 0.9.4) #delete tag
Write release notes. git shortlog helps a lot, for example:
git shortlog --no-merges v(current version, e.g. 0.9.3)..v(new version, e.g. 0.9.4)
Generate list of authors:
git log --format='- %aN' v(current version, e.g. 0.9.3)..v(new version, e.g. 0.9.4) | sort -fiu
- Prepare the release notes with major changes from user perspective.
- Prepare a short version of the release notes for the in-app update popup
Basic preparations
For releasing a new Bisq version you'll need Linux, Windows and macOS. You can use a virtualization solution like VirtualBox for this purpose.
VirtualBox recommended configuration
Although performance of VMs might vary based on your hardware configuration following setup works pretty well on macOS.
Use VirtualBox > 6.1 with following configuration:
- System > Motherboard > Base Memory: 2048 MB
- System > Processor > Processor(s): 2 CPUs
- System > Processor > Execution Cap: 90%
- Display > Screen > Video Memory: 128 MB
- Display > Screen > Scale Factor: 200%
- Display > Screen > HiDPI Support: Use unscaled HiDPI Output (checked)
- Display > Screen > Acceleration: Enable 3D acceleration (checked)
Windows VM
- Windows 10 64bit
- Recommended virtual disk size: 55 GB
Linux VM
- Ubuntu 16.04.4 64bit
- Recommended virtual disk size: 25 GB
macOS VM
- macOS X 10.11 (El Capitan) 64bit
- Recommended virtual disk size: 40 GB
For every OS
- Install latest security updates
For Windows
- Update AntiVirus Software and virus definitions
- Install unicode version of Inno Tools
- Run full AV system scan
Build release
macOS
- Make sure all version numbers are updated (update version variables and run replace_version_number.sh).
- Set environment variable e.g. export BISQ_GPG_USER=manfred@bitsquare.io to ~/.profile file or the like... (one time effort)
- Update vmPath variable if necessary
- Run create_app.sh
Build output expected in deploy directory (opened after successful build process):
Bisq-${NEW_VERSION}.dmg
macOS signed installerBisq-${NEW_VERSION}.jar
Deterministic fat jarBisq-${NEW_VERSION}.jar.txt
sha256 sum of deterministic fat jar
The build script also copies over the deterministic fat jar into the shared folders for the other VMs (Windows & Linux). Before building the other binaries install the generated Bisq app on macOS and verify that everything works as expected.
Linux
- Run
desktop/package/linux/package.sh
from the shared VM folder
Build output expected:
Bisq-${NEW_VERSION}.deb
package for distributions that derive from DebianBisq-${NEW_VERSION}.rpm
package for distributions that derive from Redhat based distros
- Install and run generated package
Windows
- Run
desktop/package/windows/package.bat
from the shared VM folder
Build output expected:
Bisq-${NEW_VERSION}.exe
Windows unsigned installerBisq-${NEW_VERSION}.exe.txt
sha256 sum of installer
Sign release on macOS
- Run finalize.sh
Build output expected:
F379A1C6.asc
Sig key of Manfred Karrer5BC5ED73.asc
Sig key of Chris Beams29CDFD3B.asc
Sig key of Christoph Attenedersigningkey.asc
Fingerprint of key that was used for these buildsBisq-${NEW_VERSION}.jar.txt
Sha256 sum of deterministic fat jarBisq-${NEW_VERSION}.dmg
macOS installerBisq-${NEW_VERSION}.dmg.asc
Signature for macOS installerBisq-${NEW_VERSION}.deb
Debian packageBisq-${NEW_VERSION}.deb.asc
Signature for Debian packageBisq-${NEW_VERSION}.rpm
Redhat based distro packageBisq-${NEW_VERSION}.rpm.asc
Signature for Redhat based distro packageBisq-${NEW_VERSION}.exe
Windows installerBisq-${NEW_VERSION}.exe.asc
Signature for Windows installer
- Run a AV scan over all files on the Windows VM where the files got copied over.
Final test
- Make at least one mainnet test trade with some exotic currency to not interfere with real traders.
Tag and push release to master
If all was successful:
- commit changes of new version number (update version number for release of e.g. v1.5.0)
- create tag for the release
git tag -s v(new version, e.g. 1.5.0) -m"Release v(new version, e.g. 1.5.0)"
- Revert back to SNAPSHOT where necessary (change version variable (e.g. 1.5.0) in shell script insert_snapshot_version.sh and run it) and commit these changes.
- Push all commits to master including the new tag
git push --tags origin master
GitHub
Upload preparations
- Check the fingerprint of the pgp key which was used for signing in signingkey.asc (e.g. 29CDFD3B for Christoph Atteneder)
- Add all files including signingkey.asc and the gpg pub keys to GitHub release page
- Check all uploaded files with virustotal.com
- Select the release tag as the source for the GitHub release.
- Release on GitHub
Post GitHub release
- Apply “A newer version is already available! Please don’t use this version anymore.” to old GitHub releases.
- Merge the webpage PR and check if they got deployed properly.
- Start the Alert sender app (CMD + M) remove the old version and send the update message. Check the checkbox for update, set the version number (e.g. 0.9.4) and add the short version of the release notes.
- After sending the Update message leave it running for about 1 minute to give time for good propagation.
- Make a backup of that alert sender app data directory
- To support source code signature verification for Arch Linux download
Source code (tar.gz)
, sign it and upload signature.
# sign source code bundle
gpg --digest-algo SHA256 --local-user $BISQ_GPG_USER --output bisq-${NEW_VERSION}.tar.gz.asc --detach-sig --armor bisq-${NEW_VERSION}.tar.gz
# verify signature of source code bundle
gpg --digest-algo SHA256 --verify bisq-${NEW_VERSION}.tar.gz{.asc*,}
Announce the release
- Forum
- Keybase (#general channel)
- Optionally reddit /r/Bisq
- Notify @freimair so that he can start updating the Arch User Repository
- Celebrate