Skip to content

Commit 2e8db53

Browse files
committed
Merge branch 'develop' into fix/config-docs-generator-uninlined-format-args
2 parents 6f52cf6 + c21aea7 commit 2e8db53

File tree

30 files changed

+904
-367
lines changed

30 files changed

+904
-367
lines changed
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
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 }}

.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: |

clarity/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ default = ["rusqlite"]
5151
developer-mode = ["stacks_common/developer-mode"]
5252
slog_json = ["stacks_common/slog_json"]
5353
rusqlite = ["stacks_common/rusqlite", "dep:rusqlite"]
54-
testing = ["rstest", "rstest_reuse"]
54+
testing = ["rstest", "rstest_reuse", "rusqlite"]
5555
devtools = []
5656
rollback_value_check = []
5757
disable-costs = []

clarity/src/vm/analysis/type_checker/contexts.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ impl TypingContext<'_> {
104104
}
105105
}
106106

107-
pub fn extend(&self) -> CheckResult<TypingContext> {
107+
pub fn extend(&self) -> CheckResult<TypingContext<'_>> {
108108
if self.depth >= MAX_CONTEXT_DEPTH {
109109
Err(CheckError::new(CheckErrors::MaxContextDepthReached))
110110
} else {

clarity/src/vm/contexts.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1875,7 +1875,7 @@ impl<'a> LocalContext<'a> {
18751875
self.depth
18761876
}
18771877

1878-
pub fn function_context(&self) -> &LocalContext {
1878+
pub fn function_context(&self) -> &LocalContext<'_> {
18791879
match self.function_context {
18801880
Some(context) => context,
18811881
None => self,

clarity/src/vm/database/clarity_store.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@ impl NullBackingStore {
187187
NullBackingStore {}
188188
}
189189

190-
pub fn as_clarity_db(&mut self) -> ClarityDatabase {
190+
pub fn as_clarity_db(&mut self) -> ClarityDatabase<'_> {
191191
ClarityDatabase::new(self, &NULL_HEADER_DB, &NULL_BURN_STATE_DB)
192192
}
193193

194-
pub fn as_analysis_db(&mut self) -> AnalysisDatabase {
194+
pub fn as_analysis_db(&mut self) -> AnalysisDatabase<'_> {
195195
AnalysisDatabase::new(self)
196196
}
197197
}

clarity/src/vm/database/sqlite.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,11 @@ impl MemoryBackingStore {
302302
memory_marf
303303
}
304304

305-
pub fn as_clarity_db(&mut self) -> ClarityDatabase {
305+
pub fn as_clarity_db(&mut self) -> ClarityDatabase<'_> {
306306
ClarityDatabase::new(self, &NULL_HEADER_DB, &NULL_BURN_STATE_DB)
307307
}
308308

309-
pub fn as_analysis_db(&mut self) -> AnalysisDatabase {
309+
pub fn as_analysis_db(&mut self) -> AnalysisDatabase<'_> {
310310
AnalysisDatabase::new(self)
311311
}
312312
}
@@ -405,7 +405,7 @@ impl ClarityBackingStore for MemoryBackingStore {
405405
}
406406

407407
impl ToSql for ExecutionCost {
408-
fn to_sql(&self) -> rusqlite::Result<ToSqlOutput> {
408+
fn to_sql(&self) -> rusqlite::Result<ToSqlOutput<'_>> {
409409
let val = serde_json::to_string(self)
410410
.map_err(|e| rusqlite::Error::ToSqlConversionFailure(Box::new(e)))?;
411411
Ok(ToSqlOutput::from(val))

clarity/src/vm/tests/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ pub fn tl_env_factory() -> TopLevelMemoryEnvironmentGenerator {
171171

172172
pub struct MemoryEnvironmentGenerator(MemoryBackingStore);
173173
impl MemoryEnvironmentGenerator {
174-
fn get_env(&mut self, epoch: StacksEpochId) -> OwnedEnvironment {
174+
fn get_env(&mut self, epoch: StacksEpochId) -> OwnedEnvironment<'_, '_> {
175175
let mut db = self.0.as_clarity_db();
176176
db.begin();
177177
db.set_clarity_epoch_version(epoch).unwrap();
@@ -190,7 +190,7 @@ impl MemoryEnvironmentGenerator {
190190

191191
pub struct TopLevelMemoryEnvironmentGenerator(MemoryBackingStore);
192192
impl TopLevelMemoryEnvironmentGenerator {
193-
pub fn get_env(&mut self, epoch: StacksEpochId) -> OwnedEnvironment {
193+
pub fn get_env(&mut self, epoch: StacksEpochId) -> OwnedEnvironment<'_, '_> {
194194
let mut db = self.0.as_clarity_db();
195195
db.begin();
196196
db.set_clarity_epoch_version(epoch).unwrap();

stacks-common/src/bitvec.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ impl<const MAX_SIZE: u16> BitVec<MAX_SIZE> {
171171
Ok(bitvec)
172172
}
173173

174-
pub fn iter(&self) -> BitVecIter<MAX_SIZE> {
174+
pub fn iter(&self) -> BitVecIter<'_, MAX_SIZE> {
175175
let byte = self.data.first();
176176
BitVecIter {
177177
index: 0,

0 commit comments

Comments
 (0)