Support for type hints was introduced in Python 3.5. Type hints make it easier to read and review code in my opinion. Also an IDE may discover a potential bug sooner. Yet, as PEP 484 says: "It should also be emphasized that Python will remain a dynamically typed language, and the authors have no desire to ever make type hints mandatory, even by convention."
Mypy is used in lint-python.sh to do the type checking. The package is standard so there is little chance that it will be abandoned. Mypy checks that type hints in source code are correct when they are not, it fails with an error.
Useful resources:
* https://docs.python.org/3.5/library/typing.html
* https://www.python.org/dev/peps/pep-0484/
autoconf and automake changes to support multiprocess gui/node/wallet execution.
This adds a new --enable-multiprocess flag, and build configuration code to
detect libraries needed for multiprocess support. The --enable-multiprocess
flag builds new bitcoin-node and bitcoin-gui executables, which are updated in
https://github.com/bitcoin/bitcoin/pull/10102 to communicate across processes.
But for now they are functionally equivalent to existing bitcoind and
bitcoin-qt executables.
autotools and automake changes to support multiprocess execution.
This adds a new --enable-multiprocess flag, and build configuration code to
detect libraries needed for multiprocess support. The --enable-multiprocess
flag builds new bitcoin-node and bitcoin-gui executables, which are updated in
https://github.com/bitcoin/bitcoin/pull/10102 to communicate across processes.
But for now they are functionally equivalent to existing bitcoind and
bitcoin-qt executables.
77ef48d532 gitignore: ignore fuzz binaries, remove test_bitcoin_fuzzy (Jon Atack)
Pull request description:
The fuzzing gitignores haven't been updated since a4153e2 in 2016 that added an initial simple fuzzing framework.
This commit:
- removes `src/test/test_bitcoin_fuzzy` which is no longer used in favor of `src/test/fuzz`
- ignores the `src/test/fuzz` directory, then un-ignores files in it with an extension, to de-clutter the git status from all the generated binary files.
Co-authored-by: Karl-Johan Alm <karljohan-alm@garage.co.jp>
ACKs for top commit:
practicalswift:
ACK 77ef48d532
MarcoFalke:
ACK 77ef48d532
Tree-SHA512: 1fef4fbe88ded1ecf039205ace0da2abbaabcaae6ac6674eb29f84ae2f2fc560c1341e75e664cc2e243aca5767253756dba73b90ef32c7dd07c7c638abe6daf0
The fuzzing gitignores haven't been updated since a4153e2
in 2016 that added an initial simple fuzzing framework.
This commit:
- removes `src/test/test_bitcoin_fuzzy` which is no longer
used in favor of `src/test/fuzz`
- ignores the src/test/fuzz directory, then un-ignores any
files in it with an extension
Co-authored-by: Karl-Johan Alm <karljohan-alm@garage.co.jp>
c84ff23c6d build: ignore macOS make deploy artefacts & add them to clean-local (fanquake)
Pull request description:
ACKs for top commit:
hebasto:
ACK c84ff23c6d, tested on Linux Mint 19.2:
dongcarl:
ACK c84ff23c6d
Tree-SHA512: 5a6525a5e433a7279807cc02d3f47bb7f4bd5da8142a945b21d3bfa71938cac823569b34b071e21525a817a187fb02a562bb1c5a9761e2019a2b0900a51a8315
This directory is automatically created by the build process (in the
build target directory, see #16588) and doesn't need to be in the
repository nor in the tarballs.
Move associated ignore directive to top-level `.gitignore` file.
Opening Bitcoin with Qt Creator via the Makefile.am generates a Makefile.am.user. Would be handy to have this file ignored. Looking around I can see this file has snuck into a few downstream projects. I do personally find myself editing commits to remove this file when I've not been paying attention. There's got to have been a few PRs with this file accidentally attached.
This commit adds wallet-tool, a tool for creating and interacting with
wallet files. Original implementation was by Jonas Schnelli
<dev@jonasschnelli.ch> with modifications by John Newbery
<john@johnnewbery.com>
MSVC files were provided by Chun Kuan Lee <ken2812221@gmail.com>:
build: Add MSVC project files for bitcoin-wallet-tool
The functional tests and util tests both require a config file that is
generated by ./configure. This commit merges those two config
files into a single configuration file that can be shared by both tests.
The config from config.ini is put into a Namespace object to maintain
the interface with bctest.py. A future commit could change this
interface to use a dictionary instead of a namespace.
d80e3cb Support gathering of code coverage data for RPC tests (dexX7)
e3b5e6c Run extended BitcoinJ tests for coverage based on config (dexX7)
45d4ff0 Add config option to enable extended RPC tests for code coverage (dexX7)
8e3a27b Require Python for RPC tests, when using lcov (dexX7)
d425877 Remove coverage and test related files, when cleaning up (dexX7)
4d2a926 Ignore coverage data related and temporary test files (dexX7)
No need to waste startup time building something that can be done
at compile time.
This also resolves a clang++ warning originally reported in #4714,
univalue/univalue_write.cpp:33:12: warning: array subscript is of type 'char
escapes['"'] = "\\"";
^~~~
etc.
This is a simple utility that provides command line manipulation of
a hex-encoded TX. The utility takes a hex string on the command line
as input, performs zero or more mutations, and outputs a hex string
to standard output.
This utility is also an intentional exercise of the "bitcoin library"
concept. It is designed to require minimal libraries, and works
entirely without need for any RPC or P2P communication.
See "bitcoin-tx --help" for command and options summary.
Prior to this change, `git status` would report untracked files of the
following sort if run during a build:
?? src/rpcprotocol.o-e628def3
These files should be explicitly ignored not only because they are a
nuisance, but given that they appear and disappear quickly, they may be
inadvertently added to the index even if one has been careful to check
for untracked files with `git status` prior to a `git add .`.