This is an automated email from the ASF dual-hosted git repository.
CTTY pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git
The following commit(s) were added to refs/heads/main by this push:
new 6ea742cbb ci: add check_standalone job to verify each crate compiles
independently (#2389)
6ea742cbb is described below
commit 6ea742cbb59213137d6a772e26edcedc7ded29d2
Author: Kevin Liu <[email protected]>
AuthorDate: Thu May 14 14:46:19 2026 -0400
ci: add check_standalone job to verify each crate compiles independently
(#2389)
## Which issue does this PR close?
<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes #123` indicates that this PR will close issue #123.
-->
- Relates to #2385
## What changes are included in this PR?
<!--
Provide a summary of the modifications in this PR. List the main changes
such as new features, bug fixes, refactoring, or any other updates.
-->
Adds a CI job that checks each workspace crate individually (`cargo
check -p <crate> --all-targets`),
catching missing feature declarations that are otherwise masked by
Cargo's feature unification
across the workspace.
## Are these changes tested?
<!--
Specify what test covers (unit test, integration test, etc.).
If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->
Co-authored-by: Copilot <[email protected]>
---
.github/workflows/ci.yml | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 393e010af..7d956bc02 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -111,6 +111,35 @@ jobs:
- name: Build
run: make build
+ # Checks each crate individually to catch missing feature declarations that
+ # are otherwise masked by Cargo's feature unification across the workspace.
+ check_standalone:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ with:
+ persist-credentials: false
+
+ - name: Setup Rust toolchain
+ uses: ./.github/actions/setup-builder
+
+ - name: Cache Rust artifacts
+ uses: swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
+
+ - name: Install protoc
+ uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b #
v3
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Check each crate standalone
+ run: |
+ for pkg in $(cargo metadata --no-deps --format-version=1 | jq -r
'.packages[].name'); do
+ echo "Checking $pkg..."
+ cargo check -p "$pkg" --all-targets || exit 1
+ done
+
+ # Verifies the core iceberg crate compiles without default features, ensuring
+ # optional functionality is properly gated behind feature flags.
build_with_no_default_features:
runs-on: ${{ matrix.os }}
strategy: