+1 to David Jencks.
i raised a while ago but coul not start doing anything on it.
https://camel.465427.n5.nabble.com/deprecated-components-by-which-version-of-camel-td5842700.html
it would be a good addition while playing around with models.


On Mon, Apr 6, 2020 at 5:17 PM David Jencks <david.a.jen...@gmail.com>
wrote:

> I’ve been looking at the tables of components, data formats, etc in the
> website and wondering if it would be useful to show "version deprecated
> since” rather than just the deprecated flag.  Is this information even
> available?  Does this seem like a good idea?  I expect to propose a
> different way to construct the tables shortly.  IIUC these tables are
> constructed from the same info source as the catalog.
>
> David Jencks
>
> > On Apr 6, 2020, at 5:26 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> >
> > On Mon, Apr 6, 2020 at 11:50 AM Peter Palaga <ppal...@redhat.com
> <mailto:ppal...@redhat.com>> wrote:
> >>
> >> Hi,
> >>
> >> thanks Claus for writing this down.
> >>
> >> On 06/04/2020 09:58, Claus Ibsen wrote:
> >>> Hi
> >>>
> >>> Background this PR
> >>> https://github.com/apache/camel/pull/3698
> >>>
> >>> a)
> >>> I think it can benefit Camel components if we are able to define what
> >>> maturity/stability level the component is (find a good name). For
> >>> example we could the values that other projects uses such as Quarkus
> >>> and WildFly: Stable, Preview, Experimental
> >>>
> >>> However the devil is in the wording. For example does Stable mean that
> >>> it's stable forever. And that is a NO. A camel component may change
> >>> between LTS releases, as we want to innovate fast and move on. For
> >>> example a 3rd party dependency upgrade may cause some changes, or a
> >>> major upgrade which we want. SB1 to SB2 etc. netty3 -> netty4. And
> >>> sometimes we created a new component and other times we upgraded the
> >>> existing component.
> >>
> >> My intention was to express runtime stability of a particular release
> >> rather than API/ABI stability over time. - I.e. if base64 component is
> >> marked as "stable" in release 1.2.3 it means we (the authors) have
> >> enough confidence (based on test coverage and/or a low number of known
> >> issues or limitations, etc.) to recommend deploying it in production.
> >> "Production quality" might be a better term for this. The other value (i
> >> took the term "preview") is supposed to be opposite: There are known
> >> issues, known limitations, not enough test coverage or the code is
> >> simply too new to be confident about its runtime stability.
> >>
> >> This marker is assigned to some specific release of a component. If
> >> base64 is marked as "stable" in 1.2.3, it does not necessarily imply
> >> anything about the future releases. It may (although it would be rather
> >> unusual) become "preview" in the future (say, because an early major
> >> upgrade of its dependency is instable). It may be removed (after some
> >> deprecation period), its configuration may change substantialy, etc. The
> >> stability assessment is done only for the given release and nothing
> else.
> >>
> >
> > Yeah actually this is better description of the purpose, so its per
> release
> > and dont necessary warrant the same level in the next release.
> >
> > And this also makes sense for some users to have a hint/warn reported
> > if they use a non-stable component.
> > For example with some tooling to report this, or some flag we can turn
> > on|off in Camel to report this on startup.
> >
> >
> >>> b)
> >>> The second information that may benefit, is whether a component would
> >>> be compilable for native via graalvm. But at this moment then I think
> >>> this information is best kept in camel-quarkus as this is where we
> >>> know whether its fully native or jvm only.
> >>>
> >>> So I would keep this information in the camel quarkus catalog only.
> >>
> >> Yes, Camel Quarkus will presumably be the only one to have the Native
> >> compilation target in its catalog. However, Camel K will leverage that
> >> info and thus the common Camel Catalog model should IMO be able to
> >> express that state. Having a custom catalog model in Camel Quarkus seems
> >> to be impractical for both Camel Quarkus and Camel K. Is that what you
> >> propose?
> >>
> >
> > Yes Camel Quarkus is the only project that has this knowledge. And it
> > also have some components that are only there,
> > such as the camel-cute component.
> >
> > So if Camel K wants to know which extensions are native or not, then
> > it should use the camel-quarkus catalog.
> >
> > This is the game, same for OSGi with the camel-karaf catalog, and for
> > Spring Boot with the camel-spring-boot catalog.
> >
> >
> >>> Ad a)
> >>> We could then store this information about maturity level in the
> >>> <properties> section of pom.xml where we already store labels,
> >>> description, and whether its deprecated.
> >>>
> >>> <properties>
> >>>   <stability>stable</stability>
> >>>   ...
> >>> </properties>
> >>
> >> No problem with that. The PR linked above checks the @Experimental
> >> annotation on component, language, etc. classes and if it is present, it
> >> makes the given component "preview". I can remove that.
> >>
> >> Thanks,
> >>
> >> -- Peter
> >>
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com <http://davsclaus.com/> @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2 <
> https://www.manning.com/ibsen2>
>

Reply via email to