Skip to content

Commit

Permalink
[Docs] Release process updates
Browse files Browse the repository at this point in the history
Updates to `doc/release-process.md`:

- Create a pinned meta-issue dedicated to testing the release candidate and communicate it in release announcements where useful. The former is done in practice (e.g. bitcoin#15555, bitcoin#14902) and the latter addresses the discussion here: https://x0f.org/web/statuses/101753569204220416.

- Create a Release Notes draft wiki for collaborative editing at https://github.com/bitcoin-core/bitcoin-devwiki/wiki as seen for v0.17.0 and the current v0.18.0 release.

- As per http://www.erisian.com.au/bitcoin-core-dev/log-2019-03-28.html#l-342, for the period during which the notes are being edited on the wiki, the version on the branch should be wiped and replaced with a link to the wiki which should be used for all announcements until final.

- Before final, remove the "Needs release note" label from relevant PRs/issues and merge the release notes from the wiki into the branch.

- Steal/adapt/merge the updates in bitcoin#15692.
  • Loading branch information
jonatack committed Apr 16, 2019
1 parent 9e7dc68 commit a68cbce
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 9 deletions.
18 changes: 16 additions & 2 deletions doc/release-notes.md
@@ -1,5 +1,19 @@
(note: this is a temporary file, to be added-to by anybody, and moved to
release-notes at release time)
*After branching off for a major version release of Bitcoin Core, use this
template to create the initial release notes draft.*

*The release notes draft is a temporary file that can be added-to by anyone. See
[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes)
for the process.*

*Create the draft, named* **\*version\*-Release-Notes-Draft,** *as a
collaborative wiki in:*

https://github.com/bitcoin-core/bitcoin-devwiki/wiki/

*Before the final release, move the notes back to this git repository.*

\*version\* Release Notes Draft
=============================

Bitcoin Core version *version* is now available from:

Expand Down
29 changes: 22 additions & 7 deletions doc/release-process.md
Expand Up @@ -26,7 +26,10 @@ Before every major release:
* Update [`src/chainparams.cpp`](/src/chainparams.cpp) m_assumed_blockchain_size and m_assumed_chain_state_size with the current size plus some overhead.
* Update `src/chainparams.cpp` chainTxData with statistics about the transaction count and rate. Use the output of the RPC `getchaintxstats`, see
[this pull request](https://github.com/bitcoin/bitcoin/pull/12270) for an example. Reviewers can verify the results by running `getchaintxstats <window_block_count> <window_last_block_hash>` with the `window_block_count` and `window_last_block_hash` from your output.
* Update version of `contrib/gitian-descriptors/*.yml`: usually one'd want to do this on master after branching off the release - but be sure to at least do it before a new major release
* Before branching off the release, clear the release notes and move them to the wiki (see "Write the release notes" below).
* After branching off the release:
- Update the link to the release notes draft in `doc/release-notes.md`
- Update the version of `contrib/gitian-descriptors/*.yml` on master

### First time / New builders

Expand All @@ -40,23 +43,33 @@ Check out the source code in the following directory hierarchy.
git clone https://github.com/devrandom/gitian-builder.git
git clone https://github.com/bitcoin/bitcoin.git

### Bitcoin maintainers/release engineers, suggestion for writing release notes
### Write the release notes

Write release notes. git shortlog helps a lot, for example:
Open a draft of the release notes for collaborative editing at https://github.com/bitcoin-core/bitcoin-devwiki/wiki.

For the period during which the notes are being edited on the wiki, the version on the branch should be wiped and replaced with a link to the wiki which should be used for all announcements until `-final`.

Write the release notes. `git shortlog` helps a lot, for example:

git shortlog --no-merges v(current version, e.g. 0.7.2)..v(new version, e.g. 0.8.0)

(or ping @wumpus on IRC, he has specific tooling to generate the list of merged pulls
and sort them into categories based on labels)
and sort them into categories based on labels).

Generate list of authors:
Generate the list of authors:

git log --format='- %aN' v(current version, e.g. 0.16.0)..v(new version, e.g. 0.16.1) | sort -fiu

Tag version (or release candidate) in git
Tag the version (or release candidate) in git:

git tag -s v(new version, e.g. 0.8.0)

Before the final release:

- Merge the release notes from the wiki into the branch

- Ensure the "Needs release note" label is removed from all relevant pull requests and issues

### Setup and perform Gitian builds

If you're using the automated script (found in [contrib/gitian-build.py](/contrib/gitian-build.py)), then at this point you should run it with the "--build" command. Otherwise ignore this.
Expand Down Expand Up @@ -323,7 +336,9 @@ bitcoin.org (see below for bitcoin.org update instructions).

- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)

- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes.
- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes

- Create a pinned meta-issue for testing the release (see [here](https://github.com/bitcoin/bitcoin/issues/15555) for an example) and provide a link to it in the release announcements where useful

- Announce the release:

Expand Down

0 comments on commit a68cbce

Please sign in to comment.