mirror of
https://github.com/feather-wallet/feather.git
synced 2024-11-16 17:27:38 +00:00
2.7 KiB
2.7 KiB
Release process
- 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
m_defaultPools
insrc/widgets/XMRigWidget.h
- Update default node lists in
src/assets/nodes.json
- Bump
openssl
,qt
,tor_*
packages incontrib/depends/packages
- Update
- Update
src/assets/ack.txt
- Update
SOURCE_DATE_EPOCH
incontrib/guix/guix-build
- 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.txt
may be tagged
- Tag must match version in
- Push the master branch and tags
git push --tags origin master
- Run
guix
builds in a clean repo:-
git clone https://github.com/feather-wallet/feather.git cd feather git checkout <TAG> git submodule update --init --recursive mkdir contrib/depends/SDKs tar -C contrib/depends/SDKs -xaf /path/to/Xcode-<foo>-<bar>-extracted-SDK-with-libcxx-headers.tar.gz ./contrib/guix/guix-build
- To obtain
Xcode-<foo>-<bar>-extracted-SDK-with-libcxx-headers.tar.gz
follow the instructions incontrib/macdeploy
. - Use at least two machines to verify that the builds are reproducible:
cd guix-build-x.x.x/output find . -type f -not -name "SHA*" -exec sha256sum {} \; | sort -k2
- In absence of a system for verified reproduction, at least one machine should be air-gapped.
- If builds are not reproducible: fix any reproducibility defects and bump patch version. Do not sign or release non-reproducible builds.
- To quickly identify any non-reproducible
depends
packages:cd contrib/depends/built find . -name "*.hash" -exec cat {} \; | sort -k2
-
- Sign release artifacts and hashlists.
- Transfer files in
guix-build-x.x.x/output
to release signing machine - Run
make-release.sh
- Transfer files in
- Update documentation (
feather-wallet/feather-docs
) - Update the site (
feather-wallet/feather-site
)- Add a changelog in
content/changelog
- 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
depends
source files available:make -C contrib/depends download
- Add a changelog in
- Announce release on social media (Reddit, Twitter, irc/Matrix)
- Update websocket servers to notify clients of new release
- Wait up to 7 days to allow for bug reports before major rollout