All commits should have one of the following prefixes: REL, FIX, ADD, TST, OPS, DOC. For example "ADD: new feature".
Adding new feature is ADD, fixing a bug is FIX, something related to infrastructure is OPS etc.
Commits should be atomic: one commit - one feature, one commit - one bugfix etc.
When you tag a new release, use the following example:
git tag -m "REL v1.4.0: 157c9c2" v1.4.0 -s
You may get the commit hash from git log. Don't forget to push tags git push origin --tags
Alternative way to tag: git tag -a v6.0.0 2e1a00609d5a0dbc91bcda2421df0f61bdfc6b10 -m "v6.0.0" -s
When tagging a new release, make sure to increment version in package.json and other files (we have a script for that: ./scripts/edit-version-number.sh)
In the commit where you up version you can have the commit message as
"REL vX.X.X: Summary message".
Do not add new dependencies. Bonus points if you manage to actually remove a dependency.
The Spark wallet is the exception: @breeztech/breez-sdk-spark-react-native is the wallet itself and stays. Its Node build @breeztech/breez-sdk-spark is a dev dependency for the funded end-to-end tests only, where it drives a second Spark wallet; it is never part of the app.
End-to-end tests (Detox, Android) take about an hour and run only on pull requests that are not drafts. Add the ci:full label to run them on a draft, and the e2e:funded label to run the suites that move real sats; see tests/e2e/README.md.