<commit_before>Bitcoin ABC Release Process
===========================


## Before Release

1. Check configuration
    - Check features planned for the release are implemented and documented
      (or more informally, that the Release Manager agrees it is feature complete)
    - Check that finished tasks / tickets are marked as resolved

2. Verify tests passed
    - Any known issues or limitations should be documented in release notes
    - Known bugs should have tickets
    - Run `arc lint --everything` and check there is no linter error
    - Ensure that bitcoind and bitcoin-qt run with no issue on all supported platforms.
      Manually test bitcoin-qt by sending some transactions and navigating through the menus.
 
3. Update the documents / code which needs to be updated every release
    - Check that [release-notes.md](doc/release-notes.md) is complete, and fill in any missing items.
    - Update [bips.md](/doc/bips.md) to account for changes since the last release.
    - (major releases) Update [`BLOCK_CHAIN_SIZE`](/src/qt/intro.cpp) to the current size plus
      some overhead.
    - Regenerate manpages (run `contrib/devtools/gen-manpages.sh`, or for out-of-tree builds run
      `BUILDDIR=$PWD/build contrib/devtools/gen-manpages.sh`).
    - Update seeds as per [contrib/seeds/README.md](/contrib/seeds/README.md).

4. Add git tag for release
    a. Create the tag: `git tag vM.m.r` (M = major version, m = minor version, r = revision)
    b. Push the tag to Github:
        ```
        git push <github remote> master
        git push <github remote> vM.m.r
        ```

5. Increment version number for the next release in:
    - `doc/release-notes.md` (and copy existing one to versioned `doc/release-notes/*.md`)
    - `configure.ac`
    - `CMakeLists.txt`
    - `contrib/seeds/makeseeds.py` (only after a new major release)

## Release

6. Create Gitian Builds (see [gitian-building.md](/doc/gitian-building.md))

7. Verify matching Gitian Builds, gather signatures

8. Verify IBD bith with and without `-checkpoints=0 -assumevalid=0`

9. Upload Gitian Builds to [bitcoinabc.org](https://download.bitcoinabc.org/)

10. Create a [GitHub release](https://github.com/Bitcoin-ABC/bitcoin-abc/releases):
    `contrib/devtools/github-release.sh -a <path to release binaries> -t <release tag> -o <file containing your Github OAuth token>`

11. Notify maintainers of Ubuntu PPA, AUR, and Docker images to build their packages.
    They should be given 1-day advance notice if possible.

## After Release

12. Update version number on www.bitcoinabc.org

13. Publish signed checksums (various places, e.g. blog, reddit/r/BitcoinABC)

14. Announce Release:
    - [Reddit](https://www.reddit.com/r/BitcoinABC/)
    - Twitter @Bitcoin_ABC
    - Public slack channels friendly to Bitcoin ABC announcements 
      (eg. #abc-announce on BTCforks,  #hardfork on BTCchat)<commit_msg>Add Ubuntu PPA to release process<commit_after>Bitcoin ABC Release Process
===========================


## Before Release

1. Check configuration
    - Check features planned for the release are implemented and documented
      (or more informally, that the Release Manager agrees it is feature complete)
    - Check that finished tasks / tickets are marked as resolved

2. Verify tests passed
    - Any known issues or limitations should be documented in release notes
    - Known bugs should have tickets
    - Run `arc lint --everything` and check there is no linter error
    - Ensure that bitcoind and bitcoin-qt run with no issue on all supported platforms.
      Manually test bitcoin-qt by sending some transactions and navigating through the menus.
 
3. Update the documents / code which needs to be updated every release
    - Check that [release-notes.md](doc/release-notes.md) is complete, and fill in any missing items.
    - Update [bips.md](/doc/bips.md) to account for changes since the last release.
    - (major releases) Update [`BLOCK_CHAIN_SIZE`](/src/qt/intro.cpp) to the current size plus
      some overhead.
    - Regenerate manpages (run `contrib/devtools/gen-manpages.sh`, or for out-of-tree builds run
      `BUILDDIR=$PWD/build contrib/devtools/gen-manpages.sh`).
    - Update seeds as per [contrib/seeds/README.md](/contrib/seeds/README.md).

4. Add git tag for release
    a. Create the tag: `git tag vM.m.r` (M = major version, m = minor version, r = revision)
    b. Push the tag to Github:
        ```
        git push <github remote> master
        git push <github remote> vM.m.r
        ```

5. Increment version number for the next release in:
    - `doc/release-notes.md` (and copy existing one to versioned `doc/release-notes/*.md`)
    - `configure.ac`
    - `CMakeLists.txt`
    - `contrib/seeds/makeseeds.py` (only after a new major release)

## Release

6. Create Gitian Builds (see [gitian-building.md](/doc/gitian-building.md))

7. Verify matching Gitian Builds, gather signatures

8. Verify IBD bith with and without `-checkpoints=0 -assumevalid=0`

9. Upload Gitian Builds to [bitcoinabc.org](https://download.bitcoinabc.org/)

10. Create a [GitHub release](https://github.com/Bitcoin-ABC/bitcoin-abc/releases):
    `contrib/release/github-release.sh -a <path to release binaries> -t <release tag> -o <file containing your Github OAuth token>`

11. Create [Ubuntu PPA packages](https://launchpad.net/~bitcoin-abc/+archive/ubuntu/ppa):
    `contrib/release/debian-packages.sh <version> "Your Name <<EMAIL>>"`

12. Notify maintainers of AUR and Docker images to build their packages.
    They should be given 1-day advance notice if possible.

## After Release

13. Update version number on www.bitcoinabc.org

14. Publish signed checksums (various places, e.g. blog, reddit/r/BitcoinABC)

15. Announce Release:
    - [Reddit](https://www.reddit.com/r/BitcoinABC/)
    - Twitter @Bitcoin_ABC
    - Public slack channels friendly to Bitcoin ABC announcements 
      (eg. #abc-announce on BTCforks,  #hardfork on BTCchat)
{'fraction_non_alphanumeric': 0.10449513586044952, 'fraction_numerical': 0.007715531700771553, 'mean_word_length': 3.3462099125364433, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 16, 'https://': 7, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3476823', 'n_tokens_mistral': 1834, 'n_tokens_neox': 1750, 'n_words': 672}