diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/build-windows.md | 24 | ||||
-rw-r--r-- | doc/release-notes-14802.md | 3 | ||||
-rw-r--r-- | doc/release-notes-15006.md | 4 | ||||
-rw-r--r-- | doc/release-notes.md | 28 | ||||
-rw-r--r-- | doc/release-process.md | 62 |
5 files changed, 76 insertions, 45 deletions
diff --git a/doc/build-windows.md b/doc/build-windows.md index 036c585b44..5ca9f98475 100644 --- a/doc/build-windows.md +++ b/doc/build-windows.md @@ -102,30 +102,6 @@ Build using: CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/ make -## Building for 32-bit Windows - -To build executables for Windows 32-bit, install the following dependencies: - - sudo apt install g++-mingw-w64-i686 mingw-w64-i686-dev - -For Ubuntu Bionic 18.04 and Windows Subsystem for Linux <sup>[1](#footnote1)</sup>: - - sudo update-alternatives --config i686-w64-mingw32-g++ # Set the default mingw32 g++ compiler option to posix. - -Note that for WSL the Bitcoin Core source path MUST be somewhere in the default mount file system, for -example /usr/src/bitcoin, AND not under /mnt/d/. If this is not the case the dependency autoconf scripts will fail. -This means you cannot use a directory that located directly on the host Windows file system to perform the build. - -Build using: - - PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var - cd depends - make HOST=i686-w64-mingw32 - cd .. - ./autogen.sh # not required when building from tarball - CONFIG_SITE=$PWD/depends/i686-w64-mingw32/share/config.site ./configure --prefix=/ - make - ## Depends system For further documentation on the depends system see [README.md](../depends/README.md) in the depends directory. diff --git a/doc/release-notes-14802.md b/doc/release-notes-14802.md new file mode 100644 index 0000000000..1fcc38866a --- /dev/null +++ b/doc/release-notes-14802.md @@ -0,0 +1,3 @@ +RPC changes +----------- +The `getblockstats` RPC is faster for fee calculation by using BlockUndo data. Also, `-txindex` is no longer required and `getblockstats` works for all non-pruned blocks. diff --git a/doc/release-notes-15006.md b/doc/release-notes-15006.md new file mode 100644 index 0000000000..76ed3247a6 --- /dev/null +++ b/doc/release-notes-15006.md @@ -0,0 +1,4 @@ +Miscellaneous RPC changes +------------ + +- `createwallet` can now create encrypted wallets if a non-empty passphrase is specified. diff --git a/doc/release-notes.md b/doc/release-notes.md index 834c9b36dc..4a86469ccf 100644 --- a/doc/release-notes.md +++ b/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" +*(e.g. "0.20.0 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: @@ -97,6 +111,16 @@ Configuration the selected network. This change takes only effect if the selected network is not mainnet. +Wallet +------ + +- When in pruned mode, a rescan that was triggered by an `importwallet`, + `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail when + blocks have been pruned. Previously it would fail when `-prune` has been set. + This change allows to set `-prune` to a high value (e.g. the disk size) and + the calls to any of the import RPCs would fail when the first block is + pruned. + Credits ======= diff --git a/doc/release-process.md b/doc/release-process.md index 7522310ce2..9b796fa816 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -1,17 +1,19 @@ Release Process ==================== -Before every release candidate: +## Branch updates + +### Before every release candidate * Update translations (ping wumpus on IRC) see [translation_process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#synchronising-translations). * Update manpages, see [gen-manpages.sh](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-manpagessh). * Update release candidate version in `configure.ac` (`CLIENT_VERSION_RC`). -Before every minor and major release: +### Before every major and minor release * Update [bips.md](bips.md) to account for changes since the last release. * Update version in `configure.ac` (don't forget to set `CLIENT_VERSION_RC` to `0`). -* Write release notes (see below). +* Write release notes (see "Write the release notes" below). * Update `src/chainparams.cpp` nMinimumChainWork with information from the getblockchaininfo rpc. * Update `src/chainparams.cpp` defaultAssumeValid with information from the getblockhash rpc. - The selected value must not be orphaned so it may be useful to set the value two blocks back from the tip. @@ -19,13 +21,12 @@ Before every minor and major release: - This update should be reviewed with a reindex-chainstate with assumevalid=0 to catch any defect that causes rejection of blocks in the past history. -Before every major release: +### Before every major release * Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/7415) for an example. * 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. * In `configure.ac` and `build_msvc/bitcoin_config.h` on _the master branch_: - update `CLIENT_VERSION_MINOR` version * In `configure.ac` and `build_msvc/bitcoin_config.h` on _a new release branch_ (see [this commit](https://github.com/bitcoin/bitcoin/commit/742f7dd972fca3dd4a33cfff90bf901b71a687e7)): @@ -33,6 +34,26 @@ Before every major release: - set `CLIENT_VERSION_REVISION` to `0` - set `CLIENT_VERSION_IS_RELEASE` to `true` +#### Before branch-off + +- Clear the release notes and move them to the wiki (see "Write the release notes" below). + +#### After branch-off (on master) + +- Update the version of `contrib/gitian-descriptors/*.yml`. + +#### After branch-off (on the major release branch) + +- Update the versions and the link to the release notes draft in `doc/release-notes.md`. + +#### Before 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. + + +## Building + ### First time / New builders 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 "--setup" command. Otherwise ignore this. @@ -45,22 +66,26 @@ 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. - git shortlog --no-merges v(current version, e.g. 0.7.2)..v(new version, e.g. 0.8.0) +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.19.2)..v(new version, e.g. 0.20.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: - git log --format='- %aN' v(current version, e.g. 0.16.0)..v(new version, e.g. 0.16.1) | sort -fiu + git log --format='- %aN' v(current version, e.g. 0.20.0)..v(new version, e.g. 0.20.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) + git tag -s v(new version, e.g. 0.20.0) ### Setup and perform Gitian builds @@ -70,7 +95,7 @@ Setup Gitian descriptors: pushd ./bitcoin export SIGNER="(your Gitian key, ie bluematt, sipa, etc)" - export VERSION=(new version, e.g. 0.8.0) + export VERSION=(new version, e.g. 0.20.0) git fetch git checkout v${VERSION} popd @@ -221,7 +246,6 @@ Create (and optionally verify) the signed Windows binaries: ./bin/gsign --signer "$SIGNER" --release ${VERSION}-win-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml ./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-signed ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml mv build/out/bitcoin-*win64-setup.exe ../bitcoin-${VERSION}-win64-setup.exe - mv build/out/bitcoin-*win32-setup.exe ../bitcoin-${VERSION}-win32-setup.exe popd Commit your signature for the signed macOS/Windows binaries: @@ -229,7 +253,7 @@ Commit your signature for the signed macOS/Windows binaries: pushd gitian.sigs git add ${VERSION}-osx-signed/"${SIGNER}" git add ${VERSION}-win-signed/"${SIGNER}" - git commit -a + git commit -m "Add ${SIGNER} ${VERSION} signed binaries signatures" git push # Assuming you can push to the gitian.sigs tree popd @@ -250,8 +274,6 @@ bitcoin-${VERSION}-x86_64-linux-gnu.tar.gz bitcoin-${VERSION}-osx64.tar.gz bitcoin-${VERSION}-osx.dmg bitcoin-${VERSION}.tar.gz -bitcoin-${VERSION}-win32-setup.exe -bitcoin-${VERSION}-win32.zip bitcoin-${VERSION}-win64-setup.exe bitcoin-${VERSION}-win64.zip ``` @@ -326,9 +348,11 @@ bitcoin.org (see below for bitcoin.org update instructions). - This repo - - Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release) + - Archive the 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 candidate (see [this issue](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: |