> I think bumping JDK base requirement should be a major revision.

Generally speaking I would agree with you. However, I'm not yet convinced
in this case.

> The purpose of moving towards stricter SEMVER is to make things more
consistent for downstream users than they have been in the past.

You've mentioned this move towards "stricter SEMVER" a few times on this
list and alluded to conversations about it, but I don't recall these
conversations. Did we reach a consensus around this?

In any case, I'm not sure this is actually strict violation of semantic
versioning.

> Citing old ActiveMQ release as precedence is a flawed and biased
argument, since we are moving away from that...

I also cited Camel which dropped support for Java 8 in 3.15.0. Other
notable examples:

  - Spring dropped support for Java 8 in 5.3.0.
  - Apache Maven dropped support for:
    - Java 5 in 3.3.0
    - Java 6 in 3.5.0
    - Java 7 in 3.9.0
  - Hibernate ORM dropped support for Java 8 in 5.3.0.
  - Apache Flink dropped support for:
    - Java 7 in 1.4.0
    - Java 8 in 1.17.0
  - Apache Beam dropped support for Java 7 in 2.6.0.
  - Apache Pulsar dropped support for Java 8 in 2.8.0.
  - Quarkus dropped support for:
    - Java 8 in 1.3.0
    - Java 11 in 2.7.0
  - Apache Ignite dropped support for Java 8 in 2.8.0.
  - Apache NiFi dropped support for Java 7 in 1.4.0.
  - Apache CXF dropped support for:
    - Java 6 in 3.2.0
    - Java 7 in 3.4.0
  - Apache ZooKeeper dropped support for:
    - Java 6 in 3.5.0
    - Java 7 in 3.6.0
  - Netty will drop support for Java 7 & 8 in 4.2.0.

I could go on, but hopefully the point is clear. Dropping support for a
particular version of Java in a minor release is not uncommon even for
major open source projects (even at Apache). We certainly don't want to
make a habit of this, and it's not ideal, but I think this is a special
circumstance where it makes sense.

> ...the entire Java ecosystem is moving much faster than back in the
ActiveMQ 5.5.x days.

In my opinion this is actually an argument _for_ dropping specific Java
version support in a minor release. Since new Java versions are being
released more often the pressure to keep up is much greater than it was
before and won't always align with a major release that actually makes
sense otherwise.


Justin


On Thu, Dec 5, 2024 at 9:15 AM Matt Pavlovich <mattr...@gmail.com> wrote:

> I think bumping JDK base requirement should be a major revision. The
> purpose of moving towards stricter SEMVER is to make things more consistent
> for downstream users than they have been in the past.
>
> Citing old ActiveMQ release as precedence is a flawed and biased argument,
> since we are moving away from that AND the entire Java ecosystem is moving
> much faster than back in the ActiveMQ 5.5.x days.
>
> Matt
>
> > On Dec 5, 2024, at 6:43 AM, Christopher Shannon <
> christopher.l.shan...@gmail.com> wrote:
> >
> > We have definitely done it in the past (and so have other projects as
> > noted) but just because we have done it in the past doesn't mean it was a
> > good idea, or should have been done. It goes against semver and it could
> be
> > quite confusing for a users who may not realize the JDK requirement
> > changed. So generally speaking, we should not be bumping the JDK outside
> of
> > a major version.
> >
> > That being said, as you noted, we don't really have too much choice here.
> > Making sure Jetty is up to date and supported I think is the most
> important
> > thing because there's always new CVEs and January 2025 is not much time.
> > It's probably ok to bump the JDK at this point because ultimately I
> figure
> > someone is going to complain either way...either we don't bump the JDK
> > requirement and people complain about Jetty and CVEs or we do bump it and
> > people complain about the JDK requirement.
> >
> > One thing we could do is only bump to JDK 17 for the server components
> and
> > at least keep the client jars compatible with JDK 11. Technically you
> could
> > just bump only the modules that are related to Jetty which might be some
> > benefit for users that run Artemis embedded and don't even start the
> > webconsole, but at the very least keeping the clients compatible with JDK
> > 11 seems to make sense. This was the approach Kafka has taken with
> > migrating where the server will require JDK 17 but the client will still
> > support JDK 11.
> >
> > If we want to go ahead and bump the JDK now then for 2.39.0 I would think
> > we could:
> >
> >   1. Document the change with a warning the best we can on the release
> >   page, email, etc so that users know of the change.
> >   2. Only require JDK 17 for the server and keep the clients JDK 11
> >   compatible.
> >   3. Updating the start up/install scripts to detect if the JDK is too
> old
> >   to print a warning/error would be good. I haven't looked at the Artemis
> >   runs script so it might already do this.
> >
> > Then for a future 3.0.0 next year we could require JDK 17+ for
> everything,
> > clean up deprecations (drop javax entirely, etc)
> >
> > On Wed, Dec 4, 2024 at 4:31 PM Justin Bertram <jbert...@apache.org>
> wrote:
> >
> >>> The biggest reason 5.x was not bumped was simply because of the whole
> >> "Artemis will become version 6.0" thing that prevented the bump for a
> long
> >> time.
> >>
> >> Looking back further in the history of Classic, the Java version was
> bumped
> >> from 5 to 6 in 5.5.x. So there's precedent from several years before the
> >> donation.
> >>
> >>> Is there any reason we can't bump Artemis to 3.0.0?
> >>
> >> I think moving to 3.0.0 would be ideal, but as you note there's lots of
> >> other work that we'd want to do before that (e.g. dropping javax
> >> completely, removing lots of deprecated stuff, etc.). Unfortunately I
> don't
> >> think there's time for that before we run afoul of the Jetty EOL, and
> I'm
> >> sure there's going to be folks complaining about that as soon as it
> >> happens.
> >>
> >> I do think we'll see Artemis 3.0.0 relatively early in 2025, but not
> soon
> >> enough to mitigate this issue.
> >>
> >>> Requiring JDK 17 and Jetty 12 upgrade seem like a good reason for a
> major
> >> version bump...
> >>
> >> I see the Jetty 12 integration as more of an implementation detail.
> Users
> >> really have no way of knowing that Artemis embeds Jetty. All the
> >> configuration obfuscates the actual implementation. None of the
> >> functionality or configuration is changing. Therefore, I don't see that
> as
> >> a compelling reason for a major version bump.
> >>
> >> Typically I would consider the Java upgrade a reason for a major version
> >> bump, but the precedents both in ActiveMQ and other projects (e.g.
> Camel)
> >> indicate that's not a hard and fast rule.
> >>
> >>
> >> Justin
> >>
> >> On Wed, Dec 4, 2024 at 3:05 PM Christopher Shannon <
> >> christopher.l.shan...@gmail.com> wrote:
> >>
> >>> As you said there is a precedent for it but it's probably better for a
> >>> major version. The biggest reason 5.x was not bumped was simply because
> >> of
> >>> the whole "Artemis will become version 6.0" thing that prevented the
> bump
> >>> for a long time.
> >>>
> >>> Is there any reason we can't bump Artemis to 3.0.0? Requiring JDK 17
> and
> >>> Jetty 12 upgrade seem like a good reason for a major version bump and
> at
> >>> the same time maybe could clean up any deprecated things hanging
> around.
> >>> Maybe even drop the jms client entirely and just support jakarta, etc.
> >>>
> >>> It would be nice to see some of the outstanding spec issues resolved
> like
> >>> https://issues.apache.org/jira/browse/ARTEMIS-1262 before bumping but
> I
> >>> assume that issue in particular won't ever be fixed as there is not a
> >> good
> >>> way to avoid breaking old clients so I don't think it's a blocker to
> bump
> >>> to 3.0.0.
> >>>
> >>> On Wed, Dec 4, 2024 at 1:04 PM Domenico Francesco Bruscino <
> >>> bruscin...@gmail.com> wrote:
> >>>
> >>>> It makes sense to me because the main JDK 11 builds already ended the
> >>> full
> >>>> support and are in the extended support phase.
> >>>>
> >>>> On Wed, 4 Dec 2024 at 18:50, Justin Bertram <jbert...@apache.org>
> >> wrote:
> >>>>
> >>>>>> What version of ActiveMQ Classic are you referring to making this
> >>>> change
> >>>>> in a minor version? v6.0.0 made the jump to JDK 17, but 5.x did not.
> >>>>>
> >>>>> To be clear, I wasn't referring specifically to the move to 17. I was
> >>>> just
> >>>>> saying, in general, the move to a new version of Java has been done
> >> in
> >>>>> minor releases by both Artemis and Classic. I already outlined where
> >>> this
> >>>>> was done by Artemis (i.e. in 2.20.0). For Classic this has been done
> >>>> three
> >>>>> times:
> >>>>>
> >>>>> - From 5.10.x to 5.11.x the JDK went from 6 to 7
> >>>>> - From 5.14.x to 5.15.x the JDK went from 7 to 8
> >>>>> - From 5.16.x to 5.17.x the JDK went from 8 to 11
> >>>>>
> >>>>> My main point here is simply that this change has a precedent in
> >>>> ActiveMQ.
> >>>>> There are, of course, precedents in other projects as well (e.g.
> >>> Camel).
> >>>>>
> >>>>>
> >>>>> Justin
> >>>>>
> >>>>> On Wed, Dec 4, 2024 at 11:40 AM Matt Pavlovich <mattr...@gmail.com>
> >>>> wrote:
> >>>>>
> >>>>>>
> >>>>>>> On Dec 4, 2024, at 11:17 AM, Justin Bertram <jbert...@apache.org
> >>>
> >>>>> wrote:
> >>>>>>>
> >>>>>>> At first I was hesitant to propose this move in a minor release,
> >>> but
> >>>>>> then I
> >>>>>>> realized we've already done this in both Artemis and Classic.
> >>>>>>
> >>>>>> Hi Justin-
> >>>>>>
> >>>>>> What version of ActiveMQ Classic are you referring to making this
> >>>> change
> >>>>>> in a minor version? v6.0.0 made the jump to JDK 17, but 5.x did
> >> not.
> >>>>>>
> >>>>>> -Matt
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> >>>>>> For additional commands, e-mail: dev-h...@activemq.apache.org
> >>>>>> For further information, visit:
> >> https://activemq.apache.org/contact
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
> For additional commands, e-mail: dev-h...@activemq.apache.org
> For further information, visit: https://activemq.apache.org/contact
>
>
>

Reply via email to