- Before a minor release:
- Update
src/assets/restore_heights_monero_{mainnet,stagenet}.txt- To obtain values, run
contrib/generate-restore-heights/heights.py
- To obtain values, run
- Update default node lists in
src/assets/nodes.json - Bump
openssl,qt,tor_*packages incontrib/depends/packages - Update or patch any statically linked dependencies that have known vulnerabilities
- Run
feather-utils/depends/vulns.pyto check
- Run
- Rebase on top of latest Monero version
- Update
- Update
src/assets/ack.txt - Update documentation (
feather-wallet/feather-docs) andexternal/feather-docssubmodule - Update the version number in
CMakeLists.txt- A hardfork-ready release must bump major version
- Create an annotated tag (
git tag x.x.x -a)- Tag must match version in
CMakeLists.txt - Only commits that update the version number in
CMakeLists.txtmay be tagged
- Tag must match version in
- Push the master branch and tags
git push --tags origin master
- Run
guixbuilds in a clean repo:-
git clone https://github.com/feather-wallet/feather.git cd feather git checkout <TAG> git submodule update --init --recursive ./contrib/guix/guix-build
- Alternatively, run
feather-utils/guix/run-build.sh
-
- Attest the builds (
contrib/guix/guix-attest) and PR tofeather/feather-sigs.- Wait until at least one other person has independently verified reproducibility
- If builds are not reproducible: fix any reproducibility defects and bump patch version. Do not sign or release non-reproducible builds.
- Sign release artifacts and hashlists.
- Transfer files in
guix-build-x.x.x/outputto release signing machine - Run
feather-utils/release/make-release.sh
- Transfer files in
- Update the site (
feather-wallet/feather-site)- Run the
feather-utils/site/bump-version.pyscript to create a template commit. - Edit the changelog in
content/changelog- If a release includes security fixes add "(includes security fixes)" to the title.
- Update the version number, file sizes and paths in
data/release.json - Upload releases, signatures and signed hashlists.
- Follow the directory structure defined in
MainWindow::onShowUpdateCheck.
- Follow the directory structure defined in
- Make
dependssource files available:make -C contrib/depends download
- Run the
- Announce release on social media (irc/Matrix, Twitter, Lemmy)
- Update websocket servers to notify clients of new release
- Wait up to 7 days to allow for bug reports before major rollout