That's good to hear. I still think it would be good if there was a
stated policy about API changes (e.g. "Druid will give notice of not
less than two x.0 releases and 1 year before removing a public API")
because "We follow semantic versioning" no longer has the same heft
under the new version scheme.

On Wed, Jul 6, 2022 at 9:05 PM Gian Merlino <g...@apache.org> wrote:
>
> I'd say yes, in a way that's similar to today. Today we treat increments of
> the version after the 0 as potentially allowing breaking changes. We also
> try to avoid them whenever feasible, because we know they're painful for
> users. I'm not suggesting we immediately get any more, or less, eager about
> making breaking changes as part of dropping the "0.". Over time, though,
> I'd like to see us get less eager about making breaking changes.
>
> 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
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@druid.apache.org
For additional commands, e-mail: dev-h...@druid.apache.org

Reply via email to