Skip to content

Commit ce532df

Browse files
authored
Merge branch 'master' into docs/edit-readme
2 parents 6b94451 + 2c224b2 commit ce532df

24 files changed

+443
-239
lines changed

.github/workflows/atlas-tests.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,17 @@ jobs:
5454
uses: stacks-network/actions/codecov@main
5555
with:
5656
test-name: ${{ matrix.test-name }}
57+
58+
check-tests:
59+
name: Check Tests
60+
runs-on: ubuntu-latest
61+
if: always()
62+
needs:
63+
- atlas-tests
64+
steps:
65+
- name: Check Tests Status
66+
id: check_tests_status
67+
uses: stacks-network/actions/check-jobs-status@main
68+
with:
69+
jobs: ${{ toJson(needs) }}
70+
summary_print: "true"

.github/workflows/bitcoin-tests.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,17 @@ jobs:
9494
uses: stacks-network/actions/codecov@main
9595
with:
9696
test-name: ${{ matrix.test-name }}
97+
98+
check-tests:
99+
name: Check Tests
100+
runs-on: ubuntu-latest
101+
if: always()
102+
needs:
103+
- integration-tests
104+
steps:
105+
- name: Check Tests Status
106+
id: check_tests_status
107+
uses: stacks-network/actions/check-jobs-status@main
108+
with:
109+
jobs: ${{ toJson(needs) }}
110+
summary_print: "true"

.github/workflows/docs-pr.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,12 @@ jobs:
6666
git add src/_data/boot-contracts-reference.json
6767
if $(git diff --staged --quiet --exit-code); then
6868
echo "No reference.json changes, stopping"
69-
echo "::set-output name=open_pr::0"
69+
echo "open_pr=0" >> "$GITHUB_OUTPUT"
7070
else
7171
git remote add robot https://github.com/$ROBOT_OWNER/$ROBOT_REPO
7272
git commit -m "auto: update Clarity references JSONs from stacks-core@${GITHUB_SHA}"
7373
git push robot $ROBOT_BRANCH
74-
echo "::set-output name=open_pr::1"
74+
echo "open_pr=1" >> "$GITHUB_OUTPUT"
7575
fi
7676
7777
- name: Open PR

.github/workflows/epoch-tests.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,17 @@ jobs:
7878
uses: stacks-network/actions/codecov@main
7979
with:
8080
test-name: ${{ matrix.test-name }}
81+
82+
check-tests:
83+
name: Check Tests
84+
runs-on: ubuntu-latest
85+
if: always()
86+
needs:
87+
- epoch-tests
88+
steps:
89+
- name: Check Tests Status
90+
id: check_tests_status
91+
uses: stacks-network/actions/check-jobs-status@main
92+
with:
93+
jobs: ${{ toJson(needs) }}
94+
summary_print: "true"

.github/workflows/github-release.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,7 @@ jobs:
5959
## Generate a checksums file to be added to the release page
6060
- name: Generate Checksums
6161
id: generate_checksum
62-
uses: jmgilman/actions-generate-checksum@3ea6dc9bf8eecf28e2ecc982fab683484a1a8561 # v1.0.1
63-
with:
64-
method: sha512
65-
output: CHECKSUMS.txt
66-
patterns: |
67-
release/*.zip
62+
uses: stacks-network/actions/generate-checksum@main
6863

6964
## Upload the release archives with the checksums file
7065
- name: Upload Release
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: PR Differences Mutants
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- reopened
8+
- synchronize
9+
- ready_for_review
10+
paths:
11+
- "**.rs"
12+
13+
concurrency:
14+
group: pr-differences-${{ github.head_ref || github.ref || github.run_id }}
15+
# Always cancel duplicate jobs
16+
cancel-in-progress: true
17+
18+
jobs:
19+
# Check and output whether to run big (`stacks-node`/`stackslib`) or small (others) packages with or without shards
20+
check-big-packages-and-shards:
21+
name: Check Packages and Shards
22+
23+
runs-on: ubuntu-latest
24+
25+
outputs:
26+
run_big_packages: ${{ steps.check_packages_and_shards.outputs.run_big_packages }}
27+
big_packages_with_shards: ${{ steps.check_packages_and_shards.outputs.big_packages_with_shards }}
28+
run_small_packages: ${{ steps.check_packages_and_shards.outputs.run_small_packages }}
29+
small_packages_with_shards: ${{ steps.check_packages_and_shards.outputs.small_packages_with_shards }}
30+
31+
steps:
32+
- id: check_packages_and_shards
33+
uses: stacks-network/actions/stacks-core/mutation-testing/check-packages-and-shards@main
34+
35+
# Mutation testing - Execute on PR on small packages that have functions modified (normal run, no shards)
36+
pr-differences-mutants-small-normal:
37+
name: Mutation Testing - Normal, Small
38+
39+
needs: check-big-packages-and-shards
40+
41+
if: ${{ needs.check-big-packages-and-shards.outputs.run_small_packages == 'true' && needs.check-big-packages-and-shards.outputs.small_packages_with_shards == 'false' }}
42+
43+
runs-on: ubuntu-latest
44+
45+
steps:
46+
- name: Run mutants on diffs
47+
uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@main
48+
with:
49+
package-dimension: "small"
50+
51+
# Mutation testing - Execute on PR on small packages that have functions modified (run with strategy matrix shards)
52+
pr-differences-mutants-small-shards:
53+
name: Mutation Testing - Shards, Small
54+
55+
needs: check-big-packages-and-shards
56+
57+
if: ${{ needs.check-big-packages-and-shards.outputs.run_small_packages == 'true' && needs.check-big-packages-and-shards.outputs.small_packages_with_shards == 'true' }}
58+
59+
runs-on: ubuntu-latest
60+
61+
strategy:
62+
fail-fast: false
63+
matrix:
64+
shard: [0, 1, 2, 3]
65+
66+
steps:
67+
- name: Run mutants on diffs
68+
uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@main
69+
with:
70+
shard: ${{ matrix.shard }}
71+
package-dimension: "small"
72+
73+
# Mutation testing - Execute on PR on big packages that have functions modified (normal run, no shards)
74+
pr-differences-mutants-big-normal:
75+
name: Mutation Testing - Normal, Big
76+
77+
needs: check-big-packages-and-shards
78+
79+
if: ${{ needs.check-big-packages-and-shards.outputs.run_big_packages == 'true' && needs.check-big-packages-and-shards.outputs.big_packages_with_shards == 'false' }}
80+
81+
runs-on: ubuntu-latest
82+
83+
steps:
84+
- name: Run Run mutants on diffs
85+
env:
86+
BITCOIND_TEST: 1
87+
RUST_BACKTRACE: full
88+
uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@main
89+
with:
90+
package-dimension: "big"
91+
92+
# Mutation testing - Execute on PR on big packages that have functions modified (run with strategy matrix shards)
93+
pr-differences-mutants-big-shards:
94+
name: Mutation Testing - Shards, Big
95+
96+
needs: check-big-packages-and-shards
97+
98+
if: ${{ needs.check-big-packages-and-shards.outputs.run_big_packages == 'true' && needs.check-big-packages-and-shards.outputs.big_packages_with_shards == 'true' }}
99+
100+
runs-on: ubuntu-latest
101+
102+
strategy:
103+
fail-fast: false
104+
matrix:
105+
shard: [0, 1, 2, 3, 4, 5, 6, 7]
106+
107+
steps:
108+
- name: Run mutants on diffs
109+
env:
110+
BITCOIND_TEST: 1
111+
RUST_BACKTRACE: full
112+
uses: stacks-network/actions/stacks-core/mutation-testing/pr-differences@main
113+
with:
114+
shard: ${{ matrix.shard }}
115+
package-dimension: "big"
116+
117+
# Output the mutants and fail the workflow if there are missed/timeout/unviable mutants
118+
output-mutants:
119+
name: Output Mutants
120+
121+
runs-on: ubuntu-latest
122+
123+
needs:
124+
[
125+
check-big-packages-and-shards,
126+
pr-differences-mutants-small-normal,
127+
pr-differences-mutants-small-shards,
128+
pr-differences-mutants-big-normal,
129+
pr-differences-mutants-big-shards,
130+
]
131+
132+
steps:
133+
- name: Output Mutants
134+
uses: stacks-network/actions/stacks-core/mutation-testing/output-pr-mutants@main
135+
with:
136+
big_packages: ${{ needs.check-big-packages-and-shards.outputs.run_big_packages }}
137+
shards_for_big_packages: ${{ needs.check-big-packages-and-shards.outputs.big_packages_with_shards }}
138+
small_packages: ${{ needs.check-big-packages-and-shards.outputs.run_small_packages }}
139+
shards_for_small_packages: ${{ needs.check-big-packages-and-shards.outputs.small_packages_with_shards }}

.github/workflows/slow-tests.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,17 @@ jobs:
5656
uses: stacks-network/actions/codecov@main
5757
with:
5858
test-name: ${{ matrix.test-name }}
59+
60+
check-tests:
61+
name: Check Tests
62+
runs-on: ubuntu-latest
63+
if: always()
64+
needs:
65+
- slow-tests
66+
steps:
67+
- name: Check Tests Status
68+
id: check_tests_status
69+
uses: stacks-network/actions/check-jobs-status@main
70+
with:
71+
jobs: ${{ toJson(needs) }}
72+
summary_print: "true"

.github/workflows/stacks-core-tests.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,19 @@ jobs:
180180
with:
181181
args: test --manifest-path=./contrib/core-contract-tests/Clarinet.toml contrib/core-contract-tests/tests/bns/name_register_test.ts
182182

183+
check-tests:
184+
name: Check Tests
185+
runs-on: ubuntu-latest
186+
if: always()
187+
needs:
188+
- full-genesis
189+
- unit-tests
190+
- open-api-validation
191+
- core-contracts-clarinet-test
192+
steps:
193+
- name: Check Tests Status
194+
id: check_tests_status
195+
uses: stacks-network/actions/check-jobs-status@main
196+
with:
197+
jobs: ${{ toJson(needs) }}
198+
summary_print: "true"

CONTRIBUTING.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ is responsible for:
5959
6. Merging the new PR.
6060

6161
For an example of this process, see PRs
62-
[#3598](https://github.com/stacks-network/stacks-blockchain/pull/3598) and
63-
[#3626](https://github.com/stacks-network/stacks-blockchain/pull/3626).
62+
[#3598](https://github.com/stacks-network/stacks-core/pull/3598) and
63+
[#3626](https://github.com/stacks-network/stacks-core/pull/3626).
6464

6565

6666
### Documentation Updates
@@ -226,7 +226,7 @@ Contributions should not contain `unsafe` blocks if at all possible.
226226
## Documentation
227227

228228
* Each file must have a **copyright statement**.
229-
* Any new non-test modules should have **module-level documentation** explaining what the module does, and how it fits into the blockchain as a whole ([example](https://github.com/stacks-network/stacks-blockchain/blob/4852d6439b473e24705f14b8af637aded33cb422/testnet/stacks-node/src/neon_node.rs#L17)).
229+
* Any new non-test modules should have **module-level documentation** explaining what the module does, and how it fits into the blockchain as a whole ([example](https://github.com/stacks-network/stacks-core/blob/4852d6439b473e24705f14b8af637aded33cb422/testnet/stacks-node/src/neon_node.rs#L17)).
230230
* Any new files must have some **top-of-file documentation** that describes what the contained code does, and how it fits into the overall module.
231231

232232
Within the source files, the following **code documentation** standards are expected:
@@ -247,7 +247,7 @@ Within the source files, the following **code documentation** standards are expe
247247
handle I/O reads and writes in an "outer" function. The "outer"
248248
function only does the needful I/O and passes the data into the
249249
"inner" function. The "inner" function is often private, whereas
250-
the "outer" function is often public. For example, [`inner_try_mine_microblock` and `try_mine_microblock`](https://github.com/stacks-network/stacks-blockchain/blob/4852d6439b473e24705f14b8af637aded33cb422/testnet/stacks-node/src/neon_node.rs#L1148-L1216).
250+
the "outer" function is often public. For example, [`inner_try_mine_microblock` and `try_mine_microblock`](https://github.com/stacks-network/stacks-core/blob/4852d6439b473e24705f14b8af637aded33cb422/testnet/stacks-node/src/neon_node.rs#L1148-L1216).
251251

252252
## Refactoring
253253

@@ -281,7 +281,7 @@ Within the source files, the following **code documentation** standards are expe
281281
does not decode with the allotted resources, then no further
282282
processing may be done and the data is discarded. For an example, see
283283
how the parsing functions in the http module use `BoundReader` and
284-
`MAX_PAYLOAD_LEN` in [http.rs](https://github.com/stacks-network/stacks-blockchain/blob/4852d6439b473e24705f14b8af637aded33cb422/src/net/http.rs#L2260-L2285).
284+
`MAX_PAYLOAD_LEN` in [http.rs](https://github.com/stacks-network/stacks-core/blob/4852d6439b473e24705f14b8af637aded33cb422/src/net/http.rs#L2260-L2285).
285285

286286
* **All network input reception is time-bound.** Every piece of code that ingests data _from the network_ must impose a maximum amount of time that ingestion can take. If the data takes too long to arrive, then it must be discarded without any further processing. There is no time bound for data ingested from disk or passed as an argument; this requirement is meant by the space-bound requirement.
287287

@@ -303,7 +303,7 @@ Changes to the peer network should be deployed incrementally and tested by multi
303303

304304
Any PRs that claim to improve performance **must ship with reproducible benchmarks** that accurately measure the improvement. This data must also be reported in the PR submission.
305305

306-
For an example, see [PR #3075](https://github.com/stacks-network/stacks-blockchain/pull/3075).
306+
For an example, see [PR #3075](https://github.com/stacks-network/stacks-core/pull/3075).
307307

308308
## Error Handling
309309

@@ -597,7 +597,7 @@ Keep in mind that better variable names can reduce the need for comments, e.g.:
597597

598598
# Licensing and contributor license agreement
599599

600-
`stacks-blockchain` is released under the terms of the GPL version 3. Contributions
600+
`stacks-core` is released under the terms of the GPL version 3. Contributions
601601
that are not licensed under compatible terms will be rejected. Moreover,
602602
contributions will not be accepted unless _all_ authors accept the project's
603603
contributor license agreement.

0 commit comments

Comments
 (0)