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 Experimental annotation and doc label #9244

Merged
merged 1 commit into from
May 11, 2020

Conversation

bcardiff
Copy link
Member

@bcardiff bcardiff commented May 7, 2020

The annotation can be used without args or with a single string argument (similar to Deprecated).

There is no semantics given to the annotation.

Eventually we can have a compiler flag that disables experimental (and maybe deprecated) features to stay in a strict version of the language/std-lib/shard.

For now is a way to document unstable features.

The annotation can be used without args or with a single string argument (similar to Deprecated).

There is no semantics given to the annotation.
@RX14
Copy link
Contributor

RX14 commented May 7, 2020

What do you have this in mind for?

@bcardiff
Copy link
Member Author

bcardiff commented May 8, 2020

When new modules and features in the std-lib is introduced, it will be better to signal them as experimental/subject-to-change. That way we can iterate. We could also use them for 1.0 to signal some other parts of the std-lib we might feel there are not as polished, if any.

Ruby, Nim, Kotlin advertise things as experimental. Then we can decide, without breaking the semver contract, whether the feature needs to be iterated or dropped.

I also envision in the future a way to stay on a non-experimental non-deprecated subset of the language/std-lib/shards if desired.

Although this PR will not serve for marking experimental language it serves as a starting point to the idea of experimental features as a whole.

@straight-shoota
Copy link
Member

Effectively, we have both in the past and present treated features as experimental. It seems like a good idea to formalize that internal knowledge.
We should have a separate discussion about what should be designated as experimantal, but there are definitely some possible candidates in current stdlib.

@RX14
Copy link
Contributor

RX14 commented May 8, 2020

I like the idea, I was just wondering if you had anything specific in mind which bought this feature to the top of your todo list. Especially interested in the pre-1.0 actions.

@bcardiff bcardiff added this to the 0.35.0 milestone May 11, 2020
@bcardiff bcardiff merged commit 73b5d93 into crystal-lang:master May 11, 2020
@bcardiff bcardiff deleted the feature/experimental branch May 13, 2020 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants