You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In many cases, we can't have an ability to include a "nice to have" operator into the reactor-core library. However, such operators could make sense for some use-cases, and many of the Reactor's users could find it use-full as well. Therefore this issue is about creating an incubation process which allows to include any use-full operator in the reactor-extra first and after some incubation period move it to reactor-core or keep it as an add-on feature in the reactor-extra.
The following is a brief description of how the incubation process can look like and the main intent of this issue is to start a discussion and make final decision after all.
Incubating process
In order to understand whether the operator is useful or not we have to have a specific incubation process which MUST include the following steps:
Create Issue Title must include Operator name and starts with Incubation Proposal. For example:
Incubation Proposal:SwitchTransformFlux
Content must include the purpose of the operator, at least one use-case that will be useful for a wide audience. For example:
Purpose: Can transform flux based on the first element of the stream... Use-case Elements Routing based on the first element in the stream...
Discussion follow-up and voting process which might be exposed as issue liking, etc.
Providing PR with the reference implementation.
Note, the implementation must include @Incubation marker annotation and should sit in the reactor-extra module under the reactor.incubator package.
Prerequisites
There are a few prerequisites in order to enable the incubating process feature.
Set of annotation in the reactor-extrareactor.incubation.annotation package. Annotation should include @Incubation, @Beta, @Stabel/@CoreCandidate
Where:
@Incubation means that at this point it is unclear whether this operator will be included either into extra or into core libraries.
@Beta means that this operator will be included into either extra or core libraries
@Beta + @CoreCadidate means that this operator will eventually be moved to the core library, so anyone who uses annotated operator should be ready for migration to core counterpart
@Stable means that this operator is going to be a part of the extra library and anyone can safely use it from there without any expectation for moving from the extra to the core.
Set of labels that indicates the state of incubation in the issue tracker:
Operators Incubating proposal
In many cases, we can't have an ability to include a "nice to have" operator into the reactor-core library. However, such operators could make sense for some use-cases, and many of the Reactor's users could find it use-full as well. Therefore this issue is about creating an incubation process which allows to include any use-full operator in the reactor-extra first and after some incubation period move it to reactor-core or keep it as an add-on feature in the reactor-extra.
The following is a brief description of how the incubation process can look like and the main intent of this issue is to start a discussion and make final decision after all.
Incubating process
In order to understand whether the operator is useful or not we have to have a specific incubation process which MUST include the following steps:
Create Issue
Title must include Operator name and starts with Incubation Proposal. For example:
Content must include the purpose of the operator, at least one use-case that will be useful for a wide audience. For example:
Discussion follow-up and voting process which might be exposed as issue liking, etc.
Providing PR with the reference implementation.
Prerequisites
There are a few prerequisites in order to enable the incubating process feature.
Set of annotation in the
reactor-extra
reactor.incubation.annotation
package. Annotation should include@Incubation
,@Beta
,@Stabel
/@CoreCandidate
Where:
@Incubation
means that at this point it is unclear whether this operator will be included either into extra or into core libraries.@Beta
means that this operator will be included into either extra or core libraries@Beta
+@CoreCadidate
means that this operator will eventually be moved to the core library, so anyone who uses annotated operator should be ready for migration to core counterpart@Stable
means that this operator is going to be a part of the extra library and anyone can safely use it from there without any expectation for moving from the extra to the core.Set of labels that indicates the state of incubation in the issue tracker:
Proposal
->Incubation
->Beta
->Beta
+Core Candidate
-> Movement to Core + Issue closing_____________________________________ ->
Stable
+ Issue closingThe text was updated successfully, but these errors were encountered: