+1 to what Julian said.

On Wed, Jul 6, 2022 at 9:47 AM Julian Hyde <jh...@apache.org> wrote:

> Would 24.0 and 25.0 each be regarded as major versions for the purposes of
> semantic versioning?
>
> If so, under the rules of semantic versioning, we *can* make breaking API
> changes but that doesn’t mean that we *should*. (For an example of a
> project that followed the letter of semantic versioning but still
> undermined the trust of their users by making too many API changes, look no
> further than Guava.)
>
> Julian
>
>
> On Jul 6, 2022, at 1:53 AM, Gian Merlino <g...@apache.org> wrote:
>
> My proposal for the next release is that we merely drop the leading "0."
> and don't change anything else about our dev process. We'd start the next
> release at 24.0, and then likely do 25.0 shortly after. Same as today, just
> no leading '0.".
>
> Separately, I'd like to craft a better versioning story around extension
> API, query API, etc. But I don't think we need to connect these two things.
> The dropping of the leading "0." is mainly about reflecting the reality
> that the project is way more stable than a random member of the public
> would expect for a "0." release. The better versioning story is an effort
> that is independent from that.
>
> On Tue, Jun 7, 2022 at 11:50 AM Xavier Léauté <xav...@confluent.io.invalid
> >
> wrote:
>
> Extension API: do extensions written for version X run as expected with
>
> version Y?
>
> One thing I'd like to see us do before we declare to 1.0 and provide
> backwards compatibility for extensions APIs is
> to remove some of the crufty Hadoop 2.x and Guava 16 dependency constraints
> we have (or at least isolate them so
> extensions and core are not constrained by old versions). Removing those
> will likely be a breaking change for extensions.
>
> I'm also fine declaring 1.0, but that might mean we can't deprecate things
> until 2.0, and then remove those in 3.0 depending on
> what our backwards compatibility guarantees are. What I'd like us to avoid
> is to be further entrenched and bogged down in
> moving away from those dependencies by declaring a stable API.
>
> Xavier
>
> On Mon, Jun 6, 2022 at 2:45 PM rahul gidwani <rahul.gidw...@gmail.com>
> wrote:
>
> Hi Gian, this is great.
>
> For me what is most important is (2) and (4)
> Does my current extension work with new releases?
> Can I do a rolling upgrade of druid to the next version?
>
> The more things that are versioned the better, but (2) and (4) have been
> the things that have been most important to me in the past.
>
> Anyone in the community have any thoughts on this?
> Thank you
> rahul
>
>
>
> On Fri, May 27, 2022 at 11:22 AM Gian Merlino <g...@apache.org> wrote:
>
> Yeah, I'd say the next one after 24.0 would be 25.0. The idea is really
> just to remove the leading zero and thereby communicate the accurate
>
> state
>
> of the project: it has been stable and production-ready for a long
>
> time.
>
> Some people see the leading zero and interpret that as a sign of an
> immature or non-production-ready system. So I think this change is
>
> worth
>
> doing and beneficial.
>
> I do think we can do better at communicating compatibility, but IMO
> semantic versioning for the whole system isn't the best way to do it.
> Semantic versioning is good for libraries, where people need one kind
>
> of
>
> assurance: that they can update to the latest version of the library
> without needing to make changes in their program. But Druid is
> infrastructure software with many varied senses of compatibility, such
>
> as:
>
>
> 1) Query API: do user queries written for version X return compatible
> responses when run against version Y?
> 2) Extension API: do extensions written for version X run as expected
>
> with
>
> version Y?
> 3) Storage format: can servers at version X read segments written by
> servers at version Y?
> 4) Intracluster protocol: can a server at version X communicate
>
> properly
>
> with a server at version Y?
> 5) Server configuration: do server configurations (runtime properties,
>
> jvm
>
> configs) written for version X work as expected for version Y?
> 6) Ecosystem: does version Y drop support for older versions of
>
> ZooKeeper,
>
> Kafka, Hadoop, etc, which were supported by version X?
>
> In practice we do find good reasons to make such changes in one or more
>
> of
>
> these areas in many of our releases. We try to maximize compatibility
> between releases, but it is balanced against the effort to improve the
> system while keeping the code maintainable. So if we considered all of
> these areas in semantic versioning, we'd be incrementing the major
>
> version
>
> often anyway. The effect would be similar to having a "meaningless"
>
> version
>
> number but with more steps.
>
> IMO a better approach would be to introduce more kinds of version
>
> numbers.
>
> In my experience the two most important kinds of compatibility to most
> users are "Query API" and "Extension API". So if we had a "Query API
> version" or "Extension API version" then we could semantically version
>
> the
>
> Query and Extension API versions, separately from the main Druid
>
> version.
>
> (Each Druid release would have an associated Extension API version,
>
> and a
>
> list of supported Query API versions that users could choose between
>
> on a
>
> per-query basis.)
>
> Rahul, I wonder what you think about this idea? What kinds of
>
> compatibility
>
> are most important to you?
>
> On Fri, May 27, 2022 at 9:39 AM rahul gidwani <chu...@apache.org>
>
> wrote:
>
>
> I would say that semantic versioning for me is very important for
> determining compatibility between releases.  Minor versions should
>
> always
>
> adhere to being compatible with each other and a major version bump
>
> is
>
> where you can potentially break it.
>
> Right now calling it 24.0 is fine, but what would the next release be
> called?  25.0? If that is the case, then the number means nothing,
>
> every
>
> release is a major version and nothing has changed from what it is
>
> today
>
> except moving a decimal point.
>
> Personally I think we should focus on what we are going to do going
>
> forward
>
> for druid users such that they can be assured that compatibility is
>
> met
>
> between releases.  Right now it is release notes, but if we start
>
> using
>
> minor versioning like it is intended - that would be much more clear.
>
>
>
>
>
>
>
>
>
>
> On Fri, May 27, 2022 at 9:25 AM suneet Saldanha <sun...@apache.org>
>
> wrote:
>
>
> Hi Druids,
>
> I'd like to propose we bump the version of Druid to 24.0 for the
>
> next
>
> release.
> I think this would be beneficial because it better reflects the
>
> maturity
>
> of
>
> the Druid
> project that is actively used in many production use cases. This
>
> was
>
> discussed briefly
> in the Druid 0.23.0 release thread [1].
>
> Other ideas that were proposed
> * Use a year / month in the release
> * Make the next release 1.xx
>
> I think the year month is interesting, but since we do not have a
>
> planned
>
> release schedule,
> it is hard to pick the version that should be in the `master`
>
> branch
>
> while
>
> active dev is happening.
>
> Labeling the next release as 1.xx makes it appear as if the current
>
> version
>
> of Druid isn't very
> stable since the current version is 0.xx which isn't the case.
>
> Happy to hear more opinions on this so we can get to consensus
>
> before
>
> it
>
> is
>
> time for the next code freeze + release.
>
> [1]
>
>
>
>
>
>
> https://lists.apache.org/list?dev@druid.apache.org:2022-5:[DISCUSS]%20Druid%200.23%20release
>

Reply via email to