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

Add the ability to have unstable features #7423

Closed
jfecher opened this issue Feb 18, 2025 · 0 comments · Fixed by #7449
Closed

Add the ability to have unstable features #7423

jfecher opened this issue Feb 18, 2025 · 0 comments · Fixed by #7449
Labels
enhancement New feature or request
Milestone

Comments

@jfecher
Copy link
Contributor

jfecher commented Feb 18, 2025

Problem

Nargo currently only supports what we call "experimental features" where when used they will always issue an experimental feature warning but never stop compilation. We'd like to make this process opt-in so that even if a user uses a crate as a library which uses one of these features and they are ignoring warnings, they will still be alerted their library uses an experimental feature and would need to decide whether to opt-in or not.

Without this feature it is significantly more difficult to extend the language post 1.0.

Happy Case

Gating unstable features could function similarly to unstable features in cargo detailed here: https://doc.rust-lang.org/cargo/reference/unstable.html. One choice we could make is whether to merge this cli flag approach with the #[feature(name)] attribute Rust uses. The command-line flag would be a more broadly applicable approach, but controlling this in source code could be more clear for users coming from Rust. Note that #[feature(..)] is distinct from #[cfg(feature(...))] which has its own issue here.

We should test this out using enums before they are stabilized.

Workaround

None

Workaround Description

No response

Additional Context

No response

Project Impact

None

Blocker Context

No response

Would you like to submit a PR for this Issue?

None

Support Needs

No response

@jfecher jfecher added the enhancement New feature or request label Feb 18, 2025
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Noir Feb 18, 2025
@jfecher jfecher added this to the 1.0 milestone Feb 18, 2025
@github-project-automation github-project-automation bot moved this from 📋 Backlog to ✅ Done in Noir Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant