I'm not sure if I'm interpreting various parts of this conversation
correctly, but it seems that one view being assumed is that the actual
removal of deprecated APIs *must* happen in the first version of a major
release bump. i.e. for this discussion that would be *2.0.0*. I don't
believe this is a correct interpretation of the following; taken from
https://semver.org/

Before you completely remove the functionality *in a new major release*
> there should be at least one minor release that contains the deprecation so
> that users can smoothly transition to the new API.


There is no mention of it needing to happen in the *n.0.0* version; just
*sometime* within a new major version.

Given that, these APIs were definitely deprecated before 1.0 and I believe
we're within the definition of *semver* to be free to remove them now.

+1 to removing them any time before 2.0.0.

--Jens

On Wed, Apr 3, 2019 at 7:38 PM Jacob Barrett <jbarr...@pivotal.io> wrote:

> That’s your interpretation of semver. I interpret The API not to be broken
> within a major as those that are still valid when the major is released
> despite the availability of deprecated symbols from previous major. Just
> because I can access symbols does not make it API. API is the combination
> of documentation, annotation and availability of the symbols. If the
> symbols are available but marked deprecated and not documented anymore then
> it is. It API.
>
> Yes under your interpretation it would require that availability be
> removed at the major release too so that a consumer that ignore deprecation
> warnings when compiling with the new version got a compilation or runtime
> error later up updating a minor.
>
> I think that error is well deserved. We do a disservice to our customers
> by allowing them to continue to limp along on deprecated, unmaintained and
> untested APIs because we missed an arbitrary window to remove the symbols.
>
> If however the community agrees with you interpretation then we must make
> sure a ticket is created for the next major with a list of deprecated items
> and updated when new items are deprecated so that the task is performed at
> the major release. A chore needs to be undertaken to remove all deprecated
> APIs at the start of each major development cycle. The short of it is we
> can’t miss this arbitrarily limiting window.
>
> -Jake
>
>
> > On Apr 3, 2019, at 3:58 PM, Alexander Murmann <amurm...@apache.org>
> wrote:
> >
> > Would we announce that we aren't following semver anymore because bumping
> > the major version is somehow too expensive?
> >
> >> On Wed, Apr 3, 2019 at 3:29 PM Kirk Lund <kl...@apache.org> wrote:
> >>
> >> 1) +1 YES. If we continue to *not* have at least one major release per
> >> year, then I 100% support the removal of deprecated APIs and features
> in a
> >> minor release such as 1.10. If we decide to have at least one major
> release
> >> per year, then I'd be willing to revisit this and consider not allowing
> >> removal in a minor release. I do *not* support perpetually deferring
> major
> >> releases to avoid facing the removal of deprecated APIs -- that's just
> >> ridiculous as it keeps our maintenance costs much higher than they need
> to
> >> be.
> >>
> >> 2) +1 to remove anything in 1.10, or any other minor release, that was
> >> already deprecated in Geode 1.0
> >>
> >>> On Tue, Apr 2, 2019 at 5:05 PM Dan Smith <dsm...@pivotal.io> wrote:
> >>>
> >>> Hi devs,
> >>>
> >>> The org.apache.geode.admin package has been deprecated for about 7
> years
> >>> [1].
> >>>
> >>> I'd like to remove it, or at least move it to a separate module. I
> >> actually
> >>> started some work to move it to a separate module [2]. However in the
> >>> course of this process, I've found that this module has extremely
> little
> >>> test coverage, so I'm not confident in the move. For example, it has a
> >>> whole JMX manager feature (different than our current JMX manager)
> which
> >>> does not appear to have any tests. This JMX manager feature won't work
> as
> >>> shipped unless you find and add some mx4j jars to your classpath.
> >>>
> >>> I think the best course of action is probably to remove it entirely.
> >>> However, this does bring up a couple of questions:
> >>>
> >>> 1) Is it ok in general to remove deprecated API in a non X.0 release
> (eg
> >>> geode 1.10 instead of geode 2.0)?
> >>>
> >>> 2) How about in this case, when this feature has been deprecated for so
> >>> long, and may or may not work?
> >>>
> >>> -Dan
> >>>
> >>> [1]
> >>>
> >>>
> >>
> https://geode.apache.org/releases/latest/javadoc/org/apache/geode/admin/package-summary.html
> >>> [2] Draft PR for moving the org.apache.geode.admin to a separate
> module -
> >>> https://github.com/apache/geode/pull/3392
> >>>
> >>
>

Reply via email to