Hi,

In Malhar there are  relatively smaller number of  operators that we use in
our demo applications, customer applications, POCs etc that are mature.

The library is cluttered with operators especially in lib/util, lib/algo,
lib/math packages which can be cleaned up by either removing them or
improving them but that breaks semantic versioning.

When we add new operators/utilities it takes certain time for them to
mature. Japicmp doesn't help because it doesn't honor @Evolving @Unstable
annotations for now.

I wanted to propose that we add an annotation, let's say, re-use hadoop's
@Stable and mark the operators which are stable with it and perform semver
check on just these operators.

The 0.7.0 version of japi cmp has the support for inclusions (as well as
exclusions) based on annotations.

Here is the info:
https://github.com/siom79/japicmp/issues/88

The reason I am inclined to the inclusion approach is that there are
relatively smaller number of operators which IMO are stable. A lot of them
aren't.
So instead of going and marking so many as Evolving, we will mark
relatively few of them as stable.

Also new development can be facilitated by this. We wouldn't have to add
@Evolving to everything which is new. Instead we will mark it @Stable when
it is.

Please let me know what you think?

Thanks,
Chandni

Reply via email to