> I guess the lesson is that when we encounter such roadblocks, we should create issues describing it, and link to those wherever we are held back by it.
Agreed, I don't have time to find/remember it now but I might look at it later if needed > What problems/fixes do you mean here? https://github.com/scala/scala/pull/10543 On Sat, Feb 10, 2024 at 11:43 PM Arnout Engelen <enge...@apache.org> wrote: > On Sat, Feb 10, 2024 at 12:25 PM Matthew de Detrich > <matthew.dedetr...@aiven.io.invalid> wrote: > > > > I agree that would be nice, but is it a problem? Even if we could > specify > > the JDK version to link against for the docs, we should perhaps link to > > Java 11 (or even Java 21): while we support Java 8, I think we should > > encourage users to use newer versions. > > > > I don't know, I remember we tried messing around with this a year ago > > and we ended up reverting it for one reason or another (I would have to > go > > back and find out now). > > > I tried to find what you're referring to, but the main Pekko repo already > uses Java 11 for publishing the docs ( > > https://github.com/apache/incubator-pekko/blob/main/.github/workflows/publish-1.0-docs.yml > ) > and I didn't find a relevant revert in the history. Neither for pekko-http > (which seems to build with Java 8 from the start). Also I don't see any > references from the docs to the JDK at all (e.g. > > https://pekko.apache.org/japi/pekko/current/org/apache/pekko/actor/testkit/typed/CapturedLogEvent.html > and > > https://pekko.apache.org/japi/pekko-http/current/org/apache/pekko/http/javadsl/Http.html > mention java.util.Optional but do not link to it). What problem with links > from API docs are we talking about, exactly? > > I guess the lesson is that when we encounter such roadblocks, we should > create issues describing it, and link to those wherever we are held back by > it. > > A stronger counter argument is that it's easier for developers to > > understand, > > mixing and matching different JDK's for different tasks is actually > > somewhat > > confusing whereas now it's simply "build with JDK 8 for everything" > (aside > > from Pekko core) which is consistent and simple, even if it's outdated > > > (although > > this can be solved with release flags especially with recent fixes > > that have come in via Scala 2.11/2.12 but still waiting for 3.3.2) > > > > What problems/fixes do you mean here? > > > Kind regards, > > Arnout > > > > On Sat, Feb 10, 2024 at 10:04 PM Arnout Engelen <enge...@apache.org> > > wrote: > > > > > On Sat, Feb 10, 2024 at 11:50 AM Matthew de Detrich > > > <matthew.dedetr...@aiven.io.invalid> wrote: > > > > > > > > OK! The API docs would link to the Java version you're building > with > > I > > > > suppose, but I don't see that as a problem: we can't predict what JDK > > > users > > > > will be using anyway. > > > > > > > > Yeah this is what the main issue is, I would be more amicable to > > building > > > > the docs on JDK 11 if there was some way to designate the JDK version > > to > > > > link against for the docs. > > > > > > > > > > I agree that would be nice, but is it a problem? Even if we could > specify > > > the JDK version to link against for the docs, we should perhaps link to > > > Java 11 (or even Java 21): while we support Java 8, I think we should > > > encourage users to use newer versions. > > > > > > > > > Kind regards, > > > > > > Arnout > > > > > > > > > > > > > > On Sat, Feb 10, 2024 at 9:17 PM Arnout Engelen <enge...@apache.org> > > > wrote: > > > > > > > > > On Sat, Feb 10, 2024 at 10:51 AM Matthew de Detrich > > > > > <matthew.dedetr...@aiven.io.invalid> wrote: > > > > > > > > > > > > It's a trade-off between the risks of developing on more recent > > > JDKs > > > > > > while targeting Java 8, and making maintenance more painful by > > > > requiring > > > > > > development tooling to keep supporting Java 8. I think we should > > take > > > > the > > > > > > risk. > > > > > > > > > > > > Sure if someone wants to go ahead then they are more than welcome > > to > > > > try, > > > > > > just need to be careful that both the paradox docs and binary > > > artifacts > > > > > are > > > > > > exactly the same before and after. > > > > > > > > > > > > > > > OK! The API docs would link to the Java version you're building > with > > I > > > > > suppose, but I don't see that as a problem: we can't predict what > JDK > > > > users > > > > > will be using anyway. > > > > > > > > > > From my end we still need to republish paradox 0.9.x on maven just > > due > > > to > > > > > > the 1.0.x branches so I will continue to get that done. > > > > > > > > > > > > > > > > OK > > > > > > > > > > > > > > > > I would also posit that a nicer solution to this would also be > > > getting > > > > > > sbt-multi-release-jar[1] to work because currently we have a more > > > > > > recurring issue where we want to use features in newer JDK's > (such > > as > > > > > > loom/virtual thread for JDK 21) but we can't while supporting > JDK 8 > > > > > without > > > > > > a lot of hackery (if it's even possible). > > > > > > Unfortunately I am hitting some fundamental issues[2] on trying > to > > > get > > > > it > > > > > > to work > > > > > > > > > > > > > > > > I agree that might be interesting but require a lot more r&d to > find > > > out > > > > if > > > > > it's viable. > > > > > > > > > > > > > > > Kind regards, > > > > > > > > > > Arnout > > > > > > > > > > > > > > > > > > > > > > 1: https://github.com/sbt/sbt-multi-release-jar and > > > > > > > > > https://github.com/sbt/sbt/discussions/7174#discussioncomment-5288982 > > > > > > 2: https://github.com/sbt/sbt-multi-release-jar/issues/24 > > > > > > > > > > > > On Sat, Feb 10, 2024 at 8:45 PM Arnout Engelen < > enge...@apache.org > > > > > > > > wrote: > > > > > > > > > > > > > On Sat, Feb 10, 2024 at 8:57 AM Matthew de Detrich > > > > > > > <matthew.dedetr...@aiven.io.invalid> wrote: > > > > > > > > > > > > > > > > I think we should consider requiring Java 11 for all > > > development: > > > > > the > > > > > > > > cost/complexity of requiring all our build tools to keep > > > supporting > > > > > > Java > > > > > > > 8 > > > > > > > > will only increase, and IMHO is unhealthy to the wider > > ecosystem. > > > > The > > > > > > > > cost/complexity of building with Java 11 and targeting Java 8 > > is > > > > low > > > > > > when > > > > > > > > using the well-understood compiler flags, except when also > > using > > > > > > > > sun.misc.Unsafe, but we have already incurred that cost for > > that > > > > case > > > > > > > > anyway. > > > > > > > > > > > > > > > > the Pekko 1.0.x series is deliberately designed to > > > > > > > > have minimal intrusive changes merged into it and so for this > > > > reason > > > > > > its > > > > > > > > ideal > > > > > > > > to have the current build setup remain the same, which means > > both > > > > > > > building > > > > > > > > with JDK 8 (or JDK 11 + JDK 8 workaround for pekko core) and > > > > paradox > > > > > > > 0.9.x. > > > > > > > > > > > > > > > > > > > > > > That makes sense, I'm fine with requiring JDK 11 only for > > building > > > > > Pekko > > > > > > > 1.1.x onwards. > > > > > > > > > > > > > > > > > > > > > > My personal preference is to remain having JDK 1.8 as the > > > preferred > > > > > one > > > > > > > > for development as it is now and rather instead spend our > > efforts > > > > to > > > > > > > > strongly push for dropping JDK 1.8 altogether for Pekko > 2.0.x. > > > This > > > > > > would > > > > > > > > allow > > > > > > > > us to remove a lot of these hacks which would go a great deal > > in > > > > > > > > simplifying the build. > > > > > > > > > > > > > > > > > > > > > > I'm all for dropping Java 8 support completely on Pekko 2.0.x, > > and > > > > > indeed > > > > > > > it would allow us to simplify the build. > > > > > > > > > > > > > > I think requiring Java 11 for building Pekko 1.1.x would still > be > > > > good. > > > > > > By > > > > > > > the time Pekko 2.0.x happens, we might want to build with even > > > newer > > > > > > > versions of Java, so most of the work we do now to build with > > Java > > > 11 > > > > > and > > > > > > > target Java 8 will continue to be valuable then as well. > > > > > > > > > > > > > > > While it is true the use of Java 8 sadly still seems > > widespread ( > > > > > > > > > > > > > > > https://newrelic.com/resources/report/2023-state-of-the-java-ecosystem > > > > > > > > mentions 33%), I'm sceptical the same holds for developer > > > > > environments. > > > > > > > > > > > > > > > > While I do broadly agree this is accurate, it's still > > preferable > > > > for > > > > > > > > developers > > > > > > > > to use the lowest common denominator JDK that the project > uses > > > just > > > > > for > > > > > > > > the sakes of lowering surprises especially when it comes to > > > > releases, > > > > > > > this > > > > > > > > is what I do. There are plenty of solutions that allow you to > > hot > > > > > swap > > > > > > > > JDK's > > > > > > > > on local machines and on this note I was actually considering > > > > adding > > > > > > > > .java-version files like in sbt-multi-release-jar[2] which > > forces > > > > the > > > > > > > > project > > > > > > > > to be loaded with a specific JDK. This may be a bit heavy > > handed > > > > but > > > > > > > > it does a good job of enforcing expectations. > > > > > > > > > > > > > > > > > > > > > It's a trade-off between the risks of developing on more recent > > > JDKs > > > > > > while > > > > > > > targeting Java 8, and making maintenance more painful by > > requiring > > > > > > > development tooling to keep supporting Java 8. I think we > should > > > take > > > > > the > > > > > > > risk. > > > > > > > > > > > > > > > > > > > > > Kind regards, > > > > > > > > > > > > > > Arnout > > > > > > > > > > > > > > > > > > > > > > On Fri, Feb 9, 2024 at 9:57 PM Arnout Engelen < > > > enge...@apache.org> > > > > > > > wrote: > > > > > > > > > > > > > > > > > On Wed, Jan 31, 2024 at 8:44 AM Matthew de Detrich > > > > > > > > > <matthew.dedetr...@aiven.io.invalid> wrote: > > > > > > > > > > > > > > > > > > > My main concern is that since we are still supporting JDK > > 8, > > > > > > building > > > > > > > > the > > > > > > > > > > docs with JDK 11 can bring about actual legitimate > > usability > > > > > > concerns > > > > > > > > in > > > > > > > > > > terms > > > > > > > > > > of consistency because we still have to build the main > > source > > > > > code > > > > > > > with > > > > > > > > > JDK > > > > > > > > > > 8 > > > > > > > > > > but with docs we have to build with JDK 11 and so if we > do > > > this > > > > > > > change > > > > > > > > we > > > > > > > > > > have a situation where if someone starts sbt with JDK 8 > > > > (because > > > > > > they > > > > > > > > are > > > > > > > > > > developing normally with the source code) and then do > > > > > docs/paradox > > > > > > > they > > > > > > > > > > will > > > > > > > > > > get hit with runtime bytecode mismatch errors. > > > > > > > > > > > > > > > > > > > > Now this can be solved with the the source and target > flags > > > > i.e. > > > > > > > > > > > > > > > > > > > > javacOptions ++= Seq("-source", "1.8", "-target", "1.8") > > > > > > > > > > > > > > > > > > > > Which instructs the JVM to target JDK 1.8 but there are > > > > > limitations > > > > > > > > here > > > > > > > > > > i.e. > > > > > > > > > > the fact that it doesn't work sun.misc.unsafe[1]. > > > > > > > > > > > > > > > > > > > > > > > > > > > > Luckily, only the main pekko repo uses sun.misc.Unsafe > > > > (pekko-http > > > > > > > > > indirectly through pekko.util.Unsafe). > > > > > > > > > > > > > > > > > > The main pekko repo *already* supports building with Java > 11 > > > (and > > > > > > > > requires > > > > > > > > > it for releases) and targeting Java 8. While it is true it > > uses > > > > > > fairly > > > > > > > > > horrible hacks to achieve this while also using > > > sun.misc.Unsafe, > > > > > this > > > > > > > is > > > > > > > > > already in place, and other components should be fine with > > the > > > > > > > 'regular' > > > > > > > > > flags for targeting Java 8. > > > > > > > > > > > > > > > > > > > > > > > > > > > > There is also the other issue which is well, the compiled > > > docs > > > > > > would > > > > > > > be > > > > > > > > > > slightly > > > > > > > > > > misleading in the sense that they would link against the > > JDK > > > 11 > > > > > > docs > > > > > > > > when > > > > > > > > > > in reality > > > > > > > > > > our projects support JDK 8 and these docs do actually > > differ > > > > > (JDK8 > > > > > > > docs > > > > > > > > > > differ > > > > > > > > > > to JDK11 docs). > > > > > > > > > > > > > > > > > > > > > > > > > > > I don't think this is an issue: while it is true we support > > > Java > > > > 8, > > > > > > I'd > > > > > > > > say > > > > > > > > > users are more than likely to be on more recent Java > > versions, > > > in > > > > > > which > > > > > > > > > case the links to more recent Java versions will be more > > > > accurate. > > > > > > > > > > > > > > > > > > > > > > > > > > > > I mentioned this somewhere (can't remember where) but it > > > would > > > > > > > actually > > > > > > > > > be > > > > > > > > > > ideal > > > > > > > > > > if another release of sbt-paradox from the older series > > i.e. > > > > > 0.9.x > > > > > > so > > > > > > > > it > > > > > > > > > > can be > > > > > > > > > > deployed to the newer repositories. > > > > > > > > > > > > > > > > > > > > > > > > > > > > I think we should consider requiring Java 11 for all > > > development: > > > > > the > > > > > > > > > cost/complexity of requiring all our build tools to keep > > > > supporting > > > > > > > Java > > > > > > > > 8 > > > > > > > > > will only increase, and IMHO is unhealthy to the wider > > > ecosystem. > > > > > The > > > > > > > > > cost/complexity of building with Java 11 and targeting > Java 8 > > > is > > > > > low > > > > > > > when > > > > > > > > > using the well-understood compiler flags, except when also > > > using > > > > > > > > > sun.misc.Unsafe, but we have already incurred that cost for > > > that > > > > > case > > > > > > > > > anyway. > > > > > > > > > > > > > > > > > > The main remaining risk I see would be that we'd > > > unintentionally > > > > > > accept > > > > > > > > an > > > > > > > > > update of a runtime dependency that drops support for Java > 8. > > > > > > > > > > > > > > > > > > While it is true the use of Java 8 sadly still seems > > > widespread ( > > > > > > > > > > > > > > > > > > https://newrelic.com/resources/report/2023-state-of-the-java-ecosystem > > > > > > > > > mentions 33%), I'm sceptical the same holds for developer > > > > > > environments. > > > > > > > > > > > > > > > > > > > > > > > > > > > Kind regards, > > > > > > > > > > > > > > > > > > Arnout > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [1]: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/apache/incubator-pekko/blob/bcec7c0fa0cd9f68c4858d168f0dfadcb3ba4602/project/JdkOptions.scala#L71-L82 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, Jan 31, 2024 at 2:48 AM PJ Fanning < > > > > fannin...@apache.org > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > We have a slightly untidy sbt plugin setup in our > various > > > > Pekko > > > > > > > > repos, > > > > > > > > > > > where we force the use of old Paradox plugins so that > we > > > can > > > > > use > > > > > > > Java > > > > > > > > > > > 8 for doc building. > > > > > > > > > > > > > > > > > > > > > > Now that we have the 1.0.x releases done, can we > consider > > > > > > switching > > > > > > > > to > > > > > > > > > > > the latest Paradox plugins and live with the fact that > > that > > > > > means > > > > > > > we > > > > > > > > > > > need to use Java 11 for doc builds? > > > > > > > > > > > > > > > > > > > > > > Matthias Kurz has been publishing some new versions of > > > these > > > > > > > plugins > > > > > > > > > > > because the versions that we use are not in Maven > Central > > > > > meaning > > > > > > > > that > > > > > > > > > > > we are dependent on the scala-sbt repository. > > > > > > > > > > > > > > > > > > > > > > Any objections to us at least starting with the Pekko > > repos > > > > > where > > > > > > > we > > > > > > > > > > > have 1.0.x branches? We can update the main branches in > > > these > > > > > > repos > > > > > > > > to > > > > > > > > > > > use the latest Paradox plugins and update the build > docs. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > Alexanderufer 3-7, 10117 Berlin > > > > > > > > > > > > > > > > > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > > > > > > > > > > > > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > > > > > > > > > > > > > > > > > *m:* +491603708037 > > > > > > > > > > > > > > > > > > > > *w:* aiven.io *e:* matthew.dedetr...@aiven.io > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > Arnout Engelen > > > > > > > > > ASF Security Response > > > > > > > > > Committer on Apache Pekko > > > > > > > > > Committer on NixOS > > > > > > > > > Independent Open Source consultant > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > Matthew de Detrich > > > > > > > > > > > > > > > > *Aiven Deutschland GmbH* > > > > > > > > > > > > > > > > Immanuelkirchstraße 26, 10405 Berlin > > > > > > > > > > > > > > > > Alexanderufer 3-7, 10117 Berlin > > > > > > > > > > > > > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > > > > > > > > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > > > > > > > > > > > > > *m:* +491603708037 > > > > > > > > > > > > > > > > *w:* aiven.io *e:* matthew.dedetr...@aiven.io > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > Arnout Engelen > > > > > > > ASF Security Response > > > > > > > Committer on Apache Pekko > > > > > > > Committer on NixOS > > > > > > > Independent Open Source consultant > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > Matthew de Detrich > > > > > > > > > > > > *Aiven Deutschland GmbH* > > > > > > > > > > > > Immanuelkirchstraße 26, 10405 Berlin > > > > > > > > > > > > Alexanderufer 3-7, 10117 Berlin > > > > > > > > > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > > > > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > > > > > > > > > *m:* +491603708037 > > > > > > > > > > > > *w:* aiven.io *e:* matthew.dedetr...@aiven.io > > > > > > > > > > > > > > > > > > > > > -- > > > > > Arnout Engelen > > > > > ASF Security Response > > > > > Committer on Apache Pekko > > > > > Committer on NixOS > > > > > Independent Open Source consultant > > > > > > > > > > > > > > > > > -- > > > > > > > > Matthew de Detrich > > > > > > > > *Aiven Deutschland GmbH* > > > > > > > > Immanuelkirchstraße 26, 10405 Berlin > > > > > > > > Alexanderufer 3-7, 10117 Berlin > > > > > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > > > > > *m:* +491603708037 > > > > > > > > *w:* aiven.io *e:* matthew.dedetr...@aiven.io > > > > > > > > > > > > > -- > > > Arnout Engelen > > > ASF Security Response > > > Committer on Apache Pekko > > > Committer on NixOS > > > Independent Open Source consultant > > > > > > > > > -- > > > > Matthew de Detrich > > > > *Aiven Deutschland GmbH* > > > > Immanuelkirchstraße 26, 10405 Berlin > > > > Alexanderufer 3-7, 10117 Berlin > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > *m:* +491603708037 > > > > *w:* aiven.io *e:* matthew.dedetr...@aiven.io > > > > > -- > Arnout Engelen > ASF Security Response > Committer on Apache Pekko > Committer on NixOS > Independent Open Source consultant > -- Matthew de Detrich *Aiven Deutschland GmbH* Immanuelkirchstraße 26, 10405 Berlin Alexanderufer 3-7, 10117 Berlin Amtsgericht Charlottenburg, HRB 209739 B Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen *m:* +491603708037 *w:* aiven.io *e:* matthew.dedetr...@aiven.io