Skip to content

Commit ee25fee

Browse files
build: lock and verify release dependencies
1 parent f3bd6a7 commit ee25fee

26 files changed

Lines changed: 10085 additions & 649 deletions

.gitattributes

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
# Auto-generated dependency files — collapse in GitHub diffs
2-
*.tsv linguist-generated=true
1+
# Generated TSVs keep trailing empty columns.
2+
*.tsv text eol=lf linguist-generated=true whitespace=-blank-at-eol

.github/workflows/ci.yml

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,44 @@ jobs:
4949
- name: Install cargo-deny
5050
uses: taiki-e/install-action@v2
5151
with:
52-
tool: cargo-deny@0.19.0
52+
tool: cargo-deny@0.19.6
53+
54+
- name: Fetch locked dependencies
55+
run: cargo fetch --locked
5356

5457
- name: Check dependency licenses (Apache-compatible)
55-
run: cargo deny check licenses
58+
run: cargo deny --locked --all-features check licenses
59+
60+
- name: Verify dependency reports
61+
run: python3 scripts/dependencies.py verify
5662

5763
- name: Format
5864
run: cargo fmt --all -- --check
5965

6066
- name: Clippy
61-
run: cargo clippy --all-targets --workspace --features fulltext,vortex -- -D warnings
67+
run: cargo clippy --locked --all-targets --workspace --features fulltext,vortex -- -D warnings
68+
69+
msrv:
70+
runs-on: ubuntu-latest
71+
env:
72+
PYO3_PYTHON: python3.11
73+
steps:
74+
- uses: actions/checkout@v7
75+
76+
- uses: actions/setup-python@v6
77+
with:
78+
python-version: "3.11"
79+
80+
- name: Install Rust 1.91.0
81+
run: rustup toolchain install 1.91.0 --profile minimal
82+
83+
- name: Validate workspace MSRV metadata
84+
run: |
85+
cargo +1.91.0 metadata --locked --format-version 1 --no-deps |
86+
jq -e '.packages | all(.rust_version == "1.91.0")' >/dev/null
87+
88+
- name: Check workspace at MSRV
89+
run: cargo +1.91.0 check --locked --workspace --all-targets --all-features
6290

6391
build:
6492
runs-on: ${{ matrix.os }}
@@ -71,7 +99,7 @@ jobs:
7199
steps:
72100
- uses: actions/checkout@v7
73101
- name: Build
74-
run: cargo build --features fulltext,vortex
102+
run: cargo build --locked --features fulltext,vortex
75103

76104
unit:
77105
runs-on: ${{ matrix.os }}
@@ -85,7 +113,7 @@ jobs:
85113
- uses: actions/checkout@v7
86114

87115
- name: Test
88-
run: cargo test -p paimon --all-targets --features fulltext,vortex
116+
run: cargo test --locked -p paimon --all-targets --features fulltext,vortex
89117
env:
90118
RUST_LOG: DEBUG
91119
RUST_BACKTRACE: full
@@ -95,7 +123,7 @@ jobs:
95123
# catalog tests are likewise gated with `#[cfg(not(windows))]`).
96124
- name: Test paimon-rest-server
97125
if: runner.os != 'Windows'
98-
run: cargo test -p paimon-rest-server --all-targets
126+
run: cargo test --locked -p paimon-rest-server --all-targets
99127
env:
100128
RUST_LOG: DEBUG
101129
RUST_BACKTRACE: full
@@ -150,7 +178,7 @@ jobs:
150178

151179
- name: Rust Integration Test
152180
if: matrix.suite == 'rust'
153-
run: cargo test -p paimon-integration-tests --all-targets
181+
run: cargo test --locked -p paimon-integration-tests --all-targets
154182

155183
- name: Install lumina native library
156184
if: matrix.needs_lumina == true
@@ -161,26 +189,26 @@ jobs:
161189
- name: Core Lumina Native Build Test
162190
if: matrix.suite == 'lumina'
163191
run: >
164-
cargo test -p paimon
192+
cargo test --locked -p paimon
165193
table::lumina_index_build_builder::tests::test_execute_writes_lumina_index_manifest
166194
--features fulltext,vortex
167195
-- --ignored --exact
168196
169197
- name: DataFusion Lumina Build Query E2E Test
170198
if: matrix.suite == 'lumina'
171199
run: >
172-
cargo test -p paimon-datafusion
200+
cargo test --locked -p paimon-datafusion
173201
--features vortex
174202
vector_search_tests::test_lumina_build_then_vector_search_query
175203
-- --ignored --exact
176204
177205
- name: DataFusion Integration Test
178206
if: matrix.suite == 'datafusion'
179-
run: cargo test -p paimon-datafusion --all-targets
207+
run: cargo test --locked -p paimon-datafusion --all-targets
180208

181209
- name: DataFusion Vortex Integration Test
182210
if: matrix.suite == 'datafusion'
183-
run: cargo test -p paimon-datafusion --features vortex --test vortex_tables
211+
run: cargo test --locked -p paimon-datafusion --features vortex --test vortex_tables
184212

185213
- name: Install uv
186214
if: matrix.needs_uv == true

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
# under the License.
1717

1818
/target
19-
/Cargo.lock
2019
.idea
2120
.vscode
2221
**/.DS_Store

.licenserc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ header:
2323
paths-ignore:
2424
- "LICENSE"
2525
- "NOTICE"
26+
- "Cargo.lock"
2627
- ".gitattributes"
2728
- ".github/PULL_REQUEST_TEMPLATE.md"
2829
- "crates/paimon/tests/**/*.json"

0 commit comments

Comments
 (0)