From 7701ad35d34585a664f748872459ecfe5b54e66b Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 11 Nov 2020 10:55:00 +0100 Subject: [PATCH] Update release process to match new trade statistics delivery Also did some minor release process cleanup that was overdue --- desktop/package/macosx/copy_dbs.sh | 6 ++- docs/data-stores.md | 3 +- docs/release-process.md | 60 +++++++++++++++--------------- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/desktop/package/macosx/copy_dbs.sh b/desktop/package/macosx/copy_dbs.sh index c3d1de7200e..a9aaacfa903 100755 --- a/desktop/package/macosx/copy_dbs.sh +++ b/desktop/package/macosx/copy_dbs.sh @@ -2,12 +2,16 @@ cd $(dirname $0)/../../../ +version="1.5.0" + # Set BISQ_DIR as environment var to the path of your locally synced Bisq data directory e.g. BISQ_DIR=~/Library/Application\ Support/Bisq dbDir=$BISQ_DIR/btc_mainnet/db resDir=p2p/src/main/resources -cp "$dbDir/TradeStatistics2Store" "$resDir/TradeStatistics2Store_BTC_MAINNET" +# Only commit new TradeStatistics3Store if you plan to add it to +# https://github.com/bisq-network/bisq/blob/0345c795e2c227d827a1f239a323dda1250f4e69/common/src/main/java/bisq/common/app/Version.java#L40 as well. +cp "$dbDir/TradeStatistics3Store" "$resDir/TradeStatistics3Store_${version}_BTC_MAINNET" cp "$dbDir/AccountAgeWitnessStore" "$resDir/AccountAgeWitnessStore_BTC_MAINNET" cp "$dbDir/DaoStateStore" "$resDir/DaoStateStore_BTC_MAINNET" cp "$dbDir/SignedWitnessStore" "$resDir/SignedWitnessStore_BTC_MAINNET" diff --git a/docs/data-stores.md b/docs/data-stores.md index 554efb15889..81bc09f4978 100644 --- a/docs/data-stores.md +++ b/docs/data-stores.md @@ -5,5 +5,6 @@ With every release we include the latest snapshot of Mainnet and Testnet data from the P2P network within the client. * Start your Bisq client on Mainnet and Testnet and let it run until it is fully synced. -* Run [copy_dbs.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/copy_dbs.sh) to copy the +* Run [copy_dbs.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/copy_dbs.sh) to copy the required files into the [p2p resources directory](https://github.com/bisq-network/bisq/blob/master/p2p/src/main/resources). +* To add a new trade statistic snapshot just add it to the list of trade statistic snapshots in https://github.com/bisq-network/bisq/blob/0345c795e2c227d827a1f239a323dda1250f4e69/common/src/main/java/bisq/common/app/Version.java#L40 diff --git a/docs/release-process.md b/docs/release-process.md index 46595390aee..a503cbbed89 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -7,11 +7,9 @@ * Webpage (Prepare PR) * Update version number in: * [_config.yml](https://github.com/bisq-network/bisq-website/blob/master/_config.yml) - + * Update currency list in [market_currency_selector.html](https://github.com/bisq-network/bisq-website/blob/master/_includes/market_currency_selector.html) (use [MarketsPrintTool](https://github.com/bisq-network/bisq/blob/master/desktop/src/test/java/bisq/desktop/MarketsPrintTool.java) to create HTML content). - * Update [roadmap](https://github.com/bisq-network/bisq-website/blob/master/roadmap.md) with new release notes. - ### 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 @@ -27,7 +25,7 @@ Write release notes. git shortlog helps a lot, for example: 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 - + 1. Prepare the release notes with major changes from user perspective. 2. Prepare a short version of the release notes for the in-app update popup @@ -38,7 +36,7 @@ You can use a virtualization solution like [VirtualBox](https://www.virtualbox.o #### VirtualBox recommended configuration Although performance of VMs might vary based on your hardware configuration following setup works pretty well on macOS. -Use VirtualBox < 5.2.22: Using a more recent version makes VMs hardly usable on a MacBook Pro (15-inch, 2016) +Use VirtualBox > 6.1 with following configuration: * System > Motherboard > Base Memory: 2048 MB * System > Processor > Processor(s): 2 CPUs @@ -54,7 +52,7 @@ with following configuration: ##### Linux VM * Ubuntu 16.04.4 64bit -* Recommended virtual disk size: 15 GB +* Recommended virtual disk size: 25 GB ##### macOS VM * macOS X 10.11 (El Capitan) 64bit @@ -74,17 +72,17 @@ with following configuration: #### macOS -1. Make sure all version numbers are updated (update version variables and run [replace_version_number.sh](https://github.com/bisq-network/bisq/blob/master/bisq/desktop/package/macosx/replace_version_number.sh)). +1. Make sure all version numbers are updated (update version variables and run [replace_version_number.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/replace_version_number.sh)). 2. Set environment variable e.g. export BISQ_GPG_USER=manfred@bitsquare.io to ~/.profile file or the like... (one time effort) 3. Update [vmPath variable](https://github.com/bisq-network/bisq/blob/b4b5d0bb12c36afbe1aa6611dd8451378df6db8c/desktop/package/macosx/create_app.sh#L42) if necessary 4. Run [create_app.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/create_app.sh) Build output expected in deploy directory (opened after successful build process): - - 1. `Bisq-${NEW-VERSION}.dmg` macOS signed installer - 2. `Bisq-${NEW-VERSION}.jar` Deterministic fat jar - 3. `Bisq-${NEW-VERSION}.jar.txt` sha256 sum of deterministic fat jar - + + 1. `Bisq-${NEW-VERSION}.dmg` macOS signed installer + 2. `Bisq-${NEW-VERSION}.jar` Deterministic fat jar + 3. `Bisq-${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. @@ -93,8 +91,8 @@ Before building the other binaries install the generated Bisq app on macOS and v * Run `desktop/package/linux/package.sh` from the shared VM folder Build output expected: - - 1. `Bisq-${NEW-VERSION}.deb` package for distributions that derive from Debian + + 1. `Bisq-${NEW-VERSION}.deb` package for distributions that derive from Debian 2. `Bisq-${NEW-VERSION}.rpm` package for distributions that derive from Redhat based distros * Install and run generated package @@ -104,20 +102,20 @@ Build output expected: * Run `desktop/package/windows/package.bat` from the shared VM folder Build output expected: - - 1. `Bisq-${NEW-VERSION}.exe` Windows unsigned installer + + 1. `Bisq-${NEW-VERSION}.exe` Windows unsigned installer 2. `Bisq-${NEW-VERSION}.exe.txt` sha256 sum of installer ### Sign release on macOS -* Run [finalize.sh](https://github.com/bisq-network/bisq/blob/master/bisq/desktop/package/macosx/finalize.sh) +* Run [finalize.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/finalize.sh) Build output expected: - 1. `F379A1C6.asc` Sig key of Manfred Karrer - 2. `5BC5ED73.asc` Sig key of Chris Beams - 3. `29CDFD3B.asc`Sig key of Christoph Atteneder - 4. `signingkey.asc` Fingerprint of key that was used for these builds + 1. `F379A1C6.asc` Sig key of Manfred Karrer + 2. `5BC5ED73.asc` Sig key of Chris Beams + 3. `29CDFD3B.asc`Sig key of Christoph Atteneder + 4. `signingkey.asc` Fingerprint of key that was used for these builds 5. `Bisq-${NEW-VERSION}.jar.txt` Sha256 sum of deterministic fat jar 6. `Bisq-${NEW-VERSION}.dmg` macOS installer 7. `Bisq-${NEW-VERSION}.dmg.asc` Signature for macOS installer @@ -127,23 +125,23 @@ Build output expected: 11. `Bisq-${NEW-VERSION}.rpm.asc` Signature for Redhat based distro package 12. `Bisq-${NEW-VERSION}.exe` Windows installer 13. `Bisq-${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: +If all was successful: - * commit changes of new version number (update version number for release of e.g. v0.9.4) + * 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. 0.9.4) -m"Release v(new version, e.g. 0.9.4)" + 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. 0.9.4) in shell script [insert_snapshot_version.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/insert_snapshot_version.sh) and run it) and commit these changes. + * Revert back to SNAPSHOT where necessary (change version variable (e.g. 1.5.0) in shell script [insert_snapshot_version.sh](https://github.com/bisq-network/bisq/blob/master/desktop/package/macosx/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 @@ -162,7 +160,7 @@ If all was successful: #### 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. + * 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 @@ -170,7 +168,7 @@ If all was successful: ### Announce the release * Forum - * Slack (#general channel) + * Keybase (#general channel) * Twitter * Optionally reddit /r/Bisq * Notify @freimair so that he can start updating [the Arch User Repository](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bisq-git)