-
Notifications
You must be signed in to change notification settings - Fork 2.9k
private/hidden features #10882
Copy link
Copy link
Open
rust-lang/rfcs
#3487Labels
A-featuresArea: features — conditional compilationArea: features — conditional compilationC-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`Category: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`S-needs-rfcStatus: Needs an RFC to make progress.Status: Needs an RFC to make progress.
Metadata
Metadata
Assignees
Labels
A-featuresArea: features — conditional compilationArea: features — conditional compilationC-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`Category: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`S-needs-rfcStatus: Needs an RFC to make progress.Status: Needs an RFC to make progress.
Type
Fields
Give feedbackNo fields configured for issues without a type.
It can sometimes be useful to have a feature that you do not want users to use.
docs.rs has a convention that features prefixed with an underscore are not displayed in its UI. Looking through crates.io, I found the following packages declaring features with a leading underscore: https://gist.github.com/ehuss/c2c759067266d530712fc98afcb8513d. The majority look like they are intended to be hidden or internal only, but some are ambiguous.
To some degree, the need for this has been alleviated with the introduction of
dep:prefixes which remove the implicit feature created by optional dependencies. However, there are still some use cases.Some example use cases may be:
doc(cfg)?)It is not clear what restrictions a private/hidden feature should have. Not displaying them in the UI and documentation seems useful, but are there other restrictions that can be added? One option is to prevent the use of the feature in a
[dependencies]table and only enabled via the CLI or other features in the[features]table, but I'm concerned that rules out some use cases (see gist for some examples).Proposed syntax:
I'm opening this issue to track this feature request, but this isn't something we will likely pursue in the near term. This will require an RFC to explore the design in more detail.
See also:
visibilityattribute for its configurations