Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.1.13 #138

Merged
merged 533 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
533 commits
Select commit Hold shift + click to select a range
cb5f3d6
rpc: Optimize serialization disk space of dumptxoutset
fjahr Mar 10, 2024
95f2ef9
assumeutxo: Add documentation on dumptxoutset serialization format
fjahr Mar 10, 2024
011114f
assumeutxo: Add test for changed coin size value
fjahr Mar 10, 2024
2fcc30e
rpc: Enhance metadata of the dumptxoutset output
fjahr Apr 22, 2024
4bb8f9a
test: improve robustness of connect_nodes()
furszy May 15, 2024
ebc1bca
[policy] explicitly require non-v3 for CPFP carve out
glozow May 17, 2024
0f131f4
[policy] restrict all v3 transactions to 10kvB
glozow Apr 15, 2024
a89657d
[fuzz] V3_MAX_VSIZE and effective ancestor/descendant size limits
glozow May 20, 2024
0d9ee2c
wallet, tests: Avoid stringop-overflow warning in PollutePubKey
achow101 May 17, 2024
2725e08
windeploy: Renew certificate
achow101 May 22, 2024
fcf63c6
depends: swap cctools-x for llvm-x
fanquake May 6, 2024
405aebc
build: switch to using lld for macOS builds
fanquake May 9, 2024
ee52de1
guix: use GUIX_LD_WRAPPER_DISABLE_RPATH for all HOSTS
fanquake Apr 21, 2022
8074141
guix: remove ZERO_AR_DATE export
fanquake Dec 22, 2023
2864bad
depends: don't use -no_warning_for_no_symbols in macOS qt build
fanquake Mar 21, 2022
93d4c3e
build: add lld into macOS build environment(s)
fanquake May 9, 2024
1f4714f
depends: remove cctools & libtapi
fanquake May 9, 2024
a412362
guix: drop binutils from macOS env
fanquake May 10, 2024
2a147da
doc: Correct pull request prefix for scripts and tools
May 22, 2024
4d22015
net: rpc: return peer's mapped AS in getrawaddrman
brunoerg May 7, 2024
cad98db
test: add coverage for `mapped_as` from `getrawaddrman`
brunoerg May 3, 2024
c3e1be6
depends: Fetch miniupnpc sources from an alternative website
hebasto May 22, 2024
0bfbbeb
Add description for m_test_accept
instagibbs May 20, 2024
9a002f4
Add m_allow_sibling_eviction as separate ATMPArgs flag
instagibbs May 20, 2024
ca03749
[refactor] make some members MemPoolAccept-wide
glozow Aug 3, 2021
9271865
Add sanity checks for various ATMPArgs booleans
instagibbs May 22, 2024
3afd2a1
cpfp carveout is excluded in packages
glozow Nov 3, 2022
a886ff6
[fuzz] Avoid collecting initialization coverage
dergoegge May 22, 2024
58e55f4
doc: Add release notes for #29612
fjahr May 24, 2024
c0495a6
assumeutxo: Deserialize trailing byte instead of Txid
fjahr May 24, 2024
d2dd1c2
lint: add markdown hyperlink checker
willcl-ark May 7, 2024
82d2756
fuzz: Fix wallet_bdb_parser stdlib error matching
May 24, 2024
e04017a
assumeutxo: Add network magic ctor param to SnapshotMetadata
fjahr May 24, 2024
1bb4cae
test: Add coverage for txid coins count check when loading snapshot
fjahr May 24, 2024
d7b8f8b
fuzz: Handle missing BDBRO errors
achow101 May 24, 2024
1e6b31e
increase txorphan harness stability
marcofleon May 28, 2024
6a8de34
scripted-diff: Replace nNextSweep with m_next_sweep
marcofleon May 29, 2024
065a14f
depends: qt 5.15.14
fanquake May 30, 2024
dddb532
build: remove --enable-lcov-branch-coverage
fanquake Mar 8, 2024
bc13af2
clang-tidy: Add `bugprone-move-forwarding-reference` check
hebasto May 30, 2024
20f3118
depends: fix Qt macOS build with Clang 18
fanquake May 2, 2024
c69cec5
depends: consolidate dependency docs
fanquake May 30, 2024
aa8d2dd
doc: JSON-RPC request Content-Type is application/json
luke-jr Apr 23, 2024
b874b47
Merge branch 'bitcoinsync' of github.com:BitgesellOfficial/bitgesell …
janus Jun 6, 2024
43d521d
Fix compilation after syncing to 31st May, 2024
janus Jun 9, 2024
9e59bb5
Fix compilation after syncing to 31st May, 2024
janus Jun 9, 2024
bdd9190
Fix test/key_io_tests.cpp file
janus Jun 14, 2024
d380036
Fix test/txpackage_tests file
janus Jun 17, 2024
67a3496
Update files
janus Jun 23, 2024
41d4b93
Update test/functional
wu-emma Jun 24, 2024
d04915e
Clean up functional/wallet_dump.py file
janus Jun 25, 2024
8043a13
Update rpc/node.cpp file
janus Jun 28, 2024
27c33db
Update files
janus Jul 5, 2024
b5c8414
Add files
janus Jul 5, 2024
40ee4b3
Update Depends
wu-emma Jul 8, 2024
455f706
[policy] make v3 transactions standard
glozow Feb 27, 2024
19a6fbf
[test] wallet uses CURRENT_VERSION which is 2
glozow May 23, 2024
5a1298c
[doc] update bips.md for 431
glozow Jun 2, 2024
92e8e35
build: Fix building `fuzz` binary on on SunOS / illumos
hebasto Jun 2, 2024
c47b438
depends: Update Boost download link
hebasto Jun 3, 2024
ee1f10a
[fuzz] Avoid endless waiting in FuzzedSock::{Wait,WaitMany}
marcofleon May 31, 2024
57faa57
[fuzz] Make peeking through FuzzedSock::Recv fuzzer friendly
dergoegge May 31, 2024
dca28b7
guix: show *_FLAGS variables in pre-build output
fanquake May 28, 2024
c61aab6
refactor: remove unused `CKey::Negate` method
theStack Jun 3, 2024
328175a
Support running individual lint checks
davidgumberg Apr 25, 2024
1a9f171
test: Fix typos and use names args
May 25, 2024
d24ea9a
test: Set mocktime in p2p_disconnect_ban.py to avoid intermittent tes…
Jun 4, 2024
ad12291
doc: fixup deps doc after #30198
fanquake Jun 5, 2024
513931e
build: no-longer allow GCC-10 in C++20 check
fanquake Jun 5, 2024
b64eb09
Reserve hrp memory in Decode and LocateErrors
l0rinc Mar 9, 2024
214225f
Reduce memory copying operations in bech32 encode
l0rinc Mar 9, 2024
f97ce0e
guix: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126
fanquake Jun 5, 2024
d3de8ab
test: fix `keys_to_multisig_script` (P2MS) helper for n/k > 16
theStack Aug 22, 2023
1b06b64
test: add unit test for `keys_to_multisig_script`
theStack Aug 22, 2023
b502d77
test: add `createmultisig` P2MS encoding test for all n (1..20)
theStack Aug 23, 2023
43b9a10
build: re-enable deprecated warning copy
theuni Jun 5, 2024
b505eaf
test: refactor: Rename extra_txn to const empty_extra_txn as it is em…
AngusP May 22, 2024
882e359
test: Add ReceiveWithExtraTransactions Compact Block receive test.
AngusP Jun 4, 2024
75f8e90
refactor: disable self-assign warning for tests
theuni Jun 5, 2024
1307b55
build: warn on self-assignment
theuni Jun 5, 2024
5e0e6b1
net_processing: make MaybePunishNodeFor{Block,Tx} return void
sipa Jun 6, 2024
41fca1e
fuzz: add I2P harness
marcofleon Jun 5, 2024
5eb7d12
util: add VecDeque
sipa Feb 7, 2024
0aaa779
tests: add fuzz tests for VecDeque
sipa May 23, 2024
abd1ffc
ci: Remove no longer needed workaround for GHA Windows images
hebasto Jun 7, 2024
63f433f
ci: Use relative paths in `win64-native` CI job consistently
hebasto Jun 7, 2024
8ddef57
bugfix: Streamline setting reindex option
TheCharlatan May 17, 2024
9571478
validation: Remove needs_init from LoadBlockIndex
TheCharlatan May 17, 2024
b4db946
doc: update and link for JSON-RPC 2.0
pinheadmz Jun 5, 2024
1da947c
bitcoin-cli: use json-rpc 2.0
pinheadmz Jun 6, 2024
e1a9b85
test: use json-rpc 2.0 in all functional tests by default
pinheadmz Jun 6, 2024
fd7722d
test: remove unused variable in interface_rpc.py
pinheadmz Jun 5, 2024
6ac6ce3
minor: remove unnecessary semicolons from RPC content type examples
pinheadmz Jun 7, 2024
f15cd9d
refactor: Add explicit cast to expected_last_page to silence fuzz ISan
Jun 7, 2024
5b8bd75
consensus: Store transaction nVersion as uint32_t
achow101 Jan 25, 2024
613db70
kernel: Add less confusing reindex options
ryanofsky Jun 7, 2024
1b676c3
indexes: Don't wipe indexes again when already reindexing
TheCharlatan May 17, 2024
465a9a8
test: Add functional test for continuing a reindex
TheCharlatan May 23, 2024
3f79a90
blockman: Replace m_reindexing with m_blockfiles_indexed
ryanofsky Jun 7, 2024
284ab8d
refactor: Rename CTransaction::nVersion to version
achow101 Jan 26, 2024
c8682d3
ci: add IPV6 network to ci container
m3dwards Jun 7, 2024
5236325
refactor: performance-for-range-copy in psbt.h
Jun 6, 2024
6c13e68
test: doc: fix units in tx size standardness test (s/vbytes/weight un…
theStack Jun 9, 2024
352876a
build: Remove --enable-gprof
Jun 9, 2024
9cf9734
test: Remove redundant verack check
Jun 9, 2024
d890a01
log: use error level for critical log messages
Jan 11, 2024
055fbc9
tests: add fuzz tests for BitSet
sipa May 23, 2024
e54e15b
util: add BitSet
sipa Jan 22, 2024
a2c6baa
guix: use clang-toolchain-18 for macOS build
fanquake May 2, 2024
4a6a9df
depends: no-longer pass -B to clang in macOS cross-compile
fanquake May 30, 2024
690b196
depends: update install docs for macOS cross compilation
fanquake May 30, 2024
a519dfe
ci: update deps for macOS cross build
fanquake May 30, 2024
b903df2
depends: remove FORCE_USE_SYSTEM_CLANG
fanquake May 30, 2024
dcac93a
depends: remove native LLVM package
fanquake May 30, 2024
e52b2b6
depends: remove no-longer used llvm_* vars from macOS build
fanquake May 30, 2024
4af6571
refactor: rename (macho) ld64 to lld
fanquake Jun 10, 2024
f9f2ffb
doc: add release note for 29091 and 29165
fanquake Jun 10, 2024
0c1b003
PackageV3Checks: Relax assumptions
instagibbs Mar 26, 2024
c01a1c6
test: add coverage for errors for `combinerawtransaction` RPC
brunoerg Jun 10, 2024
0a1524c
utils: add missing include
theuni Jun 11, 2024
e690440
guix: use glibc 2.31
fanquake Apr 27, 2024
e237aa0
ci: move Asan / LSan / USDT job to Github Actions
m3dwards Jun 7, 2024
9b6e159
fuzz: Use std::span in FuzzBufferType
Jun 5, 2024
f4bfa21
Squashed 'src/minisketch/' changes from 3472e2f5ec..eb37a9b8e7
fanquake Jun 12, 2024
54eca1b
doc: archive release notes for v27.1
fanquake Jun 12, 2024
ee3d36e
i2p: log errors properly according to their severity
brunoerg Apr 8, 2024
4a95a99
i2p: fix log when an interruption happens during `Accept`
brunoerg Apr 8, 2024
89950ad
test: cover more errors for `signrawtransactionwithkey` RPC
brunoerg Jun 12, 2024
f766db4
refactor: remove unnecessary AppendWarning helper function
stickies-v Apr 18, 2024
71366fc
move-only: move warnings from common to node
stickies-v Apr 18, 2024
51f4b3c
node: update uiInterface whenever warnings updated
stickies-v May 7, 2024
b8edeeb
introduce and use the generalized `node::Warnings` interface
stickies-v May 7, 2024
a12b9f3
refactor: remove warnings globals
stickies-v May 7, 2024
6510cbf
Squashed 'src/leveldb/' changes from e2f10b4e47..688561cba8
fanquake Jun 13, 2024
577285e
Revert "contrib: macdeploy: monkey-patch gen-sdk to be deterministic"
fanquake Jun 13, 2024
88778f6
Fuzz: pass mempool to CheckPackageMempoolAcceptResult
instagibbs Apr 18, 2024
9823e44
[test] package rbf
glozow Dec 14, 2023
5e60cf1
mempool: Improve logging of replaced transactions
instagibbs Jan 9, 2024
f9cb9c6
Add release note for size 2 package rbf
instagibbs Jun 12, 2024
cdc7c0d
doc: update package RBF comment
instagibbs Apr 26, 2024
076d05d
CheckPackageMempoolAcceptResult: Check package rbf invariants
instagibbs Dec 7, 2023
c3c194e
[policy] package rbf
sdaftuar Dec 14, 2023
9152ad9
doc: rewrite some of the macdeploy docs
fanquake Jun 13, 2024
bac8f05
depends: swap mmacosx-version-min for mmacos-version-min
fanquake Jun 13, 2024
47b1502
ci: enable self-assignment clang-tidy check
theuni Jun 5, 2024
97fc971
refactor: add self-assign checks to classes which violate the clang-t…
theuni Jun 5, 2024
67b52e4
netbase: extend CreateSock() to support creating arbitrary sockets
vasild May 30, 2024
af8c7dc
fuzz: simplify FuzzedSock::m_peek_data
vasild Jun 12, 2024
a2b3a96
fuzz: FuzzedSock::Recv() don't lose bytes from MSG_PEEK read
vasild Jun 12, 2024
3607a61
test: Added test coverage to listsinceblock rpc
kevkevinpal May 30, 2024
2bef20f
test: write functional test results to csv
tdb3 Jun 17, 2024
ec0737e
test: Introduce test types and modify v2 handshake function accordingly
stratospher Jan 30, 2024
d8c62b3
wallet: use CRecipient instead of CTxOut
josibake May 5, 2024
684e29c
move-only: refactor CreateTransactionInternal
josibake May 5, 2024
5761ea7
doc: replace mention of V3 with TRUC
instagibbs Jun 17, 2024
872e31b
ci: remove unused bcc variable from workflow
m3dwards Jun 18, 2024
712bbfe
rename policy/v3_policy.* to policy/truc_policy.*
glozow Jun 11, 2024
c5172cf
upnp: add compatibility for miniupnpc 2.2.8
theuni Jun 13, 2024
427bad8
doc: reword package RBF documentation
instagibbs Jun 17, 2024
47f280d
fuzz: have package_rbf always make small txns
instagibbs Jun 18, 2024
0a93515
rpc: getblocktemplate getTipHash() via Miner interface
Sjors May 30, 2024
0fdff42
rpc: call CreateNewBlock via miner interface
Sjors Jun 10, 2024
a941dce
Always pass options to BlockAssembler constructor
Sjors Jun 10, 2024
a84aead
Introduce Mining interface
Sjors Jun 7, 2024
b814933
rpc: call TestBlockValidity via miner interface
Sjors Jun 10, 2024
e98aff1
rpc: call processNewBlock via miner interface
Sjors May 30, 2024
08f5ac7
rpc: getTransactionsUpdated via miner interface
Sjors May 30, 2024
f1a6536
rpc: minize getTipHash() calls in gbt
Sjors Jun 7, 2024
45b8c03
Validate transaction without inputs
l0rinc Apr 12, 2024
6f2e294
Validate oversized transaction
l0rinc Apr 24, 2024
c67e5e6
Replace hard-coded constant in test
l0rinc Jun 18, 2024
8703add
Use SCRIPT_VERIFY_NONE instead of hard-coded 0 in transaction_tests
l0rinc Apr 12, 2024
35d676a
rpc: call IsInitialBlockDownload via miner interface
Sjors Jun 18, 2024
97cb1c1
Don't use iterator addresses in IteratorComparator
dergoegge Jun 19, 2024
4d97e72
fuzz: Fix wallet_bdb_parser 32-bit unhandled fseek error
Jun 19, 2024
672e890
QA: Expect PACKAGE_NAME rather than constant "Bitcoin Core"
luke-jr Jun 17, 2024
48ee57c
refactor: Move early loadtxoutset checks into ActiveSnapshot
fjahr Jun 18, 2024
1429237
test: Make blockencodings_tests deterministic
AngusP Jun 12, 2024
b530ef4
contrib: add R(UN)PATH check to ELF symbol-check
fanquake Jun 4, 2024
d0550cd
add node interface method for getting maximum mempool size
theStack Jun 20, 2024
1660e69
gui: show maximum mempool size in information window
theStack Jun 20, 2024
65fb4a1
ci: add option for running tests without volume
m3dwards Jun 19, 2024
8d7ec86
refactor: remove extraneous lock annotations from function definitions
theuni Jun 20, 2024
aea2424
ci: clarify Cirrus self-hosted workers setup
Sjors Jun 21, 2024
b584f63
assumeutxo: Check snapshot base block is not marked invalid
fjahr Jun 18, 2024
63bcc70
test: Remove unnecessary restart in assumeutxo test
fjahr Jun 18, 2024
dd42e03
randomenv: use ifdef over if
fanquake Apr 4, 2024
264e927
zmq: use #ifdef ENABLE_ZMQ
fanquake Apr 3, 2024
f52c89f
build: Suppress warnings from boost and capnproto in multiprocess code
ryanofsky Jun 11, 2024
d329f90
refactor: use #ifdef HAVE_SOCKADDR_UN
fanquake Jun 10, 2024
b1894aa
build: add -Wundef
fanquake Apr 3, 2024
a45ec31
refactor, blockstorage: Generalize GetFirstStoredBlock
fjahr Mar 17, 2024
0ca0e50
test: Check that disconnection happens when >4095 garbage bytes is sent
stratospher Feb 13, 2024
5bbb82e
test: Check that disconnection happens when wrong garbage terminator …
stratospher Feb 13, 2024
408800e
test: Check that disconnection happens when garbage sent/received are…
stratospher Feb 13, 2024
88b7fe8
test: Check that disconnection happens when AAD isn't filled
stratospher Feb 14, 2024
68cfbfd
test: Check that non empty version packet is ignored and no disconnec…
stratospher Feb 13, 2024
ff372c1
ci: increase available ccache size to 300MB
m3dwards Jun 21, 2024
6195aae
wallet: notify when preset + automatic inputs exceed max weight
furszy Jun 19, 2024
9245213
rpc: Make pruneheight also reflect undo data presence
fjahr Mar 17, 2024
f563b83
doc: Add note to getblockfrompeer on missing undo data
fjahr Mar 17, 2024
cafb5f6
build: Drop redundant `sys/sysctl.h` header check
hebasto Jun 24, 2024
411aef6
Squashed 'src/secp256k1/' changes from 06bff6dec8..4af241b320
fanquake Jun 25, 2024
a273890
depends: switch libevent to CMake
theuni Apr 19, 2023
abc08c7
depends: update doc in Qt pwd patch
fanquake Jun 25, 2024
d10bfd3
contrib: Fixup verify-binaries OS platform parsing
BenWestgate May 23, 2024
4d41d33
ci: test-each-commit merge base optional
Sjors Jun 25, 2024
187ea2b
ci: forks can opt-out of CI branch push (Cirrus only)
Sjors Jan 18, 2024
706e895
rest: don't copy data when sending binary response
romanz Jun 22, 2024
90d44e7
test: add coverage for `node` field of `getaddednodeinfo` RPC
brunoerg Jun 25, 2024
2ed43f2
test: change comments to `self.log.info` for `test_addnode_getaddedno…
brunoerg Jun 26, 2024
28e1c1e
Add missing include for mining interface
Sjors Jun 25, 2024
86ebe43
refactor: testBlockValidity make out argument last
Sjors Jun 25, 2024
eb9c592
build: Bump clang minimum supported version to 16
Jun 10, 2024
b94f8e3
fuzz: Clarify Apple-Clang-16 workaround
Jun 12, 2024
853b374
refactor: Remove no longer needed clang-15 workaround for std::span
Jun 26, 2024
0daf449
kernel: remove mempool_persist.cpp
theuni Jun 26, 2024
43f856f
Change MigrateLegacyToDescriptor to reopen wallet as BERKELEY_RO
achow101 Jan 5, 2024
9ecf2e8
mempool: move LoadMempool/DumpMempool to node
theuni Jun 26, 2024
3c3e76a
Drop unneeded lock from createNewBlock
Sjors Jun 26, 2024
c180e8c
refactor: use CHECK_NONFATAL to avoid single-use symbol
Sjors Jun 26, 2024
42cbf2d
Have testBlockValidity hold cs_main instead of caller
Sjors Jun 26, 2024
08ceca4
util: add perm string helper functions
willcl-ark Jun 27, 2024
0b84337
init: add option for rpccookie permissions
willcl-ark Jan 8, 2024
4a461be
test: add rpccookieperms test
willcl-ark Jan 9, 2024
82e0022
doc: detail -rpccookieperms option
willcl-ark Apr 22, 2024
63abb56
wallet: use LogTrace for walletdb log messages at trace level
ajtowns May 2, 2024
a6d255b
doc: Fix outdated dev comment about logging
Jun 28, 2024
9031387
scripted-diff: Log parameter interaction not thrice
Jun 28, 2024
db2ac66
test: p2p: check that connecting to ourself leads to disconnect
theStack Jun 28, 2024
64cf766
p2p: Start downloading historical blocks from common ancestor
mzumsande Jun 10, 2024
2302098
test: Added coverage to Block not found error using gettxoutsetinfo
kevkevinpal Jun 26, 2024
9e35ff2
Moved the repeated -printpriority fetching out of AddToBlock
l0rinc Jun 30, 2024
4621522
Update files
janus Jul 26, 2024
6103478
Update test/functional
wu-emma Aug 4, 2024
8e03ec1
Update README.md
wu-emma Aug 4, 2024
138cd95
Update version
wu-emma Aug 4, 2024
b841bf4
Fix functional/feature_assumeutxo.py file
janus Aug 4, 2024
455292a
functional/rpc_psbt.py fix
janus Aug 6, 2024
685b2ed
Create functional/p2p_v2_misbehaving.py
janus Aug 8, 2024
b2b18d5
Update test/functional
wu-emma Aug 18, 2024
bd3d205
Update functional/wallet_resendwallettransactions.py file
janus Aug 15, 2024
3af2932
Update mocks/signer.py
janus Aug 16, 2024
b38353a
Update mocks/invalid_signer.py
janus Aug 16, 2024
2f9dea4
Fix functional/wallet_signer.py file
janus Aug 16, 2024
e5d9e95
Update files
janus Aug 16, 2024
425d055
add windows build changes
Aug 26, 2024
77d9ab3
Merge pull request #137 from BitgesellOfficial/release-0.1.13-winpatch
wu-emma Aug 26, 2024
625d8a1
fix minor typo in README.md
naftalimurgor Jul 20, 2024
2f7d635
Merge branch 'master' into release-0.1.13
wu-emma Aug 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
249 changes: 163 additions & 86 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,80 @@
env:
### cirrus config
CIRRUS_CLONE_DEPTH: 1
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
MAKEJOBS: "-j10"
TEST_RUNNER_PORT_MIN: "14000" # Must be larger than 12321, which is used for the http cache. See https://cirrus-ci.org/guide/writing-tasks/#http-cache
CI_FAILFAST_TEST_LEAVE_DANGLING: "1" # Cirrus CI does not care about dangling processes and setting this variable avoids killing the CI script itself on error
CCACHE_MAXSIZE: "200M"
CCACHE_DIR: "/tmp/ccache_dir"
CCACHE_NOHASHDIR: "1" # Debug info might contain a stale path if the build dir changes, but this is fine
### compiler options
HOST:
WRAPPER_CMD:
# Specific warnings can be disabled with -Wno-error=foo.
# -pedantic-errors is not equivalent to -Werror=pedantic and thus not implied by -Werror according to the GCC manual.
WERROR_CFLAGS: -Werror -pedantic-errors
MAKEFLAGS: -j4
BUILD: check
### secp256k1 config
ECMULTWINDOW: 15
ECMULTGENKB: 22
ASM: no
WIDEMUL: auto
WITH_VALGRIND: yes
EXTRAFLAGS:
### secp256k1 modules
EXPERIMENTAL: no
ECDH: no
RECOVERY: no
SCHNORRSIG: no
ELLSWIFT: no
### test options
SECP256K1_TEST_ITERS:
BENCH: yes
SECP256K1_BENCH_ITERS: 2
CTIMETESTS: yes
# Compile and run the tests
EXAMPLES: yes

# A self-hosted machine(s) can be used via Cirrus CI. It can be configured with
# multiple users to run tasks in parallel. No sudo permission is required.
#
# https://cirrus-ci.org/guide/persistent-workers/
#
# It is possible to select a specific persistent worker by label. Refer to the
# Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
#
# The following specific types should exist, with the following requirements:
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
#
# CI jobs for the latter configuration can be run on x86_64 hardware
# by installing qemu-user-static, which works out of the box with
# podman or docker. Background: https://stackoverflow.com/a/72890225/313633
#
# The above machine types are matched to each task by their label. Refer to the
# Cirrus CI docs for more details.
#
# Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
# Specifically,
# When a contributor maintains a fork of the repo, any pull request they make
# to their own fork, or to the main repository, will trigger two CI runs:
# one for the branch push and one for the pull request.
# This can be avoided by setting SKIP_BRANCH_PUSH=true as a custom env variable
# in Cirrus repository settings, accessible from
# https://cirrus-ci.com/github/my-organization/my-repository
#
# On machines that are persisted between CI jobs, RESTART_CI_DOCKER_BEFORE_RUN=1
# ensures that previous containers and artifacts are cleared before each run.
# This requires installing Podman instead of Docker.
#
# Futhermore:
# - apt-get is required due to PACKAGE_MANAGER_INSTALL
# - podman-docker-4.1+ is required due to the use of `podman` when
# RESTART_CI_DOCKER_BEFORE_RUN is set and 4.1+ due to the bugfix in 4.1
# - podman-docker-4.1+ is required due to the bugfix in 4.1
# (https://github.com/bitcoin/bitcoin/pull/21652#issuecomment-1657098200)
# - The ./ci/ depedencies (with cirrus-cli) should be installed:
# - The ./ci/ dependencies (with cirrus-cli) should be installed. One-liner example
# for a single user setup with sudo permission:
#
# ```
# apt update && apt install git screen python3 bash podman-docker curl -y && curl -L -o cirrus "https://github.com/cirruslabs/cirrus-cli/releases/latest/download/cirrus-linux-$(dpkg --print-architecture)" && mv cirrus /usr/local/bin/cirrus && chmod +x /usr/local/bin/cirrus
# ```
#
# - There are no strict requirements on the hardware, because having less CPUs
# runs the same CI script (maybe slower). To avoid rare and intermittent OOM
# due to short memory usage spikes, it is recommended to add (and persist)
# swap:
# - There are no strict requirements on the hardware. Having fewer CPU threads
# than recommended merely causes the CI script to run slower.
# To avoid rare and intermittent OOM due to short memory usage spikes,
# it is recommended to add (and persist) swap:
#
# ```
# fallocate -l 16G /swapfile_ci && chmod 600 /swapfile_ci && mkswap /swapfile_ci && swapon /swapfile_ci && ( echo '/swapfile_ci none swap sw 0 0' | tee -a /etc/fstab )
Expand All @@ -40,16 +85,13 @@ env:
# ```
# RESTART_CI_DOCKER_BEFORE_RUN=1 screen cirrus worker run --labels type=todo_fill_in_type --token todo_fill_in_token
# ```
#
# The following specific types should exist, with the following requirements:
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
# - noble: For a machine running the Linux kernel shipped with exaclty Ubuntu Noble 24.04. The machine is recommended to have 4 CPUs and 16 GB of memory.
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.

# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
filter_template: &FILTER_TEMPLATE
skip: $CIRRUS_REPO_FULL_NAME == "BGL-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution
# Allow forks to specify SKIP_BRANCH_PUSH=true and skip CI runs when a branch is pushed,
# but still run CI when a PR is created.
# https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution
skip: $SKIP_BRANCH_PUSH == "true" && $CIRRUS_PR == ""
stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks

base_template: &BASE_TEMPLATE
Expand All @@ -58,43 +100,54 @@ base_template: &BASE_TEMPLATE
# Unconditionally install git (used in fingerprint_script).
- git --version || bash -c "$PACKAGE_MANAGER_INSTALL git"
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
- git fetch --depth=1 $CIRRUS_REPO_CLONE_URL "pull/${CIRRUS_PR}/merge"
- git checkout FETCH_HEAD # Use merged changes to detect silent merge conflicts
# Also, the merge commit is used to lint COMMIT_RANGE="HEAD~..HEAD"

main_template: &MAIN_TEMPLATE
timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out
ci_script:
- ./ci/test_run_all.sh
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
- git config --global user.email "ci@ci.ci"
- git config --global user.name "ci"
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts

global_task_template: &GLOBAL_TASK_TEMPLATE
<< : *BASE_TEMPLATE
<< : *MAIN_TEMPLATE
env_matrix_snippet: &ENV_MATRIX_VALGRIND
- env:
ENABLE_FIELDS: "7,32,58"
- env:
BUILD: distcheck
- env:
EXEC_CMD: valgrind --error-exitcode=42
TESTRUNS: 1
BUILD:

compute_credits_template: &CREDITS_TEMPLATE
# https://cirrus-ci.org/pricing/#compute-credits
# Only use credits for pull requests to the main repo
use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'BGL/BGL' && $CIRRUS_PR != ""
env_matrix_snippet: &ENV_MATRIX_SAN_VALGRIND
- env:
ENABLE_FIELDS: "11,64,37"
- env:
BUILD: distcheck
- env:
EXEC_CMD: valgrind --error-exitcode=42
TESTRUNS: 1
BUILD:
- env:
CXXFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
BENCH: no

task:
name: 'lint'
<< : *BASE_TEMPLATE
container:
image: debian:bookworm
cpu: 1
memory: 1G
# For faster CI feedback, immediately schedule the linters
<< : *CREDITS_TEMPLATE
test_runner_cache:
folder: "/lint_test_runner"
fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-parse HEAD:test/lint/test_runner)
python_cache:
folder: "/python_build"
fingerprint_script: cat .python-version /etc/os-release
unshallow_script:
- git fetch --unshallow --no-tags
lint_script:
- ./ci/lint_run_all.sh
dockerfile: ci/linux-debian.Dockerfile
memory: 2G
cpu: 4
matrix:
<< : *ENV_MATRIX_SAN_VALGRIND
matrix:
- env:
CXX: g++
- env:
CXX: clang++ -gdwarf-4
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: 'tidy'
Expand All @@ -103,16 +156,54 @@ task:
labels:
type: medium
env:
FILE_ENV: "./ci/test/00_setup_env_native_tidy.sh"
HOST: i686-linux-gnu
matrix:
<< : *ENV_MATRIX_VALGRIND
matrix:
- env:
CXX: i686-linux-gnu-g++
- env:
CXX: clang++ --target=i686-linux-gnu -gdwarf-4
CXXFLAGS: -g -O2 -isystem /usr/i686-linux-gnu/include -isystem /usr/i686-linux-gnu/include/c++/10/i686-linux-gnu
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: 'ARM, unit tests, no functional tests'
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
type: arm64 # Use arm64 worker to sidestep qemu and avoid a slow CI: https://github.com/bitcoin/bitcoin/pull/28087#issuecomment-1649399453
name: "arm64: macOS Monterey"
macos_instance:
image: ghcr.io/cirruslabs/macos-monterey-base:latest
env:
FILE_ENV: "./ci/test/00_setup_env_arm.sh"
# Cirrus gives us a fixed number of 4 virtual CPUs.
MAKEFLAGS: -j5
matrix:
- env:
CXX: g++-11
# Homebrew's gcc for arm64 has no libubsan.
matrix:
- env:
ENABLE_FIELDS: 28
- env:
BUILD: distcheck
- env:
CXX: clang++
matrix:
- env:
ENABLE_FIELDS: 28
- env:
BUILD: distcheck
- env:
CXXFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
BENCH: no
brew_script:
- brew update
- brew install automake libtool gcc@11
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: 'Win64, unit tests, no gui tests, no functional tests'
Expand All @@ -121,7 +212,13 @@ task:
labels:
type: small
env:
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
EXEC_CMD: qemu-s390x
HOST: s390x-linux-gnu
BUILD:
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: '32-bit CentOS, dash, gui'
Expand Down Expand Up @@ -160,19 +257,6 @@ task:
env:
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"

task:
name: 'ASan + LSan + UBSan + integer, no depends, USDT'
enable_bpfcc_script:
# In the image build step, no external environment variables are available,
# so any settings will need to be written to the settings env file:
- sed -i "s|\${CIRRUS_CI}|true|g" ./ci/test/00_setup_env_native_asan.sh
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
type: noble # Must use this specific worker (needed for USDT functional tests)
env:
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"

task:
name: 'fuzzer,address,undefined,integer, no depends'
<< : *GLOBAL_TASK_TEMPLATE
Expand All @@ -192,20 +276,13 @@ task:
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"

task:
name: "ARM64: Linux (Debian stable)"
name: 'no wallet, libBGLkernel'
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
type: arm64
type: small
env:
ECDH: yes
RECOVERY: yes
SCHNORRSIG: yes
ELLSWIFT: yes
matrix:
# Currently only gcc-snapshot, the other compilers are tested on GHA with QEMU
- env: { CC: 'gcc-snapshot' }
<< : *LINUX_ARM64_CONTAINER
<< : *CAT_LOGS
FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libBGLkernel.sh"

task:
name: 'macOS-cross, gui, no tests'
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install-homebrew-valgrind/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ runs:
cat valgrind_fingerprint
shell: bash
- uses: actions/cache@v3
- uses: actions/cache@v4
id: cache
with:
path: ${{ env.CI_HOMEBREW_CELLAR_VALGRIND }}
Expand Down
5 changes: 5 additions & 0 deletions .github/actions/run-in-docker-action/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ runs:
load: true
cache-from: type=gha

- # Workaround for https://github.com/google/sanitizers/issues/1614 .
# The underlying issue has been fixed in clang 18.1.3.
run: sudo sysctl -w vm.mmap_rnd_bits=28
shell: bash

- # Tell Docker to pass environment variables in `env` into the container.
run: >
docker run \
Expand Down
Loading