2023-01-16 17:07:42 +00:00
|
|
|
# Release process
|
|
|
|
|
2023-02-01 17:41:05 +00:00
|
|
|
- Before a minor release:
|
|
|
|
- Update `src/assets/restore_heights_monero_{mainnet,stagenet}.txt`
|
|
|
|
- To obtain values, run `contrib/generate-restore-heights/heights.py`
|
|
|
|
- Update `m_defaultPools` in `src/widgets/XMRigWidget.h`
|
|
|
|
- Update default node lists in `src/assets/nodes.json`
|
|
|
|
- Bump `openssl`, `qt`, `tor_*` packages in `contrib/depends/packages`
|
2023-05-25 14:05:06 +00:00
|
|
|
- Update or patch any statically linked dependencies that have known vulnerabilities
|
|
|
|
- Run `feather-utils/depends/vulns.py` to check
|
2023-05-24 19:35:24 +00:00
|
|
|
- Rebase on top of latest Monero version
|
2023-01-24 17:57:41 +00:00
|
|
|
- Update `src/assets/ack.txt`
|
2023-01-19 16:46:17 +00:00
|
|
|
- Update `SOURCE_DATE_EPOCH` in `contrib/guix/guix-build`
|
2023-01-16 17:07:42 +00:00
|
|
|
- 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
|
|
|
|
- Push the master branch and tags
|
|
|
|
- `git push --tags origin master`
|
|
|
|
- Run `guix` builds in a clean repo:
|
|
|
|
- ```bash
|
|
|
|
git clone https://github.com/feather-wallet/feather.git
|
|
|
|
cd feather
|
|
|
|
git checkout <TAG>
|
|
|
|
git submodule update --init --recursive
|
|
|
|
./contrib/guix/guix-build
|
|
|
|
```
|
2023-05-25 14:05:06 +00:00
|
|
|
- Alternatively, run `feather-utils/guix/run-build.sh`
|
2023-01-16 17:07:42 +00:00
|
|
|
- Use at least two machines to verify that the builds are reproducible:
|
|
|
|
- In absence of a system for verified reproduction, at least one machine should be air-gapped.
|
2023-05-25 14:05:06 +00:00
|
|
|
- Use the `feather-utils/guix/compare-builds.sh` script to compare two build directories and identify any reproducibility defects.
|
2023-01-16 17:07:42 +00:00
|
|
|
- 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/output` to release signing machine
|
2023-05-25 14:05:06 +00:00
|
|
|
- Run `feather-utils/release/make-release.sh`
|
2023-01-16 17:07:42 +00:00
|
|
|
- Update documentation (`feather-wallet/feather-docs`)
|
|
|
|
- Update the site (`feather-wallet/feather-site`)
|
2023-05-25 14:05:06 +00:00
|
|
|
- Run the `feather-utils/site/bump-version.py` script to create a template commit.
|
|
|
|
- Edit the changelog in `content/changelog`
|
2023-01-16 17:07:42 +00:00
|
|
|
- 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`.
|
|
|
|
- Make `depends` source files [available](https://featherwallet.org/files/sources/):
|
|
|
|
- `make -C contrib/depends download`
|
|
|
|
- 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
|