Skip to content

Optional features are enabled even when not activated #2911

Closed as not planned
@fstephany

Description

@fstephany

Bug Description

Optional features are unexpectedly activated

Minimal Reproduction

  1. Create empty project
$ cargo new deps-test
$ cd deps-test
$ cargo add sqlx
  1. Specify the features in the dependencies section:
[dependencies]
sqlx = { version = "0.7.3", default-features = false, features = [
    "runtime-tokio-rustls",
    "postgres"
] }

All is good, the Cargo.lock does not include unnecessary clutter (even though sqlx-macrosis already there):

[[package]]
name = "sqlx"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
dependencies = [
 "sqlx-core",
 "sqlx-macros",
 "sqlx-postgres",
]
  1. Add the uuid feature:
[dependencies]
sqlx = { version = "0.7.3", default-features = false, features = [
    "runtime-tokio-rustls",
    "postgres",
    "uuid"
] }

Check the Cargo.lock again. There are now sqlite and mysql listed while they were not expected?

[[package]]
name = "sqlx"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
dependencies = [
 "sqlx-core",
 "sqlx-macros",
 "sqlx-mysql",
 "sqlx-postgres",
 "sqlx-sqlite",
]

Info

  • SQLx version: 0.7.3
  • SQLx features enabled: See example
  • Database server and version: Postgres
  • Operating system: Fedora 39
  • rustc --version: 1.74.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions