Skip to content

Commit 6a2bcc4

Browse files
authored
Merge branch 'apache:main' into main
2 parents 6a2efe2 + 044b45b commit 6a2bcc4

272 files changed

Lines changed: 32991 additions & 9910 deletions

File tree

Some content is hidden

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

.github/ISSUE_TEMPLATE/iceberg_bug_report.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ body:
2828
description: What Apache Iceberg Rust version are you using?
2929
multiple: false
3030
options:
31-
- 0.4.0 (latest version)
31+
- 0.6.0 (latest version)
32+
- 0.5.1
33+
- 0.4.0
3234
- 0.3.0
3335
- 0.2.0
3436
validations:

.github/actions/overwrite-package-version/action.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,24 @@ runs:
3838
env:
3939
TIMESTAMP: ${{ inputs.timestamp }}
4040
run: |
41-
CURRENT_VERSION=$(python -c "import toml; print(toml.load('bindings/python/pyproject.toml')['project']['version'])")
42-
NEW_VERSION="${CURRENT_VERSION}.dev${TIMESTAMP}"
43-
NEW_VERSION=$NEW_VERSION python -c "
41+
# Read the current version from the Rust crate's Cargo.toml
42+
CURRENT_VERSION=$(python -c "import toml; print(toml.load('bindings/python/Cargo.toml')['package']['version'])")
43+
export NEW_VERSION="${CURRENT_VERSION}.dev${TIMESTAMP}"
44+
echo "Current version: ${CURRENT_VERSION}"
45+
echo "New dev version: ${NEW_VERSION}"
46+
47+
# Update bindings/python/pyproject.toml:
48+
# - Set project.version = NEW_VERSION
49+
# - Ensure 'version' is not listed in project.dynamic
50+
python -c "
4451
import toml
4552
import os
4653
config = toml.load('bindings/python/pyproject.toml')
47-
config['project']['version'] = os.environ['NEW_VERSION']
54+
new_version = os.environ['NEW_VERSION']
55+
config['project']['version'] = new_version
56+
if 'dynamic' in config['project']:
57+
config['project']['dynamic'] = [v for v in config['project']['dynamic'] if v != 'version']
4858
with open('bindings/python/pyproject.toml', 'w') as f:
4959
toml.dump(config, f)
50-
print(f'Updated version to: {config[\"project\"][\"version\"]}')
60+
print(f'Updated version to: {new_version}')
5161
"

.github/workflows/audit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
security_audit:
4141
runs-on: ubuntu-latest
4242
steps:
43-
- uses: actions/checkout@v4
43+
- uses: actions/checkout@v5
4444
- name: Setup Rust toolchain
4545
uses: ./.github/actions/setup-builder
4646
with:

.github/workflows/bindings_python_ci.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,19 @@ on:
2222
branches:
2323
- main
2424
pull_request:
25-
branches:
26-
- main
25+
paths:
26+
- '**' # Include all files and directories in the repository by default.
27+
- '!.github/ISSUE_TEMPLATE/**' # Exclude files and directories that don't impact tests or code like templates, metadata, and documentation.
28+
- '!scripts/**'
29+
- '!website/**'
30+
- '!.asf.yml'
31+
- '!.gitattributes'
32+
- '!.gitignore'
33+
- '!CONTRIBUTING.md'
34+
- '!CHANGELOG.md'
35+
- '!LICENSE'
36+
- '!NOTICE'
37+
- '!README.md'
2738

2839
concurrency:
2940
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
@@ -33,16 +44,18 @@ jobs:
3344
check-rust:
3445
runs-on: ubuntu-latest
3546
steps:
36-
- uses: actions/checkout@v4
47+
- uses: actions/checkout@v5
3748
- name: Check format
49+
working-directory: "bindings/python"
3850
run: cargo fmt --all -- --check
3951
- name: Check clippy
52+
working-directory: "bindings/python"
4053
run: cargo clippy --all-targets --all-features -- -D warnings
4154

4255
check-python:
4356
runs-on: ubuntu-latest
4457
steps:
45-
- uses: actions/checkout@v4
58+
- uses: actions/checkout@v5
4659
- name: Install tools
4760
run: |
4861
pip install ruff
@@ -64,8 +77,8 @@ jobs:
6477
- macos-latest
6578
- windows-latest
6679
steps:
67-
- uses: actions/checkout@v4
68-
- uses: actions/setup-python@v5
80+
- uses: actions/checkout@v5
81+
- uses: actions/setup-python@v6
6982
with:
7083
python-version: 3.9
7184
- uses: PyO3/maturin-action@v1

.github/workflows/ci.yml

Lines changed: 62 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,26 @@ on:
2222
branches:
2323
- main
2424
pull_request:
25-
branches:
26-
- main
25+
paths:
26+
- '**' # Include all files and directories in the repository by default.
27+
- '!.github/ISSUE_TEMPLATE/**' # Exclude files and directories that don't impact tests or code like templates, metadata, and documentation.
28+
- '!scripts/**'
29+
- '!website/**'
30+
- '!.asf.yml'
31+
- '!.gitattributes'
32+
- '!.gitignore'
33+
- '!CONTRIBUTING.md'
34+
- '!CHANGELOG.md'
35+
- '!LICENSE'
36+
- '!NOTICE'
37+
- '!README.md'
2738

2839
concurrency:
2940
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
3041
cancel-in-progress: true
3142

3243
env:
33-
rust_msrv: "1.84.0"
44+
rust_msrv: "1.87"
3445

3546
jobs:
3647
check:
@@ -41,21 +52,22 @@ jobs:
4152
- ubuntu-latest
4253
- macos-latest
4354
steps:
44-
- uses: actions/checkout@v4
55+
- uses: actions/checkout@v5
4556

4657
- name: Setup Rust toolchain
4758
uses: ./.github/actions/setup-builder
4859

4960
- name: Check License Header
50-
uses: apache/skywalking-eyes/header@v0.7.0
61+
uses: apache/skywalking-eyes/header@v0.8.0
5162

52-
- name: Install taplo-cli
53-
uses: taiki-e/install-action@v2
54-
with:
55-
tool: taplo-cli@0.9.3
5663
- name: Check toml format
5764
run: make check-toml
5865

66+
- name: Install protoc
67+
uses: arduino/setup-protoc@v3
68+
with:
69+
repo-token: ${{ secrets.GITHUB_TOKEN }}
70+
5971
- name: Cargo format
6072
run: make check-fmt
6173

@@ -65,12 +77,8 @@ jobs:
6577
- name: Cargo clippy
6678
run: make check-clippy
6779

68-
- name: Install cargo-machete
69-
uses: taiki-e/install-action@v2
70-
with:
71-
tool: cargo-machete
7280
- name: Cargo Machete
73-
run: cargo machete
81+
run: make cargo-machete
7482

7583
build:
7684
runs-on: ${{ matrix.os }}
@@ -81,14 +89,31 @@ jobs:
8189
- macos-latest
8290
- windows-latest
8391
steps:
84-
- uses: actions/checkout@v4
92+
- name: Maximize build space (Ubuntu)
93+
if: matrix.os == 'ubuntu-latest'
94+
uses: easimon/maximize-build-space@master
95+
with:
96+
remove-dotnet: "true"
97+
remove-android: "true"
98+
remove-haskell: "true"
99+
remove-codeql: "true"
100+
remove-docker-images: "true"
101+
root-reserve-mb: 10240
102+
temp-reserve-mb: 10240
103+
104+
- uses: actions/checkout@v5
85105

86106
- name: Setup Rust toolchain
87107
uses: ./.github/actions/setup-builder
88108

89109
- name: Cache Rust artifacts
90110
uses: Swatinem/rust-cache@v2
91111

112+
- name: Install protoc
113+
uses: arduino/setup-protoc@v3
114+
with:
115+
repo-token: ${{ secrets.GITHUB_TOKEN }}
116+
92117
- name: Build
93118
run: make build
94119

@@ -101,7 +126,7 @@ jobs:
101126
- macos-latest
102127
- windows-latest
103128
steps:
104-
- uses: actions/checkout@v4
129+
- uses: actions/checkout@v5
105130

106131
- name: Setup Rust toolchain
107132
uses: ./.github/actions/setup-builder
@@ -118,27 +143,32 @@ jobs:
118143
- name: Maximize build space
119144
uses: easimon/maximize-build-space@master
120145
with:
121-
remove-dotnet: 'true'
122-
remove-android: 'true'
123-
remove-haskell: 'true'
124-
remove-codeql: 'true'
125-
remove-docker-images: 'true'
146+
remove-dotnet: "true"
147+
remove-android: "true"
148+
remove-haskell: "true"
149+
remove-codeql: "true"
150+
remove-docker-images: "true"
126151
root-reserve-mb: 10240
127152
temp-reserve-mb: 10240
128153

129-
- uses: actions/checkout@v4
154+
- uses: actions/checkout@v5
130155

131156
- name: Setup Rust toolchain
132157
uses: ./.github/actions/setup-builder
133158

159+
- name: Install protoc
160+
uses: arduino/setup-protoc@v3
161+
with:
162+
repo-token: ${{ secrets.GITHUB_TOKEN }}
163+
134164
- name: Cache Rust artifacts
135165
uses: Swatinem/rust-cache@v2
136166

137167
- name: Test
138168
run: cargo test --no-fail-fast --all-targets --all-features --workspace
139169

140-
- name: Async-std Test
141-
run: cargo test --no-fail-fast --all-targets --no-default-features --features "async-std" --features "storage-all" --workspace
170+
- name: Smol Test
171+
run: cargo test --no-fail-fast --all-targets --no-default-features --features "smol" --features "storage-all" --workspace
142172

143173
- name: Doc Test
144174
run: cargo test --no-fail-fast --doc --all-features --workspace
@@ -147,16 +177,16 @@ jobs:
147177
name: Verify MSRV
148178
runs-on: ubuntu-latest
149179
steps:
150-
- uses: actions/checkout@v4
151-
- name: Setup Nightly Rust toolchain
152-
uses: ./.github/actions/setup-builder
153-
- name: Generate minimal versions lockfile
154-
run: |
155-
cargo generate-lockfile -Z direct-minimal-versions -Z minimal-versions
180+
- uses: actions/checkout@v5
181+
- name: Install protoc
182+
uses: arduino/setup-protoc@v3
183+
with:
184+
repo-token: ${{ secrets.GITHUB_TOKEN }}
156185
- name: Setup MSRV Rust toolchain
157186
uses: ./.github/actions/setup-builder
158187
with:
159188
rust-version: ${{ env.rust_msrv }}
189+
- name: Setup Nightly Rust toolchain
190+
uses: ./.github/actions/setup-builder
160191
- name: Check MSRV
161-
run: |
162-
cargo +${{ env.rust_msrv }} check --locked --workspace
192+
run: make check-msrv

.github/workflows/ci_typos.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ jobs:
4040
env:
4141
FORCE_COLOR: 1
4242
steps:
43-
- uses: actions/checkout@v4
43+
- uses: actions/checkout@v5
4444
- name: Check typos
45-
uses: crate-ci/typos@v1.31.1
45+
uses: crate-ci/typos@v1.38.1

.github/workflows/publish.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,14 @@ name: Publish
2020
on:
2121
push:
2222
tags:
23-
- '*'
23+
# Trigger this workflow when tag follows the versioning format: v<major>.<minor>.<patch> OR v<major>.<minor>.<patch>-rc.<release_candidate>
24+
# Example valid tags: v0.4.0, v0.4.0-rc.1
25+
- "v[0-9]+.[0-9]+.[0-9]+"
26+
- "v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+"
2427
workflow_dispatch:
2528

2629
env:
27-
rust_msrv: "1.77.1"
30+
rust_msrv: "1.87"
2831

2932
jobs:
3033
publish:
@@ -38,13 +41,11 @@ jobs:
3841
- "crates/iceberg"
3942
- "crates/catalog/glue"
4043
- "crates/catalog/hms"
41-
- "crates/catalog/memory"
4244
- "crates/catalog/rest"
43-
# sql is not ready for release yet.
44-
# - "crates/catalog/sql"
45+
- "crates/catalog/sql"
4546
- "crates/integrations/datafusion"
4647
steps:
47-
- uses: actions/checkout@v4
48+
- uses: actions/checkout@v5
4849

4950
- name: Setup Rust toolchain
5051
uses: ./.github/actions/setup-builder
@@ -57,4 +58,4 @@ jobs:
5758
if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }}
5859
run: cargo publish --all-features
5960
env:
60-
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
61+
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

0 commit comments

Comments
 (0)