> If removed, we drop the required older JDK across all branches when the > feature is removed. Talking to Doug about this; let's revise this phrasing to: "When the feature has been removed from all supported branches, the constraint to retain JDK support for that feature drops with it."
On Fri, Jun 13, 2025, at 7:58 AM, Josh McKenzie wrote: > +1 > > On Fri, Jun 13, 2025, at 7:56 AM, Josh McKenzie wrote: >> [DISCUSS] thread: >> https://lists.apache.org/thread/vr7j2ob92k6fbcwvlfo60l3scylzdbft >> >> Text to vote on: >> -------------------------------------------------------------------------------------- >> *[New LTS JDK Adoption]* >> • When a new JDK goes LTS, we prioritize: >> • Moving trunk to build, run, pass CI, and support language level of that >> JDK, dropping others >> • Adding support to *run* on that JDK to all supported GA releases, >> passing all CI using that JDK >> • These 2 operations must merge atomically. This allows us to preserve the >> contract of allowing like-to-like JDK's for a live C* upgrade >> *[Build, run, language level, Pre Commit CI, EOL]* >> • trunk builds, runs, has CI on, and supports the language level of 1 JDK >> at any given time (ideally latest LTS JDK) >> • Supported non-trunk GA branches: >> • build, run, pass CI, and support the language level of *the oldest JDK >> they are certified for* >> • Are supported to *run* on all LTS JDK's between their oldest supported >> and newest LTS supported by trunk >> • In the very rare case a feature would have to be removed due to JDK >> change (think UDF's scripting engine), we instead keep the maximum allowable >> JDK for that feature supported on trunk and subsequent releases. The feature >> is flagged for deprecate-then-remove or re-implementation based on dev ML >> discussion. If removed, we drop the required older JDK across all branches >> when the feature is removed. Supporting new LTS JDK's is considered higher >> priority than supporting features that JDK's are no longer compatible with, >> pending debate on the dev ML. >> • Dropping JDK support happens naturally as old releases go EOL. >> *[Post Commit JDK validation CI]* >> • Periodically we will run all CI pipelines for all *runtime* supported >> JDK's for that branch (cadence TBD) >> • We will add basic perf testing across all GA branches + their supported >> runtime JDK's with reference workloads from easy-cass-stress for a simple >> performance-based smoke test >> -------------------------------------------------------------------------------------- >> Vote structure: >> • Roll call >> <https://cwiki.apache.org/confluence/display/CASSANDRA/Cassandra+Project+Governance> >> is 25. >> • Quorum: 13 (min required votes to qualify results) >> • Super-majority of participating votes in favor required to pass (9 in >> favor at 13 min votes, etc) >> Will leave the vote open for a week. >> >