> Pekko doesn’t use semantic versioning, at least not in any strict sense. Maybe in the future we should move closer to real semver, but that's a different discussion.
Pekko does use strict semantic versioning since it is set in sbt https://github.com/apache/incubator-pekko/blob/main/build.sbt#L17 and since it is set that way sbt users will get problems if we don't follow it strictly > Our binary compatibility rules [1] have a number of differences from semver, and specifically allow us to remove deprecated methods after two full minor releases [2]. These rules are essentially the same as Akka's, though we also added a note that "methods that were deprecated in Akka, before the project fork to Pekko, are being considered for removal in Pekko 1.1.0". We probably should revisit this documentation and/or what our expectations are for Pekko. I think it's regrettable that we didn't talk about this in the past but we should have voted/clarified if we wanted to keep Akka's compatibility vs semver. On Mon, Aug 7, 2023 at 12:43 PM Greg Methvin <gr...@apache.org> wrote: > Pekko doesn’t use semantic versioning, at least not in any strict > sense. Maybe in the future we should move closer to real semver, but that's > a different discussion. Our binary compatibility rules [1] have a number of > differences from semver, and specifically allow us to remove deprecated > methods after two full minor releases [2]. These rules are essentially the > same as Akka's, though we also added a note that "methods that were > deprecated in Akka, before the project fork to Pekko, are being considered > for removal in Pekko 1.1.0". > > [1] > > https://pekko.apache.org/docs/pekko/current/common/binary-compatibility-rules.html > [2] > > https://pekko.apache.org/docs/pekko/current/common/binary-compatibility-rules.html#when-will-a-deprecated-method-be-removed-entirely > > On Mon, Aug 7, 2023 at 3:29 AM PJ Fanning <fannin...@gmail.com> wrote: > > > Pekko is not Akka. We branched off Akka 2.6. There is a strong > > argument that Pekko 1.0 is like an Akka 3 release from a semver > > perspective. > > > > This means that anything that is deprecated in Akka 2 can be removed in > > Pekko. > > > > If we want to pretend that Pekko 1.0 is basically equivalent to Akka > > 2.7 - then there is maybe an argument that we can't remove any code > > deprecated in Akka 2.x. > > > > The thing is Akka didn't/doesn't follow the concept that deprecated > > can only be removed in a major release. They appear to have allowed > > deprecated code to be removed after a few minor releases. I don't > > think this approach is uncommon but I'm happy enough for Pekko not to > > follow this going forward and to only remove deprecated code in a > > major release. > > > > I'm still going to argue that Pekko 1.0 is a major release. To ease > > transition of Akka users, we didn't remove deprecated code in Pekko > > 1.0. That does not stop us from removing any code that was deprecated > > in Akka in Pekko 1.1. > > > > In the end of the day, I don't really mind if we don't bother with a > > Pekko 1.1 release and that we call the next non-1.0 release Pekko 2.0. > > > > On Mon, 7 Aug 2023 at 06:52, Claude Warren, Jr > > <claude.war...@aiven.io.invalid> wrote: > > > > > > Based on semantic numbering. You may only relemove deprecated code on > a > > > major version change. Anything else is a breaking change. If you mark > > > something as deprecated you are noting a change in the contract with > the > > > user, thus a breaking change. > > > > > > On Fri, Aug 4, 2023 at 12:17 PM PJ Fanning <fannin...@apache.org> > wrote: > > > > > > > With the Apache release process and the fact that as an incubating > > > > project, that we need 2 phase approval on all releases - a Pekko > 1.1.0 > > > > release and a subsequent release of all the downstream Pekko modules > > > > to uptake Pekko 1.1.0 will take months. We are less than halfway > > > > through the Pekko 1.0.0 releases and we started those weeks ago. > > > > > > > > So, for me, that means that we shouldn't really be thinking about > > > > small iterations. I can live with the idea of a Pekko 1.1.0 release > > > > but the idea that we would make a few small changes in Pekko 1.1.0 > and > > > > then think we can then move on quickly to a Pekko 1.2.0 release - > that > > > > doesn't work for me. There is so much release overhead and test > > > > overhead with those releases, that we should be thinking about > > > > something in the magnitude of a year between non-patch releases. > > > > > > > > I can see that Pekko 1.1.0 could be released in 3 to 6 months because > > > > there is probably some pent up demand to change what was in Akka 2.6 > > > > (which as Johannes points out is quite old already). But for me, > Pekko > > > > 1.2.0 should be seen as something that wouldn't be released for a > year > > > > or so after Pekko 1.1.0 goes out. > > > > > > > > On Fri, 4 Aug 2023 at 10:54, Johannes Rudolph > > > > <johannes.rudo...@gmail.com> wrote: > > > > > > > > > > On Fri, Aug 4, 2023 at 9:48 AM kerr <hepin1...@gmail.com> wrote: > > > > > > I suggest we remove the deprecated things since Akka 2.5 in pekko > > > > 1.1.0 , > > > > > > and remove those since Akka 2.6.x in pekko 1.2.0. > > > > > > > > > > I'm for more aggressive removal. Many things have been deprecated > for > > > > > many years (2.6.0 is almost 4 years ago) and with Pekko 1.0.x we > give > > > > > everyone another a free release keep using deprecated methods. > > > > > > > > > > After all, with Pekko 1.0.x out, it will be easy enough for users / > > > > > companies to engage in the 1.0.x maintenance process to keep it > going > > > > > forever if necessary. > > > > > > > > > > Going forward, we should remove what we can for 1.1/2.0. Of course, > > > > > this will make it a bit harder for people to adopt a potential new > > > > > version, but this is not a one-way track where the OS developers > have > > > > > to pay all the cost of maintaining old code while users get free > > > > > updates. > > > > > > > > > > And to be clear I'm not advocating for going quick and breaking > > things > > > > > but as it stands we have to cut down on something to make progress. > > As > > > > > I see it the value proposition for the different versions is this: > > > > > > > > > > * Pekko 1.0: give users an 1.) upgrade path that is as smooth as > > > > > possible 2.) set up the infrastructure to maintain that version > for a > > > > > longer time (in case there's sufficient community to keep it > running) > > > > > * Pekko 1.1/2.0: evolve the codebase carefully and eventually > > provide > > > > > new enhancements / features that make it attractive enough to > > eventual > > > > > move over > > > > > > > > > > Johannes > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: dev-unsubscr...@pekko.apache.org > > > > > For additional commands, e-mail: dev-h...@pekko.apache.org > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: dev-unsubscr...@pekko.apache.org > > > > For additional commands, e-mail: dev-h...@pekko.apache.org > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@pekko.apache.org > > For additional commands, e-mail: dev-h...@pekko.apache.org > > > > > -- Matthew de Detrich *Aiven Deutschland GmbH* Immanuelkirchstraße 26, 10405 Berlin Amtsgericht Charlottenburg, HRB 209739 B Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen *m:* +491603708037 *w:* aiven.io *e:* matthew.dedetr...@aiven.io