qsharp-compiler icon indicating copy to clipboard operation
qsharp-compiler copied to clipboard

Allow marking Q# functions and operations as unstable / experimental

Open cgranade opened this issue 4 years ago • 2 comments

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 avatar Apr 23 '21 21:04 cgranade

Sounds reasonable to me.

bettinaheim avatar Apr 24 '21 03:04 bettinaheim

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. ♥

cgranade avatar Apr 28 '21 07:04 cgranade