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

RFC: Give users control over feature unification #3692

Merged
merged 37 commits into from
Nov 2, 2024
Merged
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
97d49c2
Skeleton
epage Sep 11, 2024
c3b17e8
Initial
epage Sep 11, 2024
a921e09
Set RFC number
epage Sep 11, 2024
7d6810d
Fix typo
epage Sep 12, 2024
5b13f93
Fix typo
epage Sep 12, 2024
750b5f1
Fix typo
epage Sep 12, 2024
4ebf0ff
Remove boilerplate
epage Sep 12, 2024
703a636
Remove copy/pasted header
epage Sep 12, 2024
e7a4f27
Move mutually exclusive features to a Drawback
epage Sep 12, 2024
f2bb64a
Cover no_std with std features being unified
epage Sep 12, 2024
c5bbeee
Fix typo
epage Sep 12, 2024
65e6988
Note cargo-hakari's build/host unification features
epage Sep 12, 2024
e752830
Add build/host unification qualification
epage Sep 12, 2024
0cebf5f
Fix typo
epage Sep 12, 2024
363be82
Add citation
epage Sep 12, 2024
6860e51
Note ecosystem importance of build/host unification
epage Sep 12, 2024
8b114b3
Fix typos
epage Sep 12, 2024
4bbdc51
fix: Clarify some points
epage Sep 17, 2024
8f848a4
Expand on future possibilities
epage Sep 17, 2024
c2a4ac1
Expand on dev/normal unification
epage Sep 17, 2024
d35c626
fix: Typo
epage Sep 19, 2024
760b618
fix: Clarify statement
epage Sep 19, 2024
cf07a12
fix: Whatever
epage Sep 19, 2024
51839e5
fix: Clarify statements
epage Sep 19, 2024
6318f47
fix: Clarify statement
epage Sep 19, 2024
cd2af9a
fix: Typi
epage Sep 19, 2024
1b2a3d2
fix: Clarify statement
epage Sep 19, 2024
eb8ffb2
fix: Typo
epage Sep 19, 2024
ff5e82a
fix: Link out to another related Issue
epage Sep 20, 2024
0aac9ab
fix: Remove issue link
epage Sep 30, 2024
c0158e7
fix: Disambiguate each use of 'target'
epage Oct 1, 2024
969cb03
Make cargo-install interaction explicit
epage Oct 2, 2024
a071fe4
alt: Build X as if its a dependency of Y
epage Oct 3, 2024
0e1fbc4
fix: Clarify summary
epage Oct 3, 2024
e3fa072
fix: Clarify this RFC offers no new concepts
epage Oct 3, 2024
f2075e1
fix(drawbacks): Put more emphasis on relationship with --workspace, m…
epage Oct 28, 2024
203e6fc
Add tracking issue
ehuss Nov 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions text/3692-feature-unification.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,16 +91,17 @@ Specify which packages participate in [feature unification](https://doc.rust-lan

This increases entropy within Cargo and the universe at large.

If someone enables mutually exclusive features in different packages, then `workspace` unification will fail.
Officially, features are supposedd to be additive., making mutuallyu exclusive features officially unsupported.
epage marked this conversation as resolved.
Show resolved Hide resolved
Instead, effort should be put towards [official mutually exclusive globals](https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618).

# Rationale and alternatives
[rationale-and-alternatives]: #rationale-and-alternatives

This is done in the config instead of the manifest:
- As this can change from run-to-run, this covers more use cases
- As this fits easily into the `resolver` table. there is less design work

This will not support exceptions for mutually exclusive features because those are officially unsupported.
Instead, effort should be put towards [official mutually exclusive globals](https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618).

# Prior art
[prior-art]: #prior-art

Expand Down