- 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).
-
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
For releasing a new Bisq version you'll need Linux, Windows and macOS. You can use a virtualization solution like VirtualBox for this purpose.
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: 4096 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 10 64bit
- Recommended virtual disk size: 55 GB
- Ubuntu 16.04.4 64bit
- Recommended virtual disk size: 25 GB
- macOS X 10.11 (El Capitan) 64bit
- Recommended virtual disk size: 40 GB
- Install the latest security updates
- Install/Upgrade to the latest Java 15 SDK
- macOS (brew option):
brew upgrade zulu15
- Ubuntu (brew option):
sudo apt-get install zulu15-jdk
- Windows: Download the latest version from https://www.azul.com/downloads/?version=java-15-mts&os=windows&architecture=x86-64-bit&package=jdk
- macOS (brew option):
- Update AntiVirus Software and virus definitions
- Install WiX toolset
- Run full AV system scan
-
Make sure all version numbers are updated (update version variables and run replace_version_number.sh) .
-
Set environment variables to ~/.profile file or the like... (one time effort)
BISQ_GPG_USER
: e.g. export BISQ_GPG_USER=[email protected]BISQ_SHARED_FOLDER
: shared folder that is used between your VM host and client system
- Run
./gradlew packageInstallers
Build output expected in shared folder:
Bisq-${NEW_VERSION}.dmg
macOS installerdesktop-${NEW_VERSION}-all-mac.jar.SHA-256
sha256 sum of fat jarjar-lib-for-raspberry-pi-${NEW_VERSION}.zip
Jar libraries for Raspberry Pi
- Before building the other binaries install the generated Bisq app on macOS and verify that everything works as expected.
-
Checkout the release tag in your VM
-
Set environment variables to ~/.profile file or the like... (one time effort)
BISQ_SHARED_FOLDER
: shared folder that is used between your VM host and client system
-
Run
./gradlew packageInstallers
Build output expected:
bisq_${NEW_VERSION}-1_amd64.deb
package for distributions that derive from Debianbisq-${NEW_VERSION}-1.x86_64.rpm
package for distributions that derive from Redhat based distrosdesktop-${NEW_VERSION}-all-linux.jar.SHA-256
sha256 sum of fat jar
- Install and run generated package
-
Checkout the release tag in your VM
-
Set environment variables to ~/.profile file or the like... (one time effort)
BISQ_SHARED_FOLDER
: shared folder that is used between your VM host and client system
-
Run
./gradlew packageInstallers
Build output expected:
Bisq-${NEW_VERSION}.exe
Windows installerdesktop-${NEW_VERSION}-all-windows.jar.SHA-256
sha256 sum of fat jar
- Install and run generated package
- Run finalize.sh
Build output expected:
E222AA02.asc
Sig key of Alejandro García4A133008.asc
Sig key of Gabriel Bernardsigningkey.asc
Fingerprint of key that was used for these buildsBisq-${NEW_VERSION}.dmg
macOS installerBisq-${NEW_VERSION}.dmg.asc
Signature for macOS installerBisq-64bit-${NEW_VERSION}.deb
Debian packageBisq-64bit-${NEW_VERSION}.deb.asc
Signature for Debian packageBisq-64bit-${NEW_VERSION}.rpm
Redhat based distro packageBisq-64bit-${NEW_VERSION}.rpm.asc
Signature for Redhat based distro packageBisq-64bit-${NEW_VERSION}.exe
Windows installerBisq-64bit-${NEW_VERSION}.exe.asc
Signature for Windows installer
- Run an AV scan over all files on the Windows VM where the files got copied over.
- Make at least one Mainnet test trade with some exotic currency to not interfere with real traders.
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
-
Check the fingerprint of the pgp key which was used for signing in signingkey.asc (e.g. E222AA02 for Alejandro García)
-
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
-
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*,}
-
Forum
-
Matrix space (General room)
-
Twitter
-
Optionally reddit /r/Bisq
-
Celebrate