Skip to content

ci: check lance-context with default features - #225

Merged
beinan merged 2 commits into
lance-format:mainfrom
beinan:ci/cover-default-features
Jul 29, 2026
Merged

ci: check lance-context with default features#225
beinan merged 2 commits into
lance-format:mainfrom
beinan:ci/cover-default-features

Conversation

@beinan

@beinan beinan commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #224, which fixed the immediate release breakage. This addresses why CI never caught it.

The gap

The two jobs compile lance-context with different feature sets:

command remote
style.yml cargo clippy --workspace --all-targets on--workspace unions all members' features, and lance-context-server/-client both enable it
release.yml cargo check --manifest-path crates/lance-context/Cargo.toml offdefault = []

So CI has never compiled this crate in its default configuration. Code behind #[cfg(feature = "remote")] is only ever seen in the enabled state.

That is exactly how #224 slipped through: an import used solely by connect_or_create (which is remote-gated) looked fine to --workspace clippy and only became an unused import in the release job's single-crate check.

Change

Add one explicit clippy step covering the default-feature configuration the release job actually uses.

Verification

Note

Stacked on #224, so this branch contains that fix too and its CI is green. Merge #224 first and this diff reduces to the workflow change alone.

A broader option is cargo hack --feature-powerset across the workspace, which would cover every crate rather than just this one. That is a heavier change in both CI time and setup, so I kept this targeted — happy to go that route instead if you'd prefer.

🤖 Generated with Claude Code

beinan and others added 2 commits July 29, 2026 07:21
`CreateGenericStoreRequest` is only referenced by `connect_or_create`,
which is `#[cfg(feature = "remote")]`. Importing it unconditionally made
it an unused import in default-feature builds, failing the release
workflow's `cargo check` under `-D warnings`.

Move the import into the existing `#[cfg(feature = "remote")]` group so
it is present exactly where it is used.

Co-Authored-By: Claude <noreply@anthropic.com>
`cargo clippy --workspace` unions the feature sets of all members, so
lance-context is always compiled with `remote` enabled by
lance-context-server and -client. The release workflow instead runs
`cargo check --manifest-path crates/lance-context/Cargo.toml`, where
`default = []` leaves `remote` off -- a combination CI never exercised.

That gap let an unused import behind `#[cfg(feature = "remote")]` reach
main and fail the release job. Add an explicit default-feature clippy
run so this class of cfg-gated breakage surfaces on the PR instead.

Verified the new step fails on the offending commit and passes with the
fix applied.

Co-Authored-By: Claude <noreply@anthropic.com>
@beinan
beinan merged commit c7290c9 into lance-format:main Jul 29, 2026
9 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.

1 participant