Skip to content
This repository has been archived by the owner on Jan 12, 2024. It is now read-only.

Allow marking Q# functions and operations as unstable / experimental #998

Open
cgranade opened this issue Apr 23, 2021 · 2 comments
Open
Labels
area: language Changes to the Q# language enhancement New request or suggestion for an improvement

Comments

@cgranade
Copy link
Contributor

Is your feature request related to a problem? Please describe.
It would be helpful to be able to mark Q# functions or operations as experimental and/or unstable, raising a warning unless a user explicitly opts-in to unstable features. In particular, this would help accelerate libraries development by letting us get feedback on draft and prototype versions of new features, and would allow us to accept experimental features without necessarily blocking on API review.

Describe the solution you'd like
A new attribute, @Unstable(), that could be applied to functions, operations, or UDT declarations, and a new <AllowUnstable> MSBuild property that allows opt-in to using unstable features without warnings.

Describe alternatives you've considered
It may be helpful as well to add @Stable for marking which version features first became stable in (similar to Rust's #[stable("1.x.y")] attribute).

@cgranade cgranade added enhancement New request or suggestion for an improvement needs triage An initial review by a maintainer is needed labels Apr 23, 2021
@bettinaheim
Copy link
Contributor

Sounds reasonable to me.

@bettinaheim bettinaheim added area: language Changes to the Q# language and removed needs triage An initial review by a maintainer is needed labels Apr 24, 2021
@cgranade
Copy link
Contributor Author

Sounds reasonable to me.

Great, thank you! If it's alright, then, I'll get an API proposal for the attribute going so that that isn't blocking an implementation. ♥

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area: language Changes to the Q# language enhancement New request or suggestion for an improvement
Projects
None yet
Development

No branches or pull requests

2 participants