Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow reexporting of features between packages #712

Merged
merged 2 commits into from
Oct 17, 2014

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