Skip to content

Commit

Permalink
Update release process to match new trade statistics delivery
Browse files Browse the repository at this point in the history
Also did some minor release process cleanup that was overdue
  • Loading branch information
ripcurlx committed Nov 11, 2020
1 parent 0345c79 commit 7701ad3
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 33 deletions.
6 changes: 5 additions & 1 deletion desktop/package/macosx/copy_dbs.sh
Expand Up @@ -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"
3 changes: 2 additions & 1 deletion docs/data-stores.md
Expand Up @@ -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
60 changes: 29 additions & 31 deletions docs/release-process.md
Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
Expand All @@ -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.

Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -162,15 +160,15 @@ 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

### 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)
Expand Down

0 comments on commit 7701ad3

Please sign in to comment.