Skip to content

v0.3.60 release#267

Merged
bradhe merged 7 commits intomainfrom
develop
Apr 27, 2026
Merged

v0.3.60 release#267
bradhe merged 7 commits intomainfrom
develop

Conversation

@bradhe
Copy link
Copy Markdown
Contributor

@bradhe bradhe commented Apr 25, 2026

  • Explicitly add boto dependency to the Iceberg stack
  • Bump version to v0.3.60
  • Use node 24 when building/releasing new NPM versions

Summary by CodeRabbit

  • Chores

    • Bumped project workspace version to 0.3.60-rc.1.
  • New Features

    • Expanded the "iceberg" optional install to include boto3 for AWS integrations.
  • Bug Fixes

    • Improved catalog environment-variable handling: explicit environment keys are preferred and names with hyphens are mapped to underscores for more reliable env-based catalog configuration.

@bradhe bradhe requested a review from codingcyclist April 25, 2026 12:54
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 25, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Bumped project/workspace versions to a 0.3.60 pre-release, added boto3>=1.35.0 to the iceberg optional dependency in pyproject.toml, updated Node.js in a GitHub Actions job to 24, and changed catalog env-var handling to prefer API property.environment_variable and map -_ for pyiceberg names.

Changes

Cohort / File(s) Summary
Python packaging
pyproject.toml
Updated [project].version 0.3.590.3.60rc1; added boto3>=1.35.0 to [project.optional-dependencies].iceberg alongside polars, pyarrow, pyiceberg.
Rust workspace manifest
Cargo.toml
Updated [workspace.package].version 0.3.590.3.60-rc.1.
Catalog env var handling (Rust)
crates/tower-cmd/src/run.rs
get_catalogs now prefers property.environment_variable as the environment key, falling back to create_pyiceberg_catalog_property_name; that helper now maps hyphens (-) → underscores (_) when building PYICEBERG_CATALOG__... names.
CI workflow
.github/workflows/publish-npm.yml
Node.js version for publish job changed from 22 → 24; npm upgrade step renamed to “Upgrade npm to latest patch” while still running npm install -g npm@latest.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • codingcyclist
  • socksy
  • jo-sm

Poem

🐇 I hop through lines and stitch each name,
Dashes turn to underscores — that's my game.
Versions nudged and boto3 joins the song,
CI learns Node 24 and sings along.
Catalog keys sleep tidy all night long. 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'v0.3.60 release' is vague and generic, using a non-descriptive version number format without clarifying the primary changes in the changeset. Consider using a more descriptive title that highlights the main change, such as 'Add boto3 dependency to Iceberg stack' or 'Release v0.3.60 with Iceberg boto3 support', to better convey the purpose of the release.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pyproject.toml`:
- Line 51: The pyproject currently pins boto3 in the "iceberg" extra list
("boto3>=1.35.0"); remove that entry unless your code actually imports boto3 or
needs pyiceberg extras like "glue", "dynamodb" or "rest-sigv4". If boto3 is
required, document the reason in the pyproject (or project README) and relax the
pin to match pyiceberg's documented minimum (e.g., "boto3>=1.24.59") instead of
forcing >=1.35.0, and keep the dependency only if you explicitly use boto3 APIs
or those pyiceberg extras.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: dc689e9b-06e2-47e7-b34a-2ac2743ad3f7

📥 Commits

Reviewing files that changed from the base of the PR and between 17b41d7 and 15e08da.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • pyproject.toml

Comment thread pyproject.toml
[project.optional-dependencies]
ai = ["huggingface-hub>=0.34.3", "ollama>=0.5.3"]
iceberg = ["polars>=1.39.3", "pyarrow>=23.0.1", "pyiceberg>=0.11.1"]
iceberg = ["polars>=1.39.3", "pyarrow>=23.0.1", "pyiceberg>=0.11.1", "boto3>=1.35.0"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Does pyiceberg version 0.11.1 depend on boto3 and what version range does it require?

💡 Result:

No, pyiceberg version 0.11.1 does not depend on boto3 as a core requirement. boto3 is an optional dependency required only for specific extras like 'glue', 'dynamodb', and 'rest-sigv4', with version range >=1.24.59.

Citations:


Remove or justify the explicit boto3 dependency.

boto3 is not a transitive dependency of pyiceberg 0.11.1—it's only optional for specific extras (glue, dynamodb, rest-sigv4). The code doesn't import boto3 directly or use any of these extras; S3 access is entirely delegated to pyiceberg. Unless boto3 is required for a feature not shown in the provided snippets, this dependency should be removed to avoid unnecessary bloat and version management overhead.

If boto3 is genuinely required, document the reason and note that pyiceberg expects >=1.24.59, whereas this pins >=1.35.0.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pyproject.toml` at line 51, The pyproject currently pins boto3 in the
"iceberg" extra list ("boto3>=1.35.0"); remove that entry unless your code
actually imports boto3 or needs pyiceberg extras like "glue", "dynamodb" or
"rest-sigv4". If boto3 is required, document the reason in the pyproject (or
project README) and relax the pin to match pyiceberg's documented minimum (e.g.,
"boto3>=1.24.59") instead of forcing >=1.35.0, and keep the dependency only if
you explicitly use boto3 APIs or those pyiceberg extras.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/tower-cmd/src/run.rs`:
- Around line 630-634: The code currently uses
property.environment_variable.unwrap_or_else(...) and treats Some("") as valid,
allowing an empty env key; change the logic to treat empty strings like None by
checking for non-empty values before using unwrap_or_else — e.g., use
property.environment_variable.as_deref().filter(|s| !s.is_empty()).map(|s|
s.to_string()).unwrap_or_else(||
create_pyiceberg_catalog_property_name(&catalog.name, &property.name)) so empty
strings fall back to create_pyiceberg_catalog_property_name; ensure references
to property.environment_variable, create_pyiceberg_catalog_property_name,
catalog.name and property.name are used accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 205b73e0-0898-482d-a18b-f5e4a0de22b6

📥 Commits

Reviewing files that changed from the base of the PR and between d28642b and 0978742.

📒 Files selected for processing (1)
  • crates/tower-cmd/src/run.rs

Comment thread crates/tower-cmd/src/run.rs
@bradhe bradhe merged commit e11b5cc into main Apr 27, 2026
32 of 33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants