reactor / reactor-core

Non-Blocking Reactive Foundation for the JVM
http://projectreactor.io
Apache License 2.0
4.97k stars 1.2k forks source link

add `@Incubating` annotation #3647

Closed OlegDokuka closed 6 months ago

OlegDokuka commented 11 months ago

Rationale

Reactor is exploring new horizons so we need to have safe harbour for some of the enhancements we add. Functionality marked with @Incubating annotation would let us make breaking changes in functionality between minor incrmenets

He-Pin commented 10 months ago

FYI, Akka/Pekko is using @ApiMayChange

violetagg commented 6 months ago

@chemicL I think it's time to introduce this annotation. We have several options. Wdyt?

chemicL commented 6 months ago

I personally prefer @Incubating. It's also used by Micrometer, Hibernate, Gradle.

@UnstableApi is also tempting as it's used by Android.

@ApiMayChange from Akka was introduced alongside with other annotations, feels like it's not as self explanatory as the above.

For @Experimental, I'd prefer not to convey such a strongly discouraging semantic that this word brings. To me, incubating is something most appropriate as long as our intention is to evolve the API but we're working on it because we believe something will make it into the API, while we are not sure yet how it will exactly be shaped. Experimental conveys the message that we might not be serious about a feature so collecting feedback might be more difficult.

WDYT @violetagg ?

violetagg commented 6 months ago

ok with @Incubating