Skip to content

Commit c4fad7f

Browse files
committed
Merge branch 'develop' of https://github.com/stacks-network/stacks-core into chore/remove-affirmation-map-from-chainscoordinator
2 parents 9cad386 + 6a2f682 commit c4fad7f

File tree

129 files changed

+8337
-3119
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+8337
-3119
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,3 @@
2020
- [ ] Changelog is updated
2121
- [ ] Required documentation changes (e.g., `docs/rpc/openapi.yaml` and `rpc-endpoints.md` for v2 endpoints, `event-dispatcher.md` for new events)
2222
- [ ] New clarity functions have corresponding PR in `clarity-benchmarking` repo
23-
- [ ] New integration test(s) added to `bitcoin-tests.yml`

.github/workflows/bitcoin-tests.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ jobs:
5858
exclude:
5959
# The following tests are excluded from CI runs. Some of these may be
6060
# worth investigating adding back into the CI
61-
- test-name: tests::bitcoin_regtest::bitcoind_integration_test_segwit
6261
- test-name: tests::nakamoto_integrations::consensus_hash_event_dispatcher
6362
- test-name: tests::neon_integrations::atlas_integration_test
6463
- test-name: tests::neon_integrations::atlas_stress_integration_test
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: Cargo Hack Check
2+
3+
on:
4+
workflow_call:
5+
6+
env:
7+
RUST_BACKTRACE: full
8+
9+
concurrency:
10+
group: cargo-hack-check-${{ github.head_ref || github.ref || github.run_id }}
11+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
12+
13+
jobs:
14+
# Setup job to prepare common dependencies
15+
setup:
16+
name: Setup
17+
runs-on: ubuntu-latest
18+
outputs:
19+
rust-toolchain: ${{ steps.toolchain.outputs.rust-toolchain }}
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
23+
with:
24+
persist-credentials: false
25+
26+
- name: Get Rust toolchain
27+
id: toolchain
28+
run: echo "rust-toolchain=$(cat ./rust-toolchain)" >> $GITHUB_OUTPUT
29+
30+
# Native targets (Windows/Linux)
31+
native-targets:
32+
name: All Crates (Windows/Linux)
33+
runs-on: ubuntu-latest
34+
needs: setup
35+
steps:
36+
- name: Checkout
37+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
38+
with:
39+
persist-credentials: false
40+
41+
- name: Setup Rust with Cache
42+
uses: actions-rust-lang/setup-rust-toolchain@11df97af8e8102fd60b60a77dfbf58d40cd843b8 # v1.10.1
43+
with:
44+
toolchain: ${{ needs.setup.outputs.rust-toolchain }}
45+
target: x86_64-pc-windows-gnu,x86_64-unknown-linux-gnu
46+
cache: true
47+
cache-key: cargo-hack-native-${{ needs.setup.outputs.rust-toolchain }}-${{ hashFiles('**/Cargo.lock') }}
48+
49+
- name: Install cargo-hack
50+
uses: taiki-e/install-action@2383334cf567d78771fc7d89b6b3802ef1412cf6 # v2.56.8
51+
with:
52+
tool: cargo-hack
53+
54+
- name: Install Windows cross-compilation tools
55+
run: |
56+
sudo apt-get update
57+
sudo apt-get install -y gcc-mingw-w64-x86-64
58+
59+
- name: Run cargo hack check
60+
run: |
61+
cargo hack check \
62+
--all \
63+
--each-feature \
64+
--no-dev-deps \
65+
--exclude-features=wasm-deterministic,wasm-web \
66+
--target x86_64-pc-windows-gnu \
67+
--target x86_64-unknown-linux-gnu
68+
69+
# WASM targets - separate cache since dependencies differ
70+
wasm-targets:
71+
name: ${{ matrix.name }}
72+
runs-on: ubuntu-latest
73+
needs: setup
74+
strategy:
75+
fail-fast: false
76+
matrix:
77+
include:
78+
- name: "Clarity & Stacks-Common WASM Web"
79+
command: |
80+
cargo hack check \
81+
-p clarity-serialization \
82+
-p stacks-common \
83+
--each-feature \
84+
--no-dev-deps \
85+
--exclude-features=default,rusqlite,ctrlc-handler,wasm-deterministic \
86+
--features=wasm-web
87+
88+
- name: "Clarity & Stacks-Common WASM Deterministic"
89+
command: |
90+
cargo hack check \
91+
-p clarity-serialization \
92+
-p stacks-common \
93+
--each-feature \
94+
--no-dev-deps \
95+
--include-features=wasm-deterministic,slog_json \
96+
--features=wasm-deterministic
97+
98+
steps:
99+
- name: Checkout
100+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
101+
with:
102+
persist-credentials: false
103+
104+
- name: Setup Rust with Cache
105+
uses: actions-rust-lang/setup-rust-toolchain@11df97af8e8102fd60b60a77dfbf58d40cd843b8 # v1.10.1
106+
with:
107+
toolchain: ${{ needs.setup.outputs.rust-toolchain }}
108+
target: wasm32-unknown-unknown
109+
cache: true
110+
cache-key: cargo-hack-wasm-${{ matrix.name }}-${{ needs.setup.outputs.rust-toolchain }}-${{ hashFiles('**/Cargo.lock') }}
111+
112+
- name: Install cargo-hack
113+
uses: taiki-e/install-action@2383334cf567d78771fc7d89b6b3802ef1412cf6 # v2.56.8
114+
with:
115+
tool: cargo-hack
116+
117+
- name: Run cargo hack check
118+
run: ${{ matrix.command }}
119+
120+
fuzz-targets:
121+
name: Fuzz targets (nightly)
122+
runs-on: ubuntu-latest
123+
steps:
124+
- name: Checkout
125+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
126+
with:
127+
persist-credentials: false
128+
129+
- name: Install Rust nightly toolchain
130+
uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 # v1.13.0
131+
with:
132+
toolchain: nightly
133+
134+
- name: Check fuzz targets
135+
run: |
136+
cargo +nightly check \
137+
--manifest-path clarity/fuzz/Cargo.toml \
138+
--bins \
139+
--locked

.github/workflows/ci.yml

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ jobs:
9393
needs:
9494
- rustfmt
9595
- check-release
96-
secrets: inherit
96+
secrets: inherit
9797
uses: ./.github/workflows/github-release.yml
9898
with:
9999
node_tag: ${{ needs.check-release.outputs.node_tag }}
@@ -145,6 +145,27 @@ jobs:
145145
- check-release
146146
uses: ./.github/workflows/stacks-core-tests.yml
147147

148+
## Validate constants dumped by stacks-inspect
149+
##
150+
## Runs when:
151+
## - it is a node or signer-only release run
152+
## or any of:
153+
## - this workflow is called manually
154+
## - PR is opened
155+
## - PR added to merge queue
156+
constants-check:
157+
if: |
158+
needs.check-release.outputs.is_node_release == 'true' ||
159+
needs.check-release.outputs.is_signer_release == 'true' ||
160+
github.event_name == 'workflow_dispatch' ||
161+
github.event_name == 'pull_request' ||
162+
github.event_name == 'merge_group'
163+
name: Constants Check
164+
needs:
165+
- rustfmt
166+
- check-release
167+
uses: ./.github/workflows/constants-check.yml
168+
148169
## Checks to run on built binaries
149170
##
150171
## Runs when:
@@ -153,18 +174,18 @@ jobs:
153174
## - this workflow is called manually
154175
## - PR is opened
155176
## - PR added to merge queue
156-
stacks-core-build-tests:
177+
cargo-hack-check:
157178
if: |
158179
needs.check-release.outputs.is_node_release == 'true' ||
159180
needs.check-release.outputs.is_signer_release == 'true' ||
160181
github.event_name == 'workflow_dispatch' ||
161182
github.event_name == 'pull_request' ||
162183
github.event_name == 'merge_group'
163-
name: Stacks Core Build Tests
184+
name: Cargo Hack Check
164185
needs:
165186
- rustfmt
166187
- check-release
167-
uses: ./.github/workflows/core-build-tests.yml
188+
uses: ./.github/workflows/cargo-hack-check.yml
168189

169190
## Checks to run on built binaries
170191
##

.github/workflows/core-build-tests.yml renamed to .github/workflows/constants-check.yml

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
name: Core build tests
1+
name: Constants Check
22

33
# Only run when:
44
# - PRs are (re)opened against develop branch
55
on:
66
workflow_call:
7-
7+
88
jobs:
99
check-consts:
1010
name: Check the constants from stacks-inspect
@@ -26,27 +26,6 @@ jobs:
2626
with:
2727
toolchain: ${{ env.RUST_TOOLCHAIN }}
2828

29-
## run cargo check steps
30-
- name: Cargo Check
31-
id: cargo_check
32-
run: |
33-
cargo check
34-
35-
- name: Cargo Check (monitoring_prom)
36-
id: cargo_check_prom
37-
run: |
38-
cargo check --features monitoring_prom
39-
40-
- name: Cargo Check (clarity)
41-
id: cargo_check_clarity
42-
run: |
43-
cargo check -p clarity --no-default-features
44-
45-
- name: Cargo Check (stacks-common)
46-
id: cargo_check_stacks-common
47-
run: |
48-
cargo check -p stacks-common --no-default-features
49-
5029
- name: Dump constants JSON
5130
id: consts-dump
5231
run: |

.github/workflows/github-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ jobs:
9191
- arch: macos # excludes macos-armv7
9292
cpu: armv7
9393
- arch: macos # excludes macos-x64
94-
cpu: x86_64
94+
cpu: x86-64
9595
steps:
9696
- name: Build Binary (${{ matrix.arch }}_${{ matrix.cpu }})
9797
uses: stacks-network/actions/stacks-core/release/create-source-binary@main

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ and this project adheres to the versioning scheme outlined in the [README.md](RE
77

88
## Unreleased
99

10+
### Added
11+
12+
- When determining a global transaction replay set, the state evaluator now uses a longest-common-prefix algorithm to find a replay set in the case where a single replay set has less than 70% of signer weight.
13+
14+
## [3.2.0.0.1]
15+
### Added
16+
17+
- Adds node-config-docsgen to automatically create config documentation (#6227)
18+
1019
### Fixed
1120

1221
- Fixed a typo in the metrics_identifier route from `/v2/stackedb/:principal/:contract_name/replicas` to `/v2/stackerdb/:principal/:contract_name/replicas`. Note: This may be a breaking change for systems relying on the incorrect route. Please update any metrics tools accordingly.

0 commit comments

Comments
 (0)