Skip to content

Commit aa874b5

Browse files
author
lijunrui
committed
Merge remote-tracking branch 'origin/main' into pk-vec/2-batch-multi-query
# Conflicts: # crates/paimon/src/table/vector_search_builder.rs
2 parents 83da593 + 530cce2 commit aa874b5

87 files changed

Lines changed: 15974 additions & 2619 deletions

Some content is hidden

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

.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: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,46 @@ jobs:
4747
uses: apache/skywalking-eyes/header@v0.8.0
4848

4949
- name: Install cargo-deny
50-
uses: taiki-e/install-action@v2
50+
uses: taiki-e/install-action@a6b2e2dcd845ddd7f509ce4f3ed3d922b80cc5d9 # v2.84.0
5151
with:
52-
tool: cargo-deny@0.19.0
52+
tool: cargo-deny@0.19.6
5353

54-
- name: Check dependency licenses (Apache-compatible)
55-
run: cargo deny check licenses
54+
- name: Fetch locked dependencies
55+
run: cargo fetch --locked
56+
57+
- name: Check dependency policy
58+
run: cargo deny --locked --all-features check --warn unmaintained advisories 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

.github/workflows/release_python_binding.yml

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# under the License.
1717

1818
# Publish the paimon Python binding to PyPI.
19-
# Trigger: push tag only (e.g. v0.1.0).
19+
# Trigger: release tag push or manual dispatch.
2020
# Pre-release tags (containing '-') publish to TestPyPI; release tags publish to PyPI.
2121
#
2222
# Token auth: add secrets PYPI_API_TOKEN / TEST_PYPI_API_TOKEN for publishing.
@@ -29,21 +29,37 @@ on:
2929
- "v[0-9]+.[0-9]+.[0-9]+"
3030
- "v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+"
3131
workflow_dispatch:
32+
inputs:
33+
tag:
34+
description: Release tag, for example v0.3.0-rc2
35+
required: true
36+
type: string
3237

3338
concurrency:
34-
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
39+
group: ${{ github.workflow }}-${{ inputs.tag || github.ref_name }}
3540
cancel-in-progress: true
3641

3742
permissions:
3843
contents: read
3944

45+
env:
46+
RELEASE_TAG: ${{ inputs.tag || github.ref_name }}
47+
4048
jobs:
4149
sdist:
4250
runs-on: ubuntu-latest
4351
steps:
4452
- uses: actions/checkout@v7
53+
with:
54+
ref: ${{ env.RELEASE_TAG }}
55+
56+
- name: Set Python release version
57+
run: >
58+
python3 scripts/python_release_version.py
59+
--tag "${RELEASE_TAG}"
60+
--pyproject bindings/python/pyproject.toml
4561
46-
- uses: PyO3/maturin-action@v1
62+
- uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
4763
with:
4864
working-directory: bindings/python
4965
command: sdist
@@ -69,8 +85,17 @@ jobs:
6985
- { os: ubuntu-latest, target: "aarch64", manylinux: "manylinux_2_28" }
7086
steps:
7187
- uses: actions/checkout@v7
88+
with:
89+
ref: ${{ env.RELEASE_TAG }}
90+
91+
- name: Set Python release version
92+
shell: bash
93+
run: >
94+
python3 scripts/python_release_version.py
95+
--tag "${RELEASE_TAG}"
96+
--pyproject bindings/python/pyproject.toml
7297
73-
- uses: PyO3/maturin-action@v1
98+
- uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
7499
with:
75100
working-directory: bindings/python
76101
target: ${{ matrix.target }}
@@ -143,7 +168,7 @@ jobs:
143168
permissions:
144169
contents: read
145170
needs: [sdist, wheels]
146-
if: startsWith(github.ref, 'refs/tags/')
171+
if: startsWith(inputs.tag || github.ref_name, 'v')
147172
steps:
148173
- uses: actions/download-artifact@v8
149174
with:
@@ -152,17 +177,17 @@ jobs:
152177
path: bindings/python/dist
153178

154179
- name: Publish to TestPyPI
155-
if: contains(github.ref, '-')
156-
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
180+
if: contains(env.RELEASE_TAG, '-')
181+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
157182
with:
158183
repository-url: https://test.pypi.org/legacy/
159184
skip-existing: true
160185
packages-dir: bindings/python/dist
161186
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
162187

163188
- name: Publish to PyPI
164-
if: ${{ !contains(github.ref, '-') }}
165-
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
189+
if: ${{ !contains(env.RELEASE_TAG, '-') }}
190+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
166191
with:
167192
skip-existing: true
168193
packages-dir: bindings/python/dist

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