Skip to content

Commit ad208db

Browse files
authored
Merge branch 'main' into ctty/dp-tbl
2 parents 7ba767f + 20ce7a5 commit ad208db

File tree

27 files changed

+1690
-146
lines changed

27 files changed

+1690
-146
lines changed
Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#!/bin/bash
2-
#
31
# Licensed to the Apache Software Foundation (ASF) under one
42
# or more contributor license agreements. See the NOTICE file
53
# distributed with this work for additional information
@@ -16,18 +14,22 @@
1614
# KIND, either express or implied. See the License for the
1715
# specific language governing permissions and limitations
1816
# under the License.
19-
#
20-
21-
set -e
22-
23-
start-master.sh -p 7077
24-
start-worker.sh spark://spark-iceberg:7077
2517

26-
echo "Starting provision"
27-
python3 ./provision.py
18+
name: Get MSRV
19+
description: Get the Minimum Supported Rust Version from Cargo.toml
2820

29-
echo "Finished provisioning"
30-
touch /tmp/ready
21+
outputs:
22+
msrv:
23+
description: The MSRV extracted from Cargo.toml
24+
value: ${{ steps.get-msrv.outputs.msrv }}
3125

32-
echo "Print logs"
33-
tail -f $SPARK_HOME/logs/*
26+
runs:
27+
using: composite
28+
steps:
29+
- name: Get MSRV
30+
id: get-msrv
31+
shell: bash
32+
run: |
33+
msrv=$(grep '^rust-version' Cargo.toml | sed 's/.*"\(.*\)".*/\1/')
34+
echo "msrv=$msrv" >> $GITHUB_OUTPUT
35+
echo "MSRV is $msrv"

.github/workflows/audit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ on:
3939
jobs:
4040
security_audit:
4141
runs-on: ubuntu-latest
42+
if: github.repository == 'apache/iceberg-rust'
4243
steps:
4344
- uses: actions/checkout@v6
4445
- name: Setup Rust toolchain

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ concurrency:
4040
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
4141
cancel-in-progress: true
4242

43-
env:
44-
rust_msrv: "1.87"
45-
4643
jobs:
4744
check:
4845
runs-on: ${{ matrix.os }}
@@ -184,10 +181,13 @@ jobs:
184181
uses: arduino/setup-protoc@v3
185182
with:
186183
repo-token: ${{ secrets.GITHUB_TOKEN }}
184+
- name: Get MSRV
185+
id: get-msrv
186+
uses: ./.github/actions/get-msrv
187187
- name: Setup MSRV Rust toolchain
188188
uses: ./.github/actions/setup-builder
189189
with:
190-
rust-version: ${{ env.rust_msrv }}
190+
rust-version: ${{ steps.get-msrv.outputs.msrv }}
191191
- name: Setup Nightly Rust toolchain
192192
uses: ./.github/actions/setup-builder
193193
- name: Check MSRV

.github/workflows/publish.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ on:
2626
- "v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+"
2727
workflow_dispatch:
2828

29-
env:
30-
rust_msrv: "1.87"
31-
3229
jobs:
3330
publish:
3431
runs-on: ubuntu-latest
@@ -48,10 +45,14 @@ jobs:
4845
steps:
4946
- uses: actions/checkout@v6
5047

48+
- name: Get MSRV
49+
id: get-msrv
50+
uses: ./.github/actions/get-msrv
51+
5152
- name: Setup Rust toolchain
5253
uses: ./.github/actions/setup-builder
5354
with:
54-
rust-version: ${{ env.rust_msrv }}
55+
rust-version: ${{ steps.get-msrv.outputs.msrv }}
5556

5657
- name: Publish ${{ matrix.package }}
5758
working-directory: ${{ matrix.package }}

.github/workflows/release_python.yml

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@ on:
2323
types:
2424
- completed
2525
workflow_dispatch:
26-
27-
env:
28-
rust_msrv: "1.87"
29-
30-
concurrency:
31-
group: ${{ github.workflow }}-${{ github.event.workflow_run.head_branch }}-${{ github.event_name }}
32-
cancel-in-progress: true
26+
inputs:
27+
release_tag:
28+
description: 'Release tag (e.g., v0.4.0 or v0.4.0-rc.1)'
29+
required: true
30+
type: string
3331

3432
permissions:
3533
contents: read
@@ -49,12 +47,20 @@ jobs:
4947
cargo-version: ${{ steps.validate.outputs.cargo-version }}
5048
is-rc: ${{ steps.validate.outputs.is-rc }}
5149
steps:
50+
- uses: actions/checkout@v6
51+
if: ${{ github.event_name == 'workflow_dispatch' }}
52+
5253
- name: Validate release tag format
5354
id: validate
55+
# Use input for workflow_dispatch, otherwise use `workflow_run.head_branch`
5456
# Note, `workflow_run.head_branch` does not contain `refs/tags/` prefix, just the tag name, i.e. `v0.4.0` or `v0.4.0-rc.1`
5557
# Valid formats: v<major>.<minor>.<patch> OR v<major>.<minor>.<patch>-rc.<release_candidate>
5658
run: |
57-
RELEASE_TAG="${{ github.event.workflow_run.head_branch }}"
59+
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
60+
RELEASE_TAG="${{ github.event.inputs.release_tag }}"
61+
else
62+
RELEASE_TAG="${{ github.event.workflow_run.head_branch }}"
63+
fi
5864
echo "Validating release tag: $RELEASE_TAG"
5965
if [[ ! "$RELEASE_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$ ]]; then
6066
echo "❌ Invalid release tag format: $RELEASE_TAG"
@@ -68,6 +74,26 @@ jobs:
6874
CARGO_VERSION="${RELEASE_TAG#v}"
6975
echo "Cargo version (without v prefix): $CARGO_VERSION"
7076
77+
# For manual triggers, validate that the tag matches the version in Cargo.toml
78+
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
79+
# Extract base version (without -rc.X suffix) for comparison with Cargo.toml
80+
BASE_VERSION="${CARGO_VERSION%-rc.*}"
81+
echo "Base version (for Cargo.toml comparison): $BASE_VERSION"
82+
83+
# Read version from Cargo.toml and validate it matches
84+
CARGO_TOML_VERSION=$(grep '^version = ' bindings/python/Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
85+
echo "Version in bindings/python/Cargo.toml: $CARGO_TOML_VERSION"
86+
87+
if [ "$BASE_VERSION" != "$CARGO_TOML_VERSION" ]; then
88+
echo "❌ Version mismatch!"
89+
echo " Release tag base version: $BASE_VERSION"
90+
echo " bindings/python/Cargo.toml version: $CARGO_TOML_VERSION"
91+
echo "Please ensure the release tag matches the version in Cargo.toml"
92+
exit 1
93+
fi
94+
echo "✅ Version matches bindings/python/Cargo.toml"
95+
fi
96+
7197
# Check if this is a release candidate
7298
if [[ "$RELEASE_TAG" =~ -rc\.[0-9]+$ ]]; then
7399
IS_RC="true"
@@ -147,10 +173,14 @@ jobs:
147173
- uses: actions/setup-python@v6
148174
with:
149175
python-version: 3.12
176+
- name: Get MSRV
177+
id: get-msrv
178+
uses: ./.github/actions/get-msrv
179+
150180
- name: Setup Rust toolchain
151181
uses: ./.github/actions/setup-builder
152182
with:
153-
rust-version: ${{ env.rust_msrv }}
183+
rust-version: ${{ steps.get-msrv.outputs.msrv }}
154184
- uses: PyO3/maturin-action@v1
155185
with:
156186
target: ${{ matrix.target }}

.github/workflows/release_python_nightly.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ on:
2222
- cron: "0 0 * * *" # Runs at midnight UTC every day
2323
workflow_dispatch: # Allows manual triggering
2424

25-
env:
26-
rust_msrv: "1.87"
27-
2825
permissions:
2926
contents: read
3027

@@ -88,10 +85,14 @@ jobs:
8885
with:
8986
python-version: 3.12
9087

88+
- name: Get MSRV
89+
id: get-msrv
90+
uses: ./.github/actions/get-msrv
91+
9192
- name: Setup Rust toolchain
9293
uses: ./.github/actions/setup-builder
9394
with:
94-
rust-version: ${{ env.rust_msrv }}
95+
rust-version: ${{ steps.get-msrv.outputs.msrv }}
9596

9697
- uses: PyO3/maturin-action@v1
9798
with:

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

NOTICE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Apache Iceberg Rust
2-
Copyright 2023-2024 The Apache Software Foundation
2+
Copyright 2023-2026 The Apache Software Foundation
33

44
This product includes software developed at
55
The Apache Software Foundation (http://www.apache.org/).

crates/catalog/s3tables/NOTICE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Apache Iceberg Rust
2-
Copyright 2023-2024 The Apache Software Foundation
2+
Copyright 2023-2026 The Apache Software Foundation
33

44
This product includes software developed at
55
The Apache Software Foundation (http://www.apache.org/).

0 commit comments

Comments
 (0)