Skip to content

Conversation

@alexcrichton
Copy link
Member

As pointed in #633, it's currently not possible for a package to reexport the
feature of another package due to the limitations of how features are defined.

This commit adds support for this ability by allowing features of the form
foo/bar in the features section of the manifest. This form indicates that
the dependency foo should have its bar feature enabled. Additionally, it is
not required that foo is an optional dependency.

This does not allow features of the form foo/bar in a [dependencies]
features section as dependencies shouldn't be enabling features for other
dependencies.

At the same time, this passes through features to build commands to solve a few more issues.

Closes #97
Closes #601 (this is an equivalent solution for that problem)
Closes #633
Closes #674

As pointed in rust-lang#633, it's currently not possible for a package to reexport the
feature of another package due to the limitations of how features are defined.

This commit adds support for this ability by allowing features of the form
`foo/bar` in the `features` section of the manifest. This form indicates that
the dependency `foo` should have its `bar` feature enabled. Additionally, it is
not required that `foo` is an optional dependency.

This does not allow features of the form `foo/bar` in a `[dependencies]`
features section as dependencies shouldn't be enabling features for other
dependencies.

Closes rust-lang#633
Closes rust-lang#674
Closes rust-lang#97
Closes rust-lang#601 (this is an equivalent solution for that problem)
bors added a commit that referenced this pull request Oct 17, 2014
As pointed in #633, it's currently not possible for a package to reexport the
feature of another package due to the limitations of how features are defined.

This commit adds support for this ability by allowing features of the form
`foo/bar` in the `features` section of the manifest. This form indicates that
the dependency `foo` should have its `bar` feature enabled. Additionally, it is
not required that `foo` is an optional dependency.

This does not allow features of the form `foo/bar` in a `[dependencies]`
features section as dependencies shouldn't be enabling features for other
dependencies.

At the same time, this passes through features to build commands to solve a few more issues.

Closes #97
Closes #601 (this is an equivalent solution for that problem)
Closes #633
Closes #674
@bors bors merged commit 27e0224 into rust-lang:master Oct 17, 2014
@alexcrichton alexcrichton deleted the issue-633 branch October 17, 2014 22:37
bors added a commit that referenced this pull request Oct 22, 2014
This series of commits is rebased on top of #712 to avoid conflicts, and it adds the ability to solve version constraints as part of the resolution process. This is a critical step forward in bringing the registry online as it makes it possible for cargo to figure out what to do in the face of many uploaded versions of a package to the registry.

r? @wycats
mqudsi added a commit to neosmart/cryptostream that referenced this pull request Dec 12, 2019
The cleaner way is to take advantage of the single-dependency-deep
"slashed features" support in Cargo.toml to set features of direct
dependencies (not affecting recursive depnedencies) as implemented in
rust-lang/cargo#712
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants