> Well the easy way to handle the @ApiMayChange is to just state that > its not part of semantic versioning, just like > private/package-private/@InternalStableAPI
Technically it's a little different because @ApiMayChange is technically part of the public API but we'd have to say it's not public API only for the purposes of semver, while the others are considered internal API. Semver doesn't have the concept of an API that is public but may change. Anyway I really don't want to derail the discussion here. I would be fine with PJ's original proposal of removing anything that was deprecated before Akka 2.6 in Pekko 1.1, then in 1.2 we can remove the stuff deprecated in Akka 2.6.x. We could treat this all as a special case for Akka compatibility, and then going forward follow some other approach for deprecations we decide on later. On Mon, Aug 7, 2023 at 4:58 AM Matthew de Detrich <matthew.dedetr...@aiven.io.invalid> wrote: > > That's very surprising to me. IMO the documentation should be the source > of > truth here. We are still using markers like @ApiMayChange which are > incompatible with strict semver, and (I think) we still want to forbid > mixed versioning. > > Well the easy way to handle the @ApiMayChange is to just state that > its not part of semantic versioning, just like > private/package-private/@InternalStableAPI > is. Also in case people are not aware, if we set VersionScheme.SemVerSpec, > this > just instructs how sbt will warn about dependencies when you do dependency > resolution, > i.e. if you in your build you have Pekko 1.0.x being resolved by one > transitive dependency > and Pekko 2.0.x being resolved by another transitive dependency then if you > have VersionScheme.SemVerSpec set, sbt by default will warn prevent the > build from loading > because you have changes that break semver (this btw can be overridden). > > Also I am not saying that we shouldn't change this, just that there was > likey > misconception about whether Pekko would move to semver or not and this > should > be discussed. > > On Mon, Aug 7, 2023 at 1:44 PM Greg Methvin <gr...@apache.org> wrote: > > > That's very surprising to me. IMO the documentation should be the source > of > > truth here. We are still using markers like @ApiMayChange which are > > incompatible with strict semver, and (I think) we still want to forbid > > mixed versioning. To me the sbt setting is just configuring what kinds of > > compatibility issues sbt will catch, beyond that it's up to the user (as > it > > always has been in Akka). > > > > > > > > On Mon, Aug 7, 2023 at 4:10 AM Matthew de Detrich > > <matthew.dedetr...@aiven.io.invalid> 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. > > > > > > 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 > > > > > > > > -- > > 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 >