Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
b40b453
feat: implement new post-condition features
brice-stacks Feb 10, 2026
4acc12d
chore: add changelog entry
brice-stacks Feb 10, 2026
b1af687
chore: add SIP number now that it is assigned
brice-stacks Feb 10, 2026
f32f008
Merge branch 'develop' into feat/34-post-conditions
brice-stacks Feb 14, 2026
97c6f16
Make lookup_variable return ValueRefd and remove one unnecessary clone
jacinta-stacks Feb 18, 2026
b6eba05
docs: add SIP-040 mention in changelog
brice-stacks Feb 18, 2026
162dbeb
Merge branch 'develop' into feat/34-post-conditions
brice-stacks Feb 18, 2026
ae992e1
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Feb 20, 2026
12f2e62
Do not emit an event in EventDispatcher or during replay/simulate blo…
jacinta-stacks Feb 23, 2026
bed54f5
Merge branch 'develop' into feat/34-post-conditions
brice-stacks Feb 23, 2026
6c660ab
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Feb 23, 2026
b0dd645
comprehensive miner and signer configuration reference for operators
simone-stacks Feb 25, 2026
45a7e56
refactor: rename `supports_post_condition_enhancements`
brice-stacks Feb 25, 2026
9c5e778
refactor: move epoch checks to `process_transaction_precheck`
brice-stacks Feb 25, 2026
c3abfe8
test: add integration test for SIP-040 PCs
brice-stacks Feb 25, 2026
28e0246
test: add rstest and proptests for sip040 PCs
brice-stacks Feb 25, 2026
9da7d1d
add mock miner info
simone-stacks Feb 26, 2026
14d9c27
disable at-block in 3.4
francesco-stacks Feb 26, 2026
f8bded3
fix defaults, update follower/mocknet configs, add follower guide
simone-stacks Feb 26, 2026
e518373
use explicit TOML field names in config references per review
simone-stacks Feb 26, 2026
1e39a1d
clarify reorg RBF reasoning, add dry_run and replay_tx warnings in si…
simone-stacks Feb 26, 2026
6d3736a
Merge branch 'develop' into docs/miner-signer-settings
simone-stacks Feb 26, 2026
d296445
align tip param and call-read schema with runtime
simone-stacks Feb 27, 2026
8e25b90
fix unit tests for at-block
francesco-stacks Feb 27, 2026
7388979
Merge branch 'develop' into feat/remove-at-block
francesco-stacks Feb 27, 2026
b80cae9
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Feb 27, 2026
b38eb75
CRC: expand test and remove redundant committed bool from events result
jacinta-stacks Feb 27, 2026
e12aaab
limit legacy at-block consensus tests to 3.3
francesco-stacks Feb 27, 2026
f9f5e5c
Separate mutable and unmutable sections of Environment
jacinta-stacks Feb 18, 2026
f5db202
Pre-sanitize contract variables at load time for zero-copy lookups
jacinta-stacks Feb 27, 2026
4b41115
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Feb 27, 2026
141c7a4
Reuse cached arg_use instead of calling get_memory_use() twice per ar…
jacinta-stacks Feb 27, 2026
5b2e3a7
block_time_not_available and unknown_block_header_hash_fork before ep…
francesco-stacks Feb 28, 2026
1968a9f
remove at-block in Clarity5
francesco-stacks Feb 28, 2026
2811b07
improve at-block unittest
francesco-stacks Feb 28, 2026
4c81661
Merge branch 'develop' into feat/remove-at-block
francesco-stacks Feb 28, 2026
da64fd2
gate check_block_time_keyword to epoch 3.3
francesco-stacks Mar 2, 2026
6959bd8
fix 3.3 epoch-gating of check_block_times
francesco-stacks Mar 2, 2026
dbf5c13
CRC: Make lookup_variable DRY
jacinta-stacks Mar 2, 2026
3caf930
CRC: remove old TODOs
jacinta-stacks Mar 2, 2026
64a036c
CRC: add to_error_string with truncated length and remove clone_with_…
jacinta-stacks Mar 3, 2026
d7f37b5
rm unused tip param from signer/microblocks, clean up getsigner, add …
simone-stacks Mar 3, 2026
bdc900b
ci: add proptest workflow, #6804
federico-stacks Mar 3, 2026
e897e46
chore: rename workflow, #6804
federico-stacks Mar 3, 2026
32f0a3e
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Mar 3, 2026
792bd42
CRC: still emit tx receipts but not events for aborted transactions i…
jacinta-stacks Mar 3, 2026
dcd362f
Cleanup placement of new function
jacinta-stacks Mar 3, 2026
98c7e7d
Make sure that test_try_make_response properly account for aborted tr…
jacinta-stacks Mar 3, 2026
bb0b642
Add changelog entry
jacinta-stacks Mar 3, 2026
3ad5914
Merge pull request #6923 from jacinta-stacks/chore/stop-emitting-fail…
jacinta-stacks Mar 3, 2026
e8425e2
Remove unstable floor_char_boundary and do same thing but with stable…
jacinta-stacks Mar 3, 2026
b9cd896
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Mar 4, 2026
7e8e95a
CRC: cleanup clone_with_cost
jacinta-stacks Mar 4, 2026
64d35cb
Add benchmarking to value ref changes
jacinta-stacks Mar 4, 2026
2cb3a8c
chore: improve workflow docs, #6804
federico-stacks Mar 3, 2026
89be14b
chore: improve workflow step naming, #6804
federico-stacks Mar 3, 2026
0920139
chore: improve PROPTEST_CASES env var, #6804
federico-stacks Mar 3, 2026
c5a1389
chore: improve workflow concurrency management, #6804
federico-stacks Mar 3, 2026
64b3999
chore: rethink concurrency to keep workflow simple, #6804
federico-stacks Mar 3, 2026
428c65f
chore: allow workflow to be canceled by apporval dismission, #6804
federico-stacks Mar 4, 2026
282fab0
chore: configure worklow to run only on develop base, #6804
federico-stacks Mar 4, 2026
9a1f6ef
chore: improve var naming style, #6804
federico-stacks Mar 4, 2026
1a862e9
chore: add proptest doc placeholder for remebering to update
federico-stacks Mar 4, 2026
e088631
rename querystring to query string
simone-stacks Mar 4, 2026
75dc11a
remove case-insensitive specification
simone-stacks Mar 4, 2026
2919b80
Merge branch 'develop' into docs/tip-param-spec-alignment
simone-stacks Mar 4, 2026
2847ab5
Merge pull request #6941 from simone-stacks/docs/tip-param-spec-align…
simone-stacks Mar 4, 2026
dfea4b1
fix: reject inappropriate sparse bitfield serializations
benjamin-stacks Mar 5, 2026
b7446d9
Merge branch 'develop' into docs/miner-signer-settings
simone-stacks Mar 5, 2026
6d154c5
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Mar 5, 2026
85fd9f0
CRC: remove leftover TODO
jacinta-stacks Mar 5, 2026
0b59aee
test: add bytes for explicit comparison in tests
brice-stacks Mar 5, 2026
fee2a49
Merge branch 'develop' into feat/34-post-conditions
brice-stacks Mar 5, 2026
8684112
chore: add doc warn for proptests-run job, #6804
federico-stacks Mar 6, 2026
860e95c
Merge pull request #6957 from benjamin-stacks/fix/bitfield-not-actual…
benjamin-stacks Mar 6, 2026
0ecdb65
feat: use tag based prop test filtering, #6804
federico-stacks Mar 6, 2026
4adcc08
Merge branch 'develop' into feat/remove-at-block
francesco-stacks Mar 6, 2026
399daf9
add at-block removal in changelog and clarity docs
francesco-stacks Mar 6, 2026
06b3322
chore: update proptest documentation, #6804
federico-stacks Mar 6, 2026
995ebd0
Merge pull request #6885 from brice-stacks/feat/34-post-conditions
brice-stacks Mar 6, 2026
28468f1
Merge branch 'develop' into docs/miner-signer-settings
simone-stacks Mar 9, 2026
063896f
chore: set REQUIRED_APPROVALS to 2, #6804
federico-stacks Mar 9, 2026
9f54564
fix: move signer binary config to sample/conf/signer/ subdirectory
simone-stacks Mar 9, 2026
c4be037
format md files
simone-stacks Mar 9, 2026
4d22a97
Fix flakiness in tenure_extend tests by waiting for signer updates an…
jacinta-stacks Mar 9, 2026
d46efc4
Remove flakiness due to multiple block proposals at same height
jacinta-stacks Mar 9, 2026
a44d6f7
Fix boot_to_epoch_3 since stacks chain never advanced because blocks …
jacinta-stacks Mar 9, 2026
08d4547
Fix cost_voting_integration races between block submitting and block …
jacinta-stacks Mar 9, 2026
bcbaeae
Give mock_miner_replay's follower more time to catch up
jacinta-stacks Mar 9, 2026
17ae459
Cleanup tests and avoid race condition with multiple block proposals …
jacinta-stacks Mar 9, 2026
424e8d7
Pause miner 2's startup as it starts mid cycle and may produce an inv…
jacinta-stacks Mar 10, 2026
b637997
Remove race conditions when accessing the stacks tip
jacinta-stacks Mar 10, 2026
d969dc2
crc: enforce approval to be from users with write+ permission, #6804
federico-stacks Mar 10, 2026
ecc263e
feat: implement a simple changelog management system
brice-stacks Mar 9, 2026
8995bf9
Updated ci.yml and codecov.yml to tweak settings and trigger Codecov …
dhaney-stacks Mar 10, 2026
fec9a04
Do not compare proposed and mined blocks as this is racey
jacinta-stacks Mar 10, 2026
12dba88
Reduce number of accounts/txs in nakamoto_attempt_time
jacinta-stacks Mar 10, 2026
e542a56
Fix tx_replay_forking_test flake by searching all blocks for replayed…
jacinta-stacks Mar 10, 2026
43c23be
ci: follow `rustfmt` model for new `changelog-check`
brice-stacks Mar 10, 2026
dff95da
chore: add log for debugging label check
brice-stacks Mar 10, 2026
cb1a1c0
fix: retrieve current labels, so reruns work
brice-stacks Mar 10, 2026
eee809f
fix: increase test_walk_ring_15_pingback timeout to 900s to account f…
jacinta-stacks Mar 10, 2026
068a9a7
fix: wait for signer updates before waiting for proposals
jacinta-stacks Mar 10, 2026
b49299d
Merge pull request #6970 from stacks-network/release/3.3.0.0.6
aaronb-stacks Mar 10, 2026
9c8b966
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Mar 10, 2026
0be5e6a
fix: replace ALTER TABLE DROP COLUMN with safe recreate-table in sign…
jacinta-stacks Mar 10, 2026
56a1a1e
Merge pull request #6973 from dhaney-stacks/develop
wileyj Mar 11, 2026
b4dd046
Merge branch 'develop' into feat/remove-at-block
francesco-stacks Mar 11, 2026
4ed0570
CRC: tx_replay_forking_test should assert transaction order
jacinta-stacks Mar 11, 2026
06c5b24
CRC: rename get_stackerdb_messages to get_stackerdb_signer_messages a…
jacinta-stacks Mar 11, 2026
7fd8ff0
CRC: create helper function for get_blocks_count in forked_tenure_tes…
jacinta-stacks Mar 11, 2026
7808f51
chore: update README with change to label
brice-stacks Mar 11, 2026
74c3135
refactor: extract changelog-check
brice-stacks Mar 11, 2026
fe898b9
Merge branch 'develop' into feat/changesets
brice-stacks Mar 11, 2026
c26e97e
fix: remove changelog entries incorrectly in .6
brice-stacks Mar 11, 2026
31dea64
CRC: remove custom reward cycle calculation from boot_to_epoch_3
jacinta-stacks Mar 11, 2026
962e7ab
Merge pull request #6937 from francesco-stacks/feat/remove-at-block
aaronb-stacks Mar 11, 2026
f72e79b
Merge branch 'develop' into feat/changesets
brice-stacks Mar 11, 2026
367d5ff
CRC: make SchemaVersion enum and update test to fail at compile time …
jacinta-stacks Mar 11, 2026
d9f71ac
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Mar 11, 2026
ce2c676
fix: fuzzed_median_fee_rate_estimate replaced strict monotonicity che…
jacinta-stacks Mar 11, 2026
170e403
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Mar 12, 2026
f380ceb
CRC: make construct_print_transaction_event take a ref
jacinta-stacks Mar 12, 2026
dae48cf
Merge branch 'develop' of https://github.com/stacks-network/stacks-co…
jacinta-stacks Mar 12, 2026
6149710
Fix: rename and cleanup submit_commit to ensure_commit and fix orderi…
jacinta-stacks Mar 12, 2026
3aa237a
Fix race condition: wait for the tip to advance before continuing aft…
jacinta-stacks Mar 12, 2026
a074b15
crc: protect against script injection
federico-stacks Mar 11, 2026
bb69346
crc: fix typo in doc
federico-stacks Mar 11, 2026
62d3dad
crc: improve proptest-run doc
federico-stacks Mar 12, 2026
9d076aa
Merge branch 'develop' into ci/proptest-auto
federico-stacks Mar 12, 2026
aef9693
Merge pull request #6975 from jacinta-stacks/fix/fix-signer-db-schema-19
jacinta-stacks Mar 12, 2026
aaef103
feat: change tagging to t_prop to avoid module clashing, #6804
federico-stacks Mar 13, 2026
d929c52
Merge pull request #6918 from jacinta-stacks/feat/variable-lookup-by-ref
jacinta-stacks Mar 13, 2026
a1319e6
fix: just exit if not in PR
brice-stacks Mar 13, 2026
6f7000a
Merge branch 'develop' into docs/miner-signer-settings
simone-stacks Mar 13, 2026
faa4b28
Merge pull request #6968 from jacinta-stacks/fix/flakey-tenure-extend…
jacinta-stacks Mar 13, 2026
0d0b61c
add signer sample config parsing test
simone-stacks Mar 13, 2026
3595c00
Merge pull request #6936 from simone-stacks/docs/miner-signer-settings
simone-stacks Mar 13, 2026
42fb45c
Merge pull request #6969 from brice-stacks/feat/changesets
brice-stacks Mar 16, 2026
78f395f
feat: final settings for 3.4 activation
brice-stacks Mar 16, 2026
cf9e508
Merge pull request #6952 from federico-stacks/ci/proptest-auto
federico-stacks Mar 17, 2026
8ad1f65
fix: search the full reward cycle for memoized stacks tips, which pre…
jcnelson Mar 18, 2026
508cb0b
chore: changelog
jcnelson Mar 18, 2026
e72952f
fix: .fix --> .fixed
jcnelson Mar 18, 2026
eb5433b
chore: changelog
jcnelson Mar 18, 2026
904aded
docs: update `secp256r1-verify` example for Clarity 5 behavior
brice-stacks Mar 18, 2026
38b9572
test: explicitly use Clarity 4 for tests
brice-stacks Mar 18, 2026
1c211ad
test: update read-only checker tests for new `at-block` behavior
brice-stacks Mar 18, 2026
7fd0c07
tst: update `secp256r1-verify` tests to handle epochs correctly
brice-stacks Mar 18, 2026
294069b
fix: use a window of 4200 sortitions (2 reward cycles), since the Sta…
jcnelson Mar 19, 2026
3c3aa1c
Merge branch 'fix/fix-failing-genesis-sync' of https://github.com/jcn…
jcnelson Mar 19, 2026
f33470f
Merge branch 'release/3.4.0.0.0-rc1' into release/3.4.0.0.0-rc1
brice-stacks Mar 19, 2026
21c7260
Merge pull request #6998 from brice-stacks/release/3.4.0.0.0-rc1
brice-stacks Mar 19, 2026
b5e7fe1
Merge branch 'release/3.4.0.0.0-rc1' into fix/fix-failing-genesis-sync
brice-stacks Mar 19, 2026
9e3e09c
Merge pull request #7000 from jcnelson/fix/fix-failing-genesis-sync
brice-stacks Mar 19, 2026
b9fb37b
feat: validate `prev_tenure_consensus_hash` in tenure change
brice-stacks Mar 13, 2026
5c056c6
Merge pull request #7010 from brice-stacks/release/3.4.0.0.0-rc1
brice-stacks Mar 19, 2026
95d7506
Adding epoch 3.4 to sample testnet configs
wileyj Mar 21, 2026
fc30cb9
Updated CI to download code coverage artifacts that prior tests uploa…
dhaney-stacks Mar 23, 2026
9c9a8a3
Merge branch 'release/3.4.0.0.0-rc1' into release/3.4.0.0.0-rc1
dhaney-stacks Mar 23, 2026
e1fc1d9
Merge pull request #7020 from dhaney-stacks/release/3.4.0.0.0-rc1
wileyj Mar 23, 2026
d111d6a
fix: handle `CallableContract`s correctly in comparisons
brice-stacks Mar 23, 2026
c5d43b1
Merge branch 'release/3.4.0.0.0-rc1' into chore/update_testnet_configs
brice-stacks Mar 23, 2026
d460019
chore: update testnet epoch 3.4 activation height sample configs
bgridley-stacks Mar 23, 2026
d3cb142
Merge pull request #7014 from wileyj/chore/update_testnet_configs
brice-stacks Mar 23, 2026
062a011
Merge branch 'release/3.4.0.0.0-rc1' into release/3.4.0.0.0-rc1
wileyj Mar 23, 2026
f90729c
Merge pull request #7027 from bgridley-stacks/release/3.4.0.0.0-rc1
wileyj Mar 24, 2026
61e8fb4
Add changelog version for 3.4.0.0.0.0
wileyj Mar 24, 2026
14d7606
Merge pull request #7032 from wileyj/chore/adjust_signer_changelog
wileyj Mar 24, 2026
f2dfdbe
Merge branch 'release/3.4.0.0.0-rc1' into fix/callable-equality
wileyj Mar 24, 2026
db7bc53
chore: update versions to include `-rc1`
brice-stacks Mar 24, 2026
42869a0
chore: update 3.4 activation height
brice-stacks Mar 24, 2026
bb392d9
Merge pull request #7025 from brice-stacks/fix/callable-equality
brice-stacks Mar 24, 2026
dcdff51
Merge branch 'release/3.4.0.0.0-rc1' into chore/update-activations
brice-stacks Mar 24, 2026
91ed8c1
Merge pull request #7034 from brice-stacks/chore/update-activations
brice-stacks Mar 24, 2026
33e221b
initial work on marking contract-deploy
aaronb-stacks Mar 24, 2026
b3ce20e
alternative const-callable implementation
aaronb-stacks Mar 25, 2026
65bbc4a
feat: move deploy flag into `ContractContext`
brice-stacks Mar 25, 2026
a2f9458
test: add and update constant contract tests
brice-stacks Mar 25, 2026
12a0358
test: update tests for new implementation
brice-stacks Mar 25, 2026
cb5e331
test: add `stx-transfer?` test with constant sender
brice-stacks Mar 25, 2026
3c5950a
test: add missing `to-ascii?` test
brice-stacks Mar 25, 2026
4c9ddc6
chore: update versions for `3.4.0.0.0-rc2`
brice-stacks Mar 25, 2026
fe37eb5
test: be more explicit in all cases in tests
brice-stacks Mar 25, 2026
6101eeb
Merge pull request #7036 from brice-stacks/feat/improved-const-callable
wileyj Mar 25, 2026
2bfb4aa
chore: bump versions toml for 3.4.0.0.0
wileyj Mar 26, 2026
b041055
Merge pull request #7047 from wileyj/chore/bump_versions
wileyj Mar 26, 2026
437ec69
build: strip debug symbols from release binaries
huth-stacks Mar 27, 2026
5524a10
fix: enable systemd auto-restart on failure
huth-stacks Mar 27, 2026
a701261
ci: add HEALTHCHECK to Dockerfile
huth-stacks Mar 27, 2026
fce8576
fix: replace panics with error returns in event dispatcher
huth-stacks Mar 27, 2026
592f64a
fix: skip unresolvable bootstrap nodes instead of panicking
huth-stacks Mar 27, 2026
3eb4db4
fix: skip unresolvable deny nodes instead of panicking
huth-stacks Mar 27, 2026
6c4c052
fix: replace assert!() with error returns for P2P payload validation
huth-stacks Mar 27, 2026
4774ca8
fix: preserve events in DB when observer retries exhausted
huth-stacks Mar 27, 2026
8953d8c
style: use structured logging in DNS error messages
huth-stacks Mar 27, 2026
1bfd212
build: disable debug info generation when stripping
huth-stacks Mar 27, 2026
ca46af6
ci: add lean CI workflow for fork branches
huth-stacks Mar 27, 2026
5eb31bb
perf: add SQLite mmap, cache, and WAL tuning to all databases
huth-stacks Mar 27, 2026
f006037
fix: replace panics with error handling in retry_pending_payloads
huth-stacks Mar 27, 2026
ff7e5cb
fix: keep unmatched pending events in DB instead of deleting
huth-stacks Mar 27, 2026
e3f533a
ci: increase test timeout from 30 to 60 minutes
huth-stacks Mar 27, 2026
76227a0
feat: add component-scoped log filtering via STACKS_LOG env var
huth-stacks Mar 27, 2026
7712133
feat: add periodic disk space monitoring with graceful shutdown
huth-stacks Mar 27, 2026
11882b4
feat: add env var overrides for RPC, P2P, and Prometheus bind addresses
huth-stacks Mar 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@
### Checklist

- [ ] Test coverage for new or modified code paths
- [ ] Changelog is updated
- [ ] Changelog fragment(s) or "no changelog" label added (see [`changelog.d/README.md`](changelog.d/README.md))
- [ ] Required documentation changes (e.g., `docs/rpc/openapi.yaml` and `rpc-endpoints.md` for v2 endpoints, `event-dispatcher.md` for new events)
- [ ] New clarity functions have corresponding PR in `clarity-benchmarking` repo
8 changes: 4 additions & 4 deletions .github/workflows/cargo-hack-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
rust-toolchain: ${{ steps.toolchain.outputs.rust-toolchain }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

Expand All @@ -34,7 +34,7 @@ jobs:
needs: setup
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

Expand Down Expand Up @@ -72,7 +72,7 @@ jobs:
needs: setup
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

Expand Down Expand Up @@ -114,7 +114,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/changelog-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Changelog Check

on:
workflow_call:

jobs:
changelog-check:
name: Check for changelog fragments
runs-on: ubuntu-latest
steps:
- name: Check for changelog fragments
uses: actions/github-script@v7
with:
script: |
if (context.eventName !== 'pull_request') {
core.info(`Event is '${context.eventName}', not a pull request — skipping.`);
return;
}
// Fetch current labels (payload labels are stale on re-runs)
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
});
const labels = pr.labels.map(l => l.name);
if (labels.includes('no changelog')) {
core.info('PR has "no changelog" label — skipping changelog check.');
return;
}

const { data: files } = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
per_page: 100,
});

// Fail if CHANGELOG.md is modified directly
const directEdits = files.filter(f =>
(f.filename === 'CHANGELOG.md' || f.filename === 'stacks-signer/CHANGELOG.md') &&
f.status === 'modified'
);

if (directEdits.length > 0) {
const edited = directEdits.map(f => f.filename).join(', ');
core.setFailed(
`Do not edit ${edited} directly. ` +
'Add a changelog fragment to changelog.d/ or stacks-signer/changelog.d/ instead ' +
'(see changelog.d/README.md for instructions).'
);
return;
}

const validExtensions = ['added', 'changed', 'fixed', 'removed'];
const fragments = files.filter(f =>
(f.filename.startsWith('changelog.d/') || f.filename.startsWith('stacks-signer/changelog.d/')) &&
f.status === 'added' &&
validExtensions.some(ext => f.filename.endsWith(`.${ext}`))
);

if (fragments.length === 0) {
core.setFailed(
'No changelog fragment found. Please add a fragment file to changelog.d/ ' +
'or stacks-signer/changelog.d/ (see changelog.d/README.md for instructions). ' +
'If no changelog entry is needed, add the "no changelog" label to the PR.'
);
} else {
const names = fragments.map(f => f.filename).join(', ');
core.info(`Found changelog fragment(s): ${names}`);
}
57 changes: 57 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ jobs:
with:
alias: "fmt-stacks"

changelog-check:
name: Changelog Check
uses: ./.github/workflows/changelog-check.yml

######################################################################################
## Check if the branch that this workflow is being run against is a release branch
##
Expand All @@ -64,6 +68,7 @@ jobs:
name: Check Release
needs:
- rustfmt
- changelog-check
runs-on: ubuntu-latest
outputs:
node_tag: ${{ steps.check_release.outputs.node_tag }}
Expand Down Expand Up @@ -96,6 +101,7 @@ jobs:
name: Create Release
needs:
- rustfmt
- changelog-check
- check-release
secrets: inherit
uses: ./.github/workflows/release-github.yml
Expand All @@ -121,6 +127,7 @@ jobs:
name: Create Test Cache
needs:
- rustfmt
- changelog-check
- check-release
uses: ./.github/workflows/create-cache.yml

Expand All @@ -142,6 +149,7 @@ jobs:
name: Stacks Core Tests
needs:
- rustfmt
- changelog-check
- create-cache
- check-release
uses: ./.github/workflows/stacks-core-tests.yml
Expand All @@ -164,6 +172,7 @@ jobs:
name: Constants Check
needs:
- rustfmt
- changelog-check
- check-release
uses: ./.github/workflows/constants-check.yml

Expand All @@ -185,6 +194,7 @@ jobs:
name: Cargo Hack Check
needs:
- rustfmt
- changelog-check
- check-release
uses: ./.github/workflows/cargo-hack-check.yml

Expand All @@ -205,6 +215,7 @@ jobs:
name: Bitcoin Tests
needs:
- rustfmt
- changelog-check
- create-cache
- check-release
uses: ./.github/workflows/bitcoin-tests.yml
Expand All @@ -218,6 +229,7 @@ jobs:
name: P2P Tests
needs:
- rustfmt
- changelog-check
- create-cache
- check-release
uses: ./.github/workflows/p2p-tests.yml
Expand All @@ -231,6 +243,51 @@ jobs:
name: Epoch Tests
needs:
- rustfmt
- changelog-check
- create-cache
- check-release
uses: ./.github/workflows/epoch-tests.yml

## Merge and upload code coverage report files once all tests are done
##
## Runs when:
## - always (unless workflow is cancelled)
trigger-code-coverage-report:
if: ${{ always() && !cancelled() }}
name: Upload Code Coverage Report
runs-on: ubuntu-latest
needs:
- stacks-core-tests
- bitcoin-tests
- p2p-tests
- epoch-tests
steps:
# Checkout the code (Coveralls requires source code to be available when action is called)
- name: Checkout the latest code
id: git_checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
# Download the code coverage .info files generated by tests from artifacts (prefixed by commit SHA)
- name: Download code coverage artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # 8.0.1
with:
pattern: ${{ github.sha }}-*.info
path: code_coverage_files
merge-multiple: true
# Install lcov for merging the reports
- name: Install lcov
shell: bash
run: |
sudo apt-get install -y --no-install-recommends lcov
# Merge n coverage report files into 1 file using lcov
- name: Merge code coverage files
shell: bash
run: |
cd code_coverage_files && \
find . -name "*.info" | awk '{print "-a", $0}' | xargs lcov -o code-coverage-report.info
# Upload the merged code coverage file to Coveralls
- name: Upload code coverage to Coveralls
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6
with:
file: code_coverage_files/code-coverage-report.info
fail-on-error: true

2 changes: 1 addition & 1 deletion .github/workflows/clippy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
steps:
- name: Checkout the latest code
id: git_checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Define Rust Toolchain
id: define_rust_toolchain
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/constants-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
steps:
- name: Checkout the latest code
id: git_checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Define Rust Toolchain
id: define_rust_toolchain
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
## Checkout the code
- name: Checkout the latest code
id: git_checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ env.BRANCH }}

Expand Down Expand Up @@ -200,7 +200,7 @@ jobs:
## Checkout the code
- name: Checkout the latest code
id: git_checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ env.BRANCH }}
sparse-checkout: |
Expand Down
116 changes: 116 additions & 0 deletions .github/workflows/fork-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
## Lean CI for the stacks-core fork
## Runs fmt, clippy, and a build check on every push to fork/ branches
name: Fork CI

on:
push:
branches:
- 'fork/**'
pull_request:
branches:
- 'fork/**'

concurrency:
group: fork-ci-${{ github.ref || github.run_id }}
cancel-in-progress: true

jobs:
rustfmt:
name: Format Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt

- name: Check formatting
run: cargo fmt-stacks --check

clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy

- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-clippy-${{ hashFiles('**/Cargo.lock') }}

- name: Clippy (all crates except stackslib)
run: cargo clippy-stacks

- name: Clippy (stackslib)
run: cargo clippy-stackslib

build:
name: Build Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}

- name: Build
run: cargo build --features monitoring_prom,slog_json --release
env:
CARGO_INCREMENTAL: 0

- name: Report binary size
run: |
ls -lh target/release/stacks-node
ls -lh target/release/stacks-signer

test-quick:
name: Quick Tests
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}

- name: Install nextest
uses: taiki-e/install-action@nextest

- name: Run tests (quick, non-ignored)
run: cargo nextest run --workspace --exclude stacks-node -j 4
timeout-minutes: 60
env:
RUST_BACKTRACE: 1
Loading
Loading