> Lomig Mégard has expressed an interest in continuing to maintain pekko-http-cors - so for me that would be a strong argument for not bringing this code inside Pekko. There is no guarantee that he will grant us the code.
That's a fair point, but this can also be reversed into a positive which is that he already has bought into the pekko ecosystem and if we bring his module into our code than his contributions will definitely be welcomed and its a path to him becoming a committer. Increasingly having these conversations is making me lean towards making a vote thread on the mailing list because we have to tread carefully especially with our messaging. Lets see what others say and then I can possible start a voting thread later in the week On Tue, May 30, 2023 at 4:02 PM PJ Fanning <fannin...@gmail.com> wrote: > I still think that the extra modules should be discussed separately. > There are alternatives that we could do in some cases. > > pekko-http-cors is probably the best module for us to start with > because Pekko HTTP will probably be released soon and there are not > many alternatives for this. > Lomig Mégard has expressed an interest in continuing to maintain > pekko-http-cors - so for me that would be a strong argument for not > bringing this code inside Pekko. There is no guarantee that he will > grant us the code. > > Not creating new repos and using existing repos does cut down a lot of > the overhead. But there is still plenty of overhead. > > > > On Tue, 30 May 2023 at 14:52, Matthew Benedict de Detrich > <matthew.dedetr...@aiven.io.invalid> wrote: > > > > Sorry I also forgot to mention one additional thing regarding voting, > aside > > from possibly creating a vote on whether to embark on this in the first > > place is there any > > additional voting necessary,either from us or the PPMC or otherwise? I > > assumed that if > > we have a code grant then additional votes are not really necessary or is > > the argument > > here that because we did accept a code donation then on those grounds > only > > the PPMC > > might not vote for the release hence triggering more blockages? > > > > On Tue, May 30, 2023 at 3:48 PM Matthew Benedict de Detrich < > > matthew.dedetr...@aiven.io> wrote: > > > > > > > > * we have all the work to change the package names and configs > > > * new documentation > > > * new CI builds > > > * a lot more votes on releases > > > > > > Incase there is a misunderstanding, I am not suggesting that we make > new > > > repos for any of the mentioned dependencies so > > > points such as new CI builds are not entirely relevant (if we want to > be > > > precise for pekko-http-cors it would just reuse the > > > existing pekko-http build which just builds all modules at once since > this > > > is the base case and for aws-spi-pekko-http this would > > > be a separate CI instance however that is just due to how > pekko-connectors > > > are structured, in other words adding this is literally > > > a single line in > > > > https://github.com/apache/incubator-pekko-connectors/blob/main/.github/workflows/check-build-test.yml#L86-L133 > > > ). > > > I don't think extra CI instances for a project like pekko-connectors in > > > the grand scheme of things is an issue, it already has like ~20 > > > integrations so one more isn't going to have a noticeable impact. > > > > > > The package name changes are likewise trivial compared to what we had > to > > > do with Pekko's modules just due to how much less > > > code we are dealing with and regarding config changes > aws-spik-pekko-http > > > doesn't even have any real configs (just a `META-INF.services` > > > in the resources folder which I think is pointless because its already > > > generated????) and with pekko-http-cors we just need to change a > > > single line, i.e. > > > > https://github.com/lomigmegard/pekko-http-cors/blob/ec10651cc754cb2aa86a4e120056d3067db3179a/pekko-http-cors/src/main/resources/reference.conf#L8 > > > > > > In summary aside from the documentation, unless I have missed something > > > all things considering technically speaking > > > this is actually not that much more work. > > > > > > The bigger issue which I think we should focus on is the > > > legal/vote/process parts, i.e. > > > > > > > * we would need to persuade the original contributors to grant the > code > > > to ASF and get it voted on (Pekko community and Incubator PMC) > > > > > > So the question here is, how should we approach this? If we decide to > go > > > ahead with this, the first obvious practical step is to > > > reach out to the author of pekko-http-cors to see if he is willing to > > > donate the code to ASF and sign a code grant. Shall we start > > > a voting round whether to initiate this in the first place so that we > are > > > all onboard with this? > > > > > > On Tue, May 30, 2023 at 3:21 PM PJ Fanning <fannin...@apache.org> > wrote: > > > > > >> Just to make clear to everyone - this does not affect the core Pekko > > >> modules and the proposal to press on with getting a RC ready. > > >> > > >> I agree that we should not consider taking anything into Pekko that we > > >> don't use inside our own modules - that is, only ones that Matthew > > >> mentioned are under discussion. > > >> > > >> At a high level, I'm not against taking in the listed modules but it > is a > > >> lot of work. > > >> * we would need to persuade the original contributors to grant the > code > > >> to ASF and get it voted on (Pekko community and Incubator PMC) > > >> * we have all the work to change the package names and configs > > >> * new documentation > > >> * new CI builds > > >> * a lot more votes on releases > > >> > > >> We should really consider alternatives on a cases by case basis. > > >> * one example is pekko-http-circe - Matthew has highlighted a JAWN > based > > >> lib that might be a good alternative > > >> * aws-spi-pekko-http - an alternative is to use the Java APIs in the > AWS > > >> v2 libs (which have good async support) > > >> > > >> All in all, I wouldn't regard taking any of these jars into the Pekko > > >> community as something that would block releases. For me, they might > be > > >> nice to have been the time expenditure on making the changes makes we > wary. > > >> > > >> > > >> On 2023/05/30 09:50:34 Matthew Benedict de Detrich wrote: > > >> > While the timing of this can be considered ill-advised considering > we > > >> have > > >> > a release candidate down the line, this is something that I have > only > > >> > somewhat recently discovered as I have been working on getting other > > >> Pekko > > >> > modules ready for releases. > > >> > > > >> > What I have noticed is that various Pekko modules (thankfully > > >> > excluding Pekko core) happen to have dependencies on other projects > > >> which > > >> > in turn also happen to depend on Pekko. This basically creates a > > >> transitive > > >> > circular dependency, i.e. Pekko Http has a dependency on project X > and > > >> > project X has a dependency on Pekko core. > > >> > > > >> > In my view this situation isn't really ideal because it opens us to > > >> risk of > > >> > being blocked when having to do some changes and this is what we > have > > >> > actually experienced when working on getting Pekko modules ready for > > >> > release candidates ( > > >> https://github.com/lomigmegard/pekko-http-cors/pull/19, > > >> > https://github.com/pjfanning/aws-spi-pekko-http/pull/6, > > >> > https://github.com/pjfanning/aws-spi-pekko-http/pull/5 and > > >> > https://github.com/pjfanning/aws-spi-pekko-http/pull/1) are > examples of > > >> > this. > > >> > > > >> > The problematic dependencies are listed below but in a lot of cases > PJ > > >> > Fanning has had to fork the project's and it's at this point that I > am > > >> > raising whether it makes more sense to just put the dependencies > > >> directly > > >> > inside the appropriate Pekko module. Note that the list below is > sorted > > >> in > > >> > criticality (i.e. modules closer to Pekko core are placed earlier > since > > >> > they will be released earlier). > > >> > > > >> > * https://github.com/lomigmegard/pekko-http-cors: This is not > forked > > >> by PJ > > >> > Fanning because thankfully the maintainer has been > > >> constructive/responsive > > >> > in adapting the project for Pekko and merging necessary changes. The > > >> > project is used by pekko-grpc but it depends on pekko-http since its > > >> adding > > >> > cors (see https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). > The > > >> > natural place for this project would be to sit inside of > pekko-http, in > > >> > fact I am quite surprised that this is in a separate project since > this > > >> is > > >> > a W3C http standard. Adding this as a separate artifact inside of > > >> > pekko-http would technically be quite trivial. > > >> > * https://github.com/pjfanning/aws-spi-pekko-http is an SPI > (Service > > >> > Provider Interface) to AWS's async API for their services which is a > > >> fork > > >> > of https://github.com/matsluni/aws-spi-akka-http which is currently > > >> forked > > >> > by PJ Fanning. The project depends on pekko-http and is a > dependency of > > >> > various pekko-connecter AWS integrations (i.e. event bridge, > kinesis etc > > >> > etc). It can be its own artifact within pekko-connectors since its > > >> > transitive dependencies (i.e. aws sdk) are quite stable and don't > break > > >> > that often. > > >> > * https://github.com/hseeberger/akka-http-json: An integration > between > > >> Akka > > >> > Streams and Circe. The project depends on akka-http and is being > used by > > >> > the IronMQ integration in Pekko connectors, currently the project is > > >> forked > > >> > by PJ Fanning. I wouldn't recommend merging this project into > > >> > pekko-connectors because historically Circe's interface hasn't been > that > > >> > stable (more specifically Circe is still on 0.x on early-semver > which > > >> means > > >> > any increase in minor breaks binary compatibility and hence we > would be > > >> > forced to release pekko-connectors very frequently). If the author > > >> > considers forking this for Pekko than this is acceptable however > there > > >> are > > >> > alternatives, i.e. I maintain > > >> > https://github.com/mdedetrich/akka-streams-json which will be > forked > > >> in a > > >> > new repo for Pekko once a change in typelevel's jawn is released > (and > > >> as a > > >> > bonus akka-streams-json which will be pekko-streams-circe as an > actual > > >> > streaming JSON implementation, unlike akka-http-json) > > >> > > > >> > Including the source of these plugins directly into Pekko raises a > lot > > >> of > > >> > concerns. The most obvious ones are legal/license, on the licensing > > >> front > > >> > we are lucky since all of the code in question is Apache 2 however > there > > >> > can be other legal concerns that always arise in these cases. > > >> > > > >> > Thankfully we are a bit lucky here in that the author of the most > > >> critical > > >> > module dependency timewise pekko-http-cors has been very open in > working > > >> > with us, so it may not even be a stretch in proactively and honestly > > >> asking > > >> > him whether he would be willing to donate the code (even with a code > > >> grant) > > >> > to us which I would presume would solve most legal issues. The other > > >> > dependency which is aws-spi-pekko-http might be a bit more > problematic > > >> but > > >> > its also part of pekko-connectors which will take some time before > we > > >> get > > >> > to a release and by that time pekko core would already have its > 1.0.x > > >> > release which hopefully increase chances of the author being more > > >> > responsive to us. As mentioned before akka-http-json doesn't make > sense > > >> > because of technical reasons but we should look into approaching the > > >> author > > >> > at some point in making it support pekko irregardless of what we > decide > > >> on > > >> > this topic. > > >> > > > >> > Also finally regarding the effort both in including the code and in > > >> > maintaining it, with the former we would just place code in an > existing > > >> > repository. Even for purely technical reasons it doesn't make sense > to > > >> make > > >> > the projects their own repo and in regards to maintenance burden a > lot > > >> of > > >> > this code is basically unchanged for years so we should be good > here. > > >> > > > >> > What is everyones thoughts on this? > > >> > > > >> > -- > > >> > > > >> > 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 > > >> > > > >> > > >> --------------------------------------------------------------------- > > >> 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 > > --------------------------------------------------------------------- > 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