Auto merge of #2823 - str4d:2755-release-notes, r=str4d
List all commits in final release notes This alters the release notes to display the following commit ranges: Version | Diff ------- | --- `X-rc1` | `(X-1)..X-rc1` `X-rc2` | `(X-1)..X-rc2` `X` | `(X-1)..X` Closes #2755.
This commit is contained in:
commit
7dc1e1ca30
|
@ -1,7 +1,7 @@
|
||||||
Zcash Contributors
|
Zcash Contributors
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Jack Grigg (514)
|
Jack Grigg (518)
|
||||||
Simon Liu (281)
|
Simon Liu (281)
|
||||||
Sean Bowe (193)
|
Sean Bowe (193)
|
||||||
Daira Hopwood (102)
|
Daira Hopwood (102)
|
||||||
|
@ -19,6 +19,7 @@ fanquake (5)
|
||||||
MarcoFalke (5)
|
MarcoFalke (5)
|
||||||
Johnathan Corgan (5)
|
Johnathan Corgan (5)
|
||||||
Gregory Maxwell (5)
|
Gregory Maxwell (5)
|
||||||
|
Ariel Gabizon (5)
|
||||||
Philip Kaufmann (4)
|
Philip Kaufmann (4)
|
||||||
Peter Todd (4)
|
Peter Todd (4)
|
||||||
Patrick Strateman (4)
|
Patrick Strateman (4)
|
||||||
|
@ -27,7 +28,6 @@ Karl-Johan Alm (4)
|
||||||
Jeff Garzik (4)
|
Jeff Garzik (4)
|
||||||
David Mercer (4)
|
David Mercer (4)
|
||||||
Daniel Cousens (4)
|
Daniel Cousens (4)
|
||||||
Ariel Gabizon (4)
|
|
||||||
lpescher (3)
|
lpescher (3)
|
||||||
kozyilmaz (3)
|
kozyilmaz (3)
|
||||||
Pavel Janík (3)
|
Pavel Janík (3)
|
||||||
|
|
|
@ -1,7 +1,47 @@
|
||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Jack Grigg (2):
|
Ariel Gabizon (3):
|
||||||
|
make-release.py: Versioning changes for 1.0.11-rc1.
|
||||||
|
make-release.py: Updated manpages for 1.0.11-rc1.
|
||||||
|
make-release.py: Updated release notes and changelog for 1.0.11-rc1.
|
||||||
|
|
||||||
|
Daira Hopwood (7):
|
||||||
|
Clean up imports to be pyflakes-checkable. fixes #2450
|
||||||
|
For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450
|
||||||
|
Cosmetics (trailing whitespace, comment conventions, etc.)
|
||||||
|
Alert 1004 (version 1.0.10 only)
|
||||||
|
Remove UPnP support. fixes #2500
|
||||||
|
Change wording in Security Warnings section of README.md.
|
||||||
|
Document our criteria for adding CI workers. closes #2499
|
||||||
|
|
||||||
|
Jack Grigg (17):
|
||||||
|
Pull in temporary release notes during the release process
|
||||||
|
Ansible playbook for installing Zcash dependencies and Buildbot worker
|
||||||
|
Variable overrides for Debian, Ubuntu and Fedora
|
||||||
|
Variable overrides for FreeBSD
|
||||||
|
Simplify Python installation, inform user if they need to manually configure
|
||||||
|
Add test for issue #2444
|
||||||
|
Add Buildbot worker setup to Ansible playbook
|
||||||
|
Add steps for setting up a latent worker on Amazon EC2
|
||||||
|
Add pyblake2 to required Python modules
|
||||||
|
Remove Buildbot version from host file
|
||||||
|
Add a separate Buildbot host info template for EC2
|
||||||
|
Add pyflakes to required Python modules
|
||||||
|
Add block download progress to metrics UI
|
||||||
|
Correct and extend EstimateNetHeightInner tests
|
||||||
|
Improve network height estimation
|
||||||
make-release.py: Versioning changes for 1.0.11.
|
make-release.py: Versioning changes for 1.0.11.
|
||||||
make-release.py: Updated manpages for 1.0.11.
|
make-release.py: Updated manpages for 1.0.11.
|
||||||
|
|
||||||
|
Simon Liu (3):
|
||||||
|
Closes #2446 by adding generated field to listunspent.
|
||||||
|
Fixes #2519. When sending from a zaddr, minconf cannot be zero.
|
||||||
|
Fixes #2480. Null entry in map was dereferenced leading to a segfault.
|
||||||
|
|
||||||
|
Wladimir J. van der Laan (1):
|
||||||
|
rpc: Add WWW-Authenticate header to 401 response
|
||||||
|
|
||||||
|
practicalswift (1):
|
||||||
|
Net: Fix resource leak in ReadBinaryFile(...)
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,65 @@
|
||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Jack Grigg (5):
|
Ariel (1):
|
||||||
|
add examples to z_getoperationresult
|
||||||
|
|
||||||
|
Ariel Gabizon (1):
|
||||||
|
add load-wallet benchmark
|
||||||
|
|
||||||
|
Bjorn Hjortsberg (2):
|
||||||
|
Do not warn on built in declaration mismatch
|
||||||
|
Remove deprecated exception specification
|
||||||
|
|
||||||
|
Jack Grigg (26):
|
||||||
|
ci-workers: Enable pipelining, and use root to set admin and host details
|
||||||
|
Variable overrides for Arch Linux
|
||||||
|
Rationalize currency unit to "ZEC"
|
||||||
|
ci-workers: Fail if Python is not version 2.7
|
||||||
|
ci-workers: Variable overrides and process tweaks for CentOS 7
|
||||||
|
Add build progress to the release script if progressbar module is available
|
||||||
|
Add hotfix support to release script
|
||||||
|
Document the hotfix release process
|
||||||
|
Enforce sequential hotfix versioning
|
||||||
|
Benchmark time to call sendtoaddress with many UTXOs
|
||||||
|
Fix bug in benchmark data generation script
|
||||||
|
Adjust instructions for UTXO dataset creation
|
||||||
|
Add GitHub release notes to release process
|
||||||
|
Clarify branching and force-building operations in hotfix process
|
||||||
|
Update user guide translations as part of release process
|
||||||
|
make-release.py: Send stderr to stdout
|
||||||
|
List dependencies for release script in release process doc
|
||||||
|
Additional test cases for importprivkey RPC test
|
||||||
|
make-release.py: Versioning changes for 1.0.12-rc1.
|
||||||
|
make-release.py: Updated manpages for 1.0.12-rc1.
|
||||||
|
make-release.py: Updated release notes and changelog for 1.0.12-rc1.
|
||||||
Fix pyflakes warnings in RPC tests
|
Fix pyflakes warnings in RPC tests
|
||||||
Individualise performance-measurements.sh errors for debugging
|
Individualise performance-measurements.sh errors for debugging
|
||||||
Fix incorrect failure in memory benchmark
|
Fix incorrect failure in memory benchmark
|
||||||
make-release.py: Versioning changes for 1.0.12.
|
make-release.py: Versioning changes for 1.0.12.
|
||||||
make-release.py: Updated manpages for 1.0.12.
|
make-release.py: Updated manpages for 1.0.12.
|
||||||
|
|
||||||
Simon Liu (2):
|
Jason Davies (1):
|
||||||
|
Fix deprecation policy comment.
|
||||||
|
|
||||||
|
Nathan Wilcox (5):
|
||||||
|
key_import_export rpc-test: verify that UTXO view co-evolves for nodes sharing a key.
|
||||||
|
Add a new rpc-test-specified requirement: `importprivkey` outputs the associated address. (Test fails.)
|
||||||
|
[tests pass] Output address on new key import.
|
||||||
|
Add a new requirement that `importprivkey` API is idempotent.
|
||||||
|
[tests pass] Ensure `importprivkey` outputs the address in case key is already imported.
|
||||||
|
|
||||||
|
Ross Nicoll (1):
|
||||||
|
Rationalize currency unit to "BTC"
|
||||||
|
|
||||||
|
Simon Liu (5):
|
||||||
|
Closes #2583. Exclude watch-only utxos from z_sendmany coin selection.
|
||||||
|
Set up a clean chain. Delete redundant method wait_until_miner_sees() via use of sync_all().
|
||||||
|
Implement RPC shield_coinbase #2448.
|
||||||
Update which lock to synchronize on when calling GetBestAnchor().
|
Update which lock to synchronize on when calling GetBestAnchor().
|
||||||
Closes #2637. Make z_shieldcoinbase an experimental feature where it can be enabled with: zcashd -experimentalfeatures -zshieldcoinbase.
|
Closes #2637. Make z_shieldcoinbase an experimental feature where it can be enabled with: zcashd -experimentalfeatures -zshieldcoinbase.
|
||||||
|
|
||||||
|
kpcyrd (2):
|
||||||
|
Fetch params from ipfs if possible
|
||||||
|
Prefer wget over ipfs
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ Cory Fields (1):
|
||||||
Duke Leto (1):
|
Duke Leto (1):
|
||||||
Update performance-measurements.sh
|
Update performance-measurements.sh
|
||||||
|
|
||||||
Jack Grigg (36):
|
Jack Grigg (37):
|
||||||
Squashed 'src/snark/' content from commit 9ada3f8
|
Squashed 'src/snark/' content from commit 9ada3f8
|
||||||
Add libsnark compile flag to not copy DEPINST to PREFIX
|
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||||
Add Ansible playbook for grind workers
|
Add Ansible playbook for grind workers
|
||||||
|
|
|
@ -1,7 +1,57 @@
|
||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Jack Grigg (6):
|
Ariel Gabizon (1):
|
||||||
|
boost::format -> tinyformat
|
||||||
|
|
||||||
|
Bruno Arueira (1):
|
||||||
|
Removes out bitcoin mention in favor for zcash
|
||||||
|
|
||||||
|
Cory Fields (1):
|
||||||
|
httpserver: explicitly detach worker threads
|
||||||
|
|
||||||
|
Duke Leto (1):
|
||||||
|
Update performance-measurements.sh
|
||||||
|
|
||||||
|
Jack Grigg (44):
|
||||||
|
Squashed 'src/snark/' content from commit 9ada3f8
|
||||||
|
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||||
|
Add Ansible playbook for grind workers
|
||||||
|
Add connections in BIP65 and BIP66 tests to the test manager
|
||||||
|
Add benchmark for listunspent
|
||||||
|
[Test] MiniNode: Implement JSDescription parsing
|
||||||
|
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||||
|
[Test] MiniNode: Implement Zcash block parsing
|
||||||
|
[Test] MiniNode: Update protocol version and network magics
|
||||||
|
[Test] MiniNode: Use Zcash PoW
|
||||||
|
[Test] MiniNode: Fix coinbase creation
|
||||||
|
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||||
|
[Test] MiniNode: Implement Zcash coinbase
|
||||||
|
Fix BIP65 and BIP66 tests
|
||||||
|
Un-indent RPC test output in test runner
|
||||||
|
Replace full-test-suite.sh with a new test suite driver script
|
||||||
|
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||||
|
Move check-security-hardening.sh into full_test_suite.py
|
||||||
|
Add memory benchmark for validatelargetx
|
||||||
|
Migrate libsnark test code to Google Test
|
||||||
|
Remove test code corresponding to removed code
|
||||||
|
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||||
|
Update libsnark LDLIBS
|
||||||
|
Add "make check" to libsnark that runs the Google Tests
|
||||||
|
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||||
|
Changes to get test_r1cs_ppzksnark passing
|
||||||
|
Add bitcoin-util-test.py to full_test_suite.py
|
||||||
|
Add stdout notice if any stage fails
|
||||||
|
Add libsnark to "make clean"
|
||||||
|
Ensure that libsnark is built first, so its headers are available
|
||||||
|
Remove OpenSSL libraries from libsnark LDLIBS
|
||||||
|
Add libsnark tests to full_test_suite.py
|
||||||
|
Add --list-stages argument to full_test_suite.py
|
||||||
|
Fix NPE in rpc_wallet_tests
|
||||||
|
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||||
|
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||||
|
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
|
||||||
|
Change auto-senescence cycle to 16 weeks
|
||||||
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
|
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
|
||||||
Pass correct dependencies path to libsnark from both Gitian and build.sh
|
Pass correct dependencies path to libsnark from both Gitian and build.sh
|
||||||
Mark libsnark includes as library includes
|
Mark libsnark includes as library includes
|
||||||
|
@ -9,3 +59,37 @@ Jack Grigg (6):
|
||||||
make-release.py: Versioning changes for 1.0.13-rc2.
|
make-release.py: Versioning changes for 1.0.13-rc2.
|
||||||
make-release.py: Updated manpages for 1.0.13-rc2.
|
make-release.py: Updated manpages for 1.0.13-rc2.
|
||||||
|
|
||||||
|
Jason Davies (1):
|
||||||
|
Replace "bitcoin" with "Zcash".
|
||||||
|
|
||||||
|
Jay Graber (1):
|
||||||
|
s/zcash/Zcash
|
||||||
|
|
||||||
|
Jonathan "Duke" Leto (1):
|
||||||
|
Fix bug where performance-measurements.sh fails hards when given no args
|
||||||
|
|
||||||
|
João Barbosa (1):
|
||||||
|
Improve shutdown process
|
||||||
|
|
||||||
|
Sean Bowe (5):
|
||||||
|
Remove libsnark from depends system and integrate it into build system.
|
||||||
|
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||||
|
Refactor proof generation function.
|
||||||
|
Add streaming prover.
|
||||||
|
Integrate low memory prover.
|
||||||
|
|
||||||
|
Simon Liu (7):
|
||||||
|
Replace 'bitcoin address' with 'zcash address'.
|
||||||
|
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||||
|
Closes #2263 fixing broken pipe error.
|
||||||
|
Closes #2576. Update link to security info on z.cash website.
|
||||||
|
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||||
|
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||||
|
Add payment disclosure as experimental feature.
|
||||||
|
|
||||||
|
Wladimir J. van der Laan (4):
|
||||||
|
Make HTTP server shutdown more graceful
|
||||||
|
http: Wait for worker threads to exit
|
||||||
|
http: Force-exit event loop after predefined time
|
||||||
|
http: speed up shutdown
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,98 @@
|
||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Jack Grigg (2):
|
Ariel Gabizon (1):
|
||||||
|
boost::format -> tinyformat
|
||||||
|
|
||||||
|
Bruno Arueira (1):
|
||||||
|
Removes out bitcoin mention in favor for zcash
|
||||||
|
|
||||||
|
Cory Fields (1):
|
||||||
|
httpserver: explicitly detach worker threads
|
||||||
|
|
||||||
|
Duke Leto (1):
|
||||||
|
Update performance-measurements.sh
|
||||||
|
|
||||||
|
Jack Grigg (47):
|
||||||
|
Squashed 'src/snark/' content from commit 9ada3f8
|
||||||
|
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||||
|
Add Ansible playbook for grind workers
|
||||||
|
Add connections in BIP65 and BIP66 tests to the test manager
|
||||||
|
Add benchmark for listunspent
|
||||||
|
[Test] MiniNode: Implement JSDescription parsing
|
||||||
|
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||||
|
[Test] MiniNode: Implement Zcash block parsing
|
||||||
|
[Test] MiniNode: Update protocol version and network magics
|
||||||
|
[Test] MiniNode: Use Zcash PoW
|
||||||
|
[Test] MiniNode: Fix coinbase creation
|
||||||
|
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||||
|
[Test] MiniNode: Implement Zcash coinbase
|
||||||
|
Fix BIP65 and BIP66 tests
|
||||||
|
Un-indent RPC test output in test runner
|
||||||
|
Replace full-test-suite.sh with a new test suite driver script
|
||||||
|
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||||
|
Move check-security-hardening.sh into full_test_suite.py
|
||||||
|
Add memory benchmark for validatelargetx
|
||||||
|
Migrate libsnark test code to Google Test
|
||||||
|
Remove test code corresponding to removed code
|
||||||
|
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||||
|
Update libsnark LDLIBS
|
||||||
|
Add "make check" to libsnark that runs the Google Tests
|
||||||
|
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||||
|
Changes to get test_r1cs_ppzksnark passing
|
||||||
|
Add bitcoin-util-test.py to full_test_suite.py
|
||||||
|
Add stdout notice if any stage fails
|
||||||
|
Add libsnark to "make clean"
|
||||||
|
Ensure that libsnark is built first, so its headers are available
|
||||||
|
Remove OpenSSL libraries from libsnark LDLIBS
|
||||||
|
Add libsnark tests to full_test_suite.py
|
||||||
|
Add --list-stages argument to full_test_suite.py
|
||||||
|
Fix NPE in rpc_wallet_tests
|
||||||
|
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||||
|
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||||
|
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
|
||||||
|
Change auto-senescence cycle to 16 weeks
|
||||||
|
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
|
||||||
|
Pass correct dependencies path to libsnark from both Gitian and build.sh
|
||||||
|
Mark libsnark includes as library includes
|
||||||
|
Add the tar-pax option to automake
|
||||||
|
make-release.py: Versioning changes for 1.0.13-rc2.
|
||||||
|
make-release.py: Updated manpages for 1.0.13-rc2.
|
||||||
|
make-release.py: Updated release notes and changelog for 1.0.13-rc2.
|
||||||
make-release.py: Versioning changes for 1.0.13.
|
make-release.py: Versioning changes for 1.0.13.
|
||||||
make-release.py: Updated manpages for 1.0.13.
|
make-release.py: Updated manpages for 1.0.13.
|
||||||
|
|
||||||
|
Jason Davies (1):
|
||||||
|
Replace "bitcoin" with "Zcash".
|
||||||
|
|
||||||
|
Jay Graber (1):
|
||||||
|
s/zcash/Zcash
|
||||||
|
|
||||||
|
Jonathan "Duke" Leto (1):
|
||||||
|
Fix bug where performance-measurements.sh fails hards when given no args
|
||||||
|
|
||||||
|
João Barbosa (1):
|
||||||
|
Improve shutdown process
|
||||||
|
|
||||||
|
Sean Bowe (5):
|
||||||
|
Remove libsnark from depends system and integrate it into build system.
|
||||||
|
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||||
|
Refactor proof generation function.
|
||||||
|
Add streaming prover.
|
||||||
|
Integrate low memory prover.
|
||||||
|
|
||||||
|
Simon Liu (7):
|
||||||
|
Replace 'bitcoin address' with 'zcash address'.
|
||||||
|
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||||
|
Closes #2263 fixing broken pipe error.
|
||||||
|
Closes #2576. Update link to security info on z.cash website.
|
||||||
|
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||||
|
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||||
|
Add payment disclosure as experimental feature.
|
||||||
|
|
||||||
|
Wladimir J. van der Laan (4):
|
||||||
|
Make HTTP server shutdown more graceful
|
||||||
|
http: Wait for worker threads to exit
|
||||||
|
http: Force-exit event loop after predefined time
|
||||||
|
http: speed up shutdown
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ def main(args=sys.argv[1:]):
|
||||||
main_logged(
|
main_logged(
|
||||||
opts.RELEASE_VERSION,
|
opts.RELEASE_VERSION,
|
||||||
opts.RELEASE_PREV,
|
opts.RELEASE_PREV,
|
||||||
|
opts.RELEASE_FROM,
|
||||||
opts.RELEASE_HEIGHT,
|
opts.RELEASE_HEIGHT,
|
||||||
opts.HOTFIX,
|
opts.HOTFIX,
|
||||||
)
|
)
|
||||||
|
@ -61,6 +62,11 @@ def parse_args(args):
|
||||||
type=Version.parse_arg,
|
type=Version.parse_arg,
|
||||||
help='The previously released version.',
|
help='The previously released version.',
|
||||||
)
|
)
|
||||||
|
p.add_argument(
|
||||||
|
'RELEASE_FROM',
|
||||||
|
type=Version.parse_arg,
|
||||||
|
help='The previously released non-beta non-RC version. May be the same as RELEASE_PREV.',
|
||||||
|
)
|
||||||
p.add_argument(
|
p.add_argument(
|
||||||
'RELEASE_HEIGHT',
|
'RELEASE_HEIGHT',
|
||||||
type=int,
|
type=int,
|
||||||
|
@ -70,8 +76,8 @@ def parse_args(args):
|
||||||
|
|
||||||
|
|
||||||
# Top-level flow:
|
# Top-level flow:
|
||||||
def main_logged(release, releaseprev, releaseheight, hotfix):
|
def main_logged(release, releaseprev, releasefrom, releaseheight, hotfix):
|
||||||
verify_releaseprev_tag(releaseprev)
|
verify_tags(releaseprev, releasefrom)
|
||||||
verify_version(release, releaseprev, hotfix)
|
verify_version(release, releaseprev, hotfix)
|
||||||
initialize_git(release, hotfix)
|
initialize_git(release, hotfix)
|
||||||
patch_version_in_files(release, releaseprev)
|
patch_version_in_files(release, releaseprev)
|
||||||
|
@ -82,7 +88,7 @@ def main_logged(release, releaseprev, releaseheight, hotfix):
|
||||||
gen_manpages()
|
gen_manpages()
|
||||||
commit('Updated manpages for {}.'.format(release.novtext))
|
commit('Updated manpages for {}.'.format(release.novtext))
|
||||||
|
|
||||||
gen_release_notes(release)
|
gen_release_notes(release, releasefrom)
|
||||||
update_debian_changelog(release)
|
update_debian_changelog(release)
|
||||||
commit(
|
commit(
|
||||||
'Updated release notes and changelog for {}.'.format(
|
'Updated release notes and changelog for {}.'.format(
|
||||||
|
@ -101,8 +107,8 @@ def phase(message):
|
||||||
return deco
|
return deco
|
||||||
|
|
||||||
|
|
||||||
@phase('Checking RELEASE_PREV tag.')
|
@phase('Checking tags.')
|
||||||
def verify_releaseprev_tag(releaseprev):
|
def verify_tags(releaseprev, releasefrom):
|
||||||
candidates = []
|
candidates = []
|
||||||
|
|
||||||
# Any tag beginning with a 'v' followed by [1-9] must be a version
|
# Any tag beginning with a 'v' followed by [1-9] must be a version
|
||||||
|
@ -130,6 +136,31 @@ def verify_releaseprev_tag(releaseprev):
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
candidates.reverse()
|
||||||
|
prev_tags = []
|
||||||
|
for candidate in candidates:
|
||||||
|
if releasefrom == candidate:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
prev_tags.append(candidate)
|
||||||
|
else:
|
||||||
|
raise SystemExit(
|
||||||
|
'{} does not appear in `git tag --list`'
|
||||||
|
.format(
|
||||||
|
releasefrom.vtext,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
for tag in prev_tags:
|
||||||
|
if not tag.betarc:
|
||||||
|
raise SystemExit(
|
||||||
|
'{} appears to be a more recent non-beta non-RC release than {}'
|
||||||
|
.format(
|
||||||
|
tag.vtext,
|
||||||
|
releasefrom.vtext,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@phase('Checking version.')
|
@phase('Checking version.')
|
||||||
def verify_version(release, releaseprev, hotfix):
|
def verify_version(release, releaseprev, hotfix):
|
||||||
|
@ -238,8 +269,18 @@ def gen_manpages():
|
||||||
|
|
||||||
|
|
||||||
@phase('Generating release notes.')
|
@phase('Generating release notes.')
|
||||||
def gen_release_notes(release):
|
def gen_release_notes(release, releasefrom):
|
||||||
sh_log('python', './zcutil/release-notes.py', '--version', release.novtext)
|
release_notes = [
|
||||||
|
'python',
|
||||||
|
'./zcutil/release-notes.py',
|
||||||
|
'--version',
|
||||||
|
release.novtext,
|
||||||
|
'--prev',
|
||||||
|
releasefrom.vtext,
|
||||||
|
]
|
||||||
|
if not release.betarc:
|
||||||
|
release_notes.append('--clear')
|
||||||
|
sh_log(*release_notes)
|
||||||
sh_log(
|
sh_log(
|
||||||
'git',
|
'git',
|
||||||
'add',
|
'add',
|
||||||
|
|
|
@ -70,6 +70,10 @@ def document_authors():
|
||||||
f.write('Zcash Contributors\n==================\n\n')
|
f.write('Zcash Contributors\n==================\n\n')
|
||||||
total_contrib = {}
|
total_contrib = {}
|
||||||
for notes in os.listdir(os.path.join(doc_dir, 'release-notes')):
|
for notes in os.listdir(os.path.join(doc_dir, 'release-notes')):
|
||||||
|
# Commits are duplicated across beta, RC and final release notes,
|
||||||
|
# except for the pre-launch release notes.
|
||||||
|
if ('-beta' in notes or '-rc' in notes) and '1.0.0-' not in notes:
|
||||||
|
continue
|
||||||
authors = authors_in_release_notes(notes)
|
authors = authors_in_release_notes(notes)
|
||||||
for author in authors:
|
for author in authors:
|
||||||
commits = int(authors[author])
|
commits = int(authors[author])
|
||||||
|
@ -83,11 +87,15 @@ def document_authors():
|
||||||
f.write("{0} ({1})\n".format(n, c))
|
f.write("{0} ({1})\n".format(n, c))
|
||||||
|
|
||||||
## Writes release note to ./doc/release-notes based on git shortlog when current version number is specified
|
## Writes release note to ./doc/release-notes based on git shortlog when current version number is specified
|
||||||
def generate_release_note(version, filename):
|
def generate_release_note(version, prev, clear):
|
||||||
|
filename = 'release-notes-{0}.md'.format(version)
|
||||||
print "Automatically generating release notes for {0} from git shortlog. Should review {1} for accuracy.".format(version, filename)
|
print "Automatically generating release notes for {0} from git shortlog. Should review {1} for accuracy.".format(version, filename)
|
||||||
# fetches latest tags, so that latest_tag will be correct
|
if prev:
|
||||||
subprocess.Popen(['git fetch -t'], shell=True, stdout=subprocess.PIPE).communicate()[0]
|
latest_tag = prev
|
||||||
latest_tag = subprocess.Popen(['git describe --abbrev=0'], shell=True, stdout=subprocess.PIPE).communicate()[0].strip()
|
else:
|
||||||
|
# fetches latest tags, so that latest_tag will be correct
|
||||||
|
subprocess.Popen(['git fetch -t'], shell=True, stdout=subprocess.PIPE).communicate()[0]
|
||||||
|
latest_tag = subprocess.Popen(['git describe --abbrev=0'], shell=True, stdout=subprocess.PIPE).communicate()[0].strip()
|
||||||
print "Previous release tag: ", latest_tag
|
print "Previous release tag: ", latest_tag
|
||||||
notes = subprocess.Popen(['git shortlog --no-merges {0}..HEAD'.format(latest_tag)], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
|
notes = subprocess.Popen(['git shortlog --no-merges {0}..HEAD'.format(latest_tag)], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
|
||||||
lines = notes.split('\n')
|
lines = notes.split('\n')
|
||||||
|
@ -100,30 +108,35 @@ def generate_release_note(version, filename):
|
||||||
notable_changes = notable_changes[3:] + ['\n']
|
notable_changes = notable_changes[3:] + ['\n']
|
||||||
else:
|
else:
|
||||||
notable_changes = []
|
notable_changes = []
|
||||||
release_note = os.path.join(doc_dir, 'release-notes', 'release-notes-{0}.md'.format(version))
|
release_note = os.path.join(doc_dir, 'release-notes', filename)
|
||||||
with open(release_note, 'w') as f:
|
with open(release_note, 'w') as f:
|
||||||
f.writelines(notable_changes)
|
f.writelines(notable_changes)
|
||||||
f.writelines(RELEASE_NOTES_CHANGELOG_HEADING)
|
f.writelines(RELEASE_NOTES_CHANGELOG_HEADING)
|
||||||
f.writelines('\n'.join(lines))
|
f.writelines('\n'.join(lines))
|
||||||
# Clear temporary release notes file
|
if clear:
|
||||||
with open(temp_release_note, 'w') as f:
|
# Clear temporary release notes file
|
||||||
f.writelines(TEMP_RELEASE_NOTES_HEADER)
|
with open(temp_release_note, 'w') as f:
|
||||||
|
f.writelines(TEMP_RELEASE_NOTES_HEADER)
|
||||||
|
|
||||||
def main(version, filename):
|
def main(version, prev, clear):
|
||||||
if version != None:
|
if version != None:
|
||||||
generate_release_note(version, filename)
|
generate_release_note(version, prev, clear)
|
||||||
document_authors()
|
document_authors()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('--version')
|
parser.add_argument('--version', help='Upcoming version, without leading v')
|
||||||
|
parser.add_argument('--prev', help='Previous version, with leading v')
|
||||||
|
parser.add_argument('--clear', help='Wipe doc/release-notes.md', action='store_true')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||||
doc_dir = os.path.join(root_dir, 'doc')
|
doc_dir = os.path.join(root_dir, 'doc')
|
||||||
version = None
|
version = None
|
||||||
filename = None
|
prev = None
|
||||||
|
clear = False
|
||||||
if args.version:
|
if args.version:
|
||||||
version = args.version
|
version = args.version
|
||||||
filename = 'release-notes-{0}.md'.format(version)
|
prev = args.prev
|
||||||
main(version, filename)
|
clear = args.clear
|
||||||
|
main(version, prev, clear)
|
||||||
|
|
Loading…
Reference in New Issue