Skip to content

Conversation

@if0ne
Copy link
Contributor

@if0ne if0ne commented Nov 7, 2025

Hi there! When using the adbc_driver_manager crate on Windows, it's impossible to build the project because the adbc_driver_manager dependency fails to compile. Windows crates are marked as optional and are not included in any of the crate's features. To make it work, the optional flag needs to be removed.

@if0ne if0ne requested a review from wjones127 as a code owner November 7, 2025 18:01
@github-actions github-actions bot added this to the ADBC Libraries 22 milestone Nov 7, 2025
@amoeba
Copy link
Member

amoeba commented Nov 7, 2025

Hi @if0ne, thanks for the PR. I think you're right. Marking the deps as optional without an enabling feature doesn't seem right. Marking this as optional goes back to 92c26ec.

The intention may have been to make the ADBC Driver Manifest support optional on Windows but it would make more sense to do that as a feature flag.

@eitsupi do you want to take a look here?

@eitsupi
Copy link
Contributor

eitsupi commented Nov 8, 2025

Thanks for pointing that out, it's definitely my mistake in #3197.
I'll check it out.

Copy link
Contributor

@eitsupi eitsupi left a comment

Choose a reason for hiding this comment

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

In the current version, Windows-specific dependencies have been mistakenly made into optional features.

❯ cargo add adbc_driver_manager                                                                                                                 
    Updating crates.io index                                                                                                                    
      Adding adbc_driver_manager v0.21.0 to dependencies
             Features:
             - driver_manager_test_lib
             - driver_manager_test_manifest_user
             - windows-registry
             - windows-sys
    Updating crates.io index
     Locking 69 packages to latest Rust 1.91.0 compatible versions

This issue will be resolved by this.

❯ cargo add adbc_driver_manager --git https://github.com/if0ne/arrow-adbc
    Updating git repository `https://github.com/if0ne/arrow-adbc`                                                                               
    Updating git submodule `https://github.com/apache/arrow-testing.git`
      Adding adbc_driver_manager (git) to dependencies
             Features:
             - driver_manager_test_lib
             - driver_manager_test_manifest_user
    Updating git repository `https://github.com/if0ne/arrow-adbc`
    Updating crates.io index
     Locking 71 packages to latest Rust 1.91.0 compatible versions

Thank you!

@lidavidm lidavidm merged commit 320fd6e into apache:main Nov 9, 2025
9 checks passed
@lidavidm
Copy link
Member

lidavidm commented Nov 9, 2025

A good follow up here would be to add tests of adbc-driver-manager in the CI so we can catch this in the future.

amoeba added a commit that referenced this pull request Nov 12, 2025
Adds regression tests for the Windows-only issue found in
#3693.

Changes:

- Adds to basic regression tests to the `driver_manager` crate tests
which ensure the Windows-only deps are pulled in at build/test time
- Changes the Rust workflow (`rust.yml`) to now also run tests with
default features, in addition to all features. We were previously only
running the tests with all features enabled which was hiding the mistake
originally caught in #3693. Now
we run tests both ways.
- Minor: Adds the Debug trait to the `DriverInfo` struct so the above
tests pass
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.

4 participants