+1 (non-binding) Looking great and best wishes to the project!
Yihao Chen (Superskyyy) From: Lari Hotari<mailto:lhot...@apache.org> Sent: October 20, 2022 2:06 PM To: general@incubator.apache.org<mailto:general@incubator.apache.org> Subject: Re: [VOTE] Accept Pekko into the Apache Incubator +1 (non-binding) Thank you, Claude and Ryan, for putting together the proposal! -Lari On 2022/10/19 08:04:30 "Claude Warren, Jr" wrote: > After reviewing the [DISCUSS] threads concerning bringing Pekko into the > incubator [1][2], and finding that there is no further comment, I am > calling for a VOTE to accept Pekko into the Apache Incubator. The text of > the proposal is included below for convenience, final and definitive text > is in the Pekko Proposal from the Incubator wiki.[3] . > > Thank you for your time and consideration, > Claude > > [1] https://lists.apache.org/thread/1t0x6d815td9dgjxhck51b5txcjm28rr > [2] https://lists.apache.org/thread/cjo86gdwvqlqslq68gd0c8hxq6ds6yrz > [3] https://cwiki.apache.org/confluence/display/INCUBATOR/PekkoProposal > > *Pekko Proposal* > > *Abstract* > > Pekko is a toolkit and an ecosystem for building highly concurrent, > distributed, reactive and resilient applications for Java and Scala. > > *Proposal* > > Pekko is a toolkit that brings the actor model (popularised by Erlang) to > the JVM, providing the basis for building both locally and distributed > concurrency. On top of this Pekko provides a rich set of libraries built on > top of Actors to solve modern problems, including: > > - Streams: Fully bi-directional backpressured streams following the > Reactive manifesto > - HTTP: A fully streamed HTTP client/server built on top of streams that > also provides expected tools (such as connection pooling) necessary for > highly available web services > - connectors: A rich set of connectors for various databases, messaging, > persistent services built on top of streams > - grpc: A gRPC server/client > - projection: Provides abstractions necessary for CQRS pattern such as > envelope, necessary for systems such as Kafka. > > *Background* > > Pekko is a fork of the Akka project just before its licence changed from > Apache 2 to Business Source License 1.1. The project provides a set of > tools and frameworks that covers the complex problem space of distributed > concurrent systems. It is designed to support the design principles of the > Reactive Manifesto by providing components to efficiently scale up systems > within a server or scale out across multiple servers, are high performance, > resilient to failure, distributed systems without a single point of failure. > > *Rationale* > > There is a large cohort of applications and libraries that were dependent > upon the original open source version of this project. Numerous developers > contributed their time in the belief that the project would stay open > source. When the licence was changed the work of those developers was > locked up and a vital resource for the cohort of applications and libraries > disappeared. Apache Flink is an example of a library that used the original > library upon which this project is based. This project is to continue the > open source development that was promised under the original Apache 2 > licence. We ask that the Apache Foundation accept this project so as to > prevent any future incompatible licence switch in the future. > > Apache has a long standing tradition of not accepting hostile forks. There > has been some discussion of whether this project violates that tradition. > We believe that it does not. > > For many years, Lightbend has been a steward for this open source project, > attracting contributions from many developers and building a community > under the Apache License. It's within their rights to offer their future > work under a different licence. The Pekko project will provide the > continuity of an Apache-licensed home for long-term support, maintenance > and new features for the developers that wish to continue using and > building on their previous work. The major historical reason why Apache > would be a good home for Pekko is that it will protect the project from > licence changes similar to what is instigating the initial incubation > proposal. If Pekko becomes part of Apache then it gives confidence to the > community/users of Pekko that such an incident won’t happen in the future > again. There are also currently existing Apache projects such as Flink that > use Akka to varying degrees and hence having Pekko to be part of Apache > gives confidence to these other Apache projects. We believe that this fork > is a maintenance of the pre-existing Apache 2 licence and ask that the > Apache community view it as such. > > In general, Akka had a very large penetration in both Scala and Java > codebases, particularly in large scale enterprise projects/systems. Since > it is a JVM based library it fits well into the Apache ecosystem. We feel > that we can contribute to the stability of existing Apache projects as > Apache can contribute to the stability of Pekko. > > *Initial Goals* > > Due to the sheer size of Akka, initial goals will be largely be adjusting > and modifying the codebase so its fit for community orientated > contributions, this includes: > > > - Removing the Akka trademark from all sections in the code. > - Setting up the build system using github actions to make sure we have > a CI system setup whenever pull requests are made (some Akka projects use > github actions already, in which case we need to make sure it still works > after the work). > - Also using github actions for Maven/Github releases, in Scala/SBT > projects it's typical to trigger a release when a person with necessary > rights pushes a signed git tag. Also need to find a solution for the > official Apache source SVN release. > - Other adjustments such as using testcontainers to minimise the > friction in running tests for projects such as containers. > - Update all of the documentation to be appropriate for an Apache > project (as well as using the project’s name). > - Assure continuity of security fixes and update on the existing > Apache-licensed code, which might otherwise be at risk. > - Continuously building community and identifying the contributors that > might assume project management roles for a successful graduation. > - Port and/or merge currently open contributions/PR’s from Akka > community, if they are willing, which are currently frozen due to the > licence change. > - This will be done after the first release of Pekko to accommodate for > companies that were using Akka so that they can use a version of Pekko that > is functionally equivalent to the last Apache release of Akka. > > > *Current StatusMeritocracy:* > > The project upon which Pekko is based was initially very welcoming to > contributions from external developers. However, they were controlled by a > commercial entity. Some projects were labelled as “community driven > projects”, those would not have the guarantee from the entity to have a > dedicated person working on them, so they needed to rely on community > participation. The entity allowed trusted external developers to commit to > the code base and have write access to these mentioned community > repositories. The new management team understands that, and hopes that > developers will become engaged with the project and will help drive the > development of processes as well as code so that we can become the > welcoming development team we hope to be. > > Many of the core developers are experienced Apache developers working on > other projects. Through their understanding and the work of the mentors we > are assured that a meritocracy will thrive around this community. > > *Community*: > Akka being an already established open source project already has a > community. This community was present in many channels, such as > > - Scala reddit (/r/scala) > - Akka gitter channel > - Lightbend forums > - Scala community forums > > It is expected that once Pekko is launched a portion of this community > (specifically the ones interested in open source contributions) would > migrate to Pekko’s mailing list. > > Early discussions in existing community forums have shown that there is > interest in an Apache project and we have commitment from several channels > to contribute to this project. > > Early participants in the discussions forming this project are participants > in the above channels and have a broad reach that will bring other > developers into the project. In addition to software developers we have > documentation specialists and test engineers participating. We have a broad > community. And while it does not have the depth we would like, we believe > that it will continue to grow as we move forward. > > *Core Developers:* > > The individuals on the committer list are ones who have a history of > contributing to the Akka project before the licence change as well as > individuals that participated in community discussion on various Akka > forums (i.e. Lightbend forums). In addition the individuals have a history > of working and contributing to open source projects. > > Sean Glover is a former member of the Akka team. He primarily maintained > Akka Streams and related projects Alpakka and Alpakka Kafka. He currently > uses Akka on the job and in other OSS projects he maintains. > > Phillip Warburton feels he is not enough of an expert to contribute code > but is interested in contributing in to document clean-room fixes. > > Andy Chen is a contributor on Akka and his work is based on the Akka > libraries. > > Jean-Luc Deprez works on a small team, mid sized software company, > subsidiary of a large corporate group. His team built a project on top of > Akka. The September 7th licence change came as a pretty hard personal blow. > He will divert his community participation this way, contributing in > discussions and issues. If the team figure out a fix, you can count on a PR. > > Greg Methvin is a maintainer on Play Framework (which is now > community-maintained). We are evaluating whether this can serve as a > replacement for Lightbend Akka going forward, as opposed to moving off Akka > entirely. > > Nicolas Vollmar is a maintainer on the akka-kryo-serialization project. > > PJ Fanning maintains a few akka related projects: swagger-akka-http and > micrometer-akka. > > Daniel Schröter is a maintainer of the akka-kryo-serialization project. > Altoo is using akka and has been regularly submitting bugfixes/improvements > to akka. > > Josep Prat is the top 5 contributor of the Akka HTTP module and did all > contributions during his spare time, also he is in position 45 of all time > committers in the Akka project. > > Matthew de Detrich is a contributor to both Akka and Alpakka, submitting > extra feature improvements as well as the wider Scala OS ecosystem in > general (i.e. contributions to Scala stdlib itself, Scalatest etc etc). > Most of these contributions were done in his spare time. > > Alexandru Nedelcu created Monix which is one of the popular > reactive/future/IO implementation used within the Scala ecosystem that > adheres to the Reactive Streams protocol. He is a very prolific contributor > to the Scala OS ecosystem, having been previously part of the Typelevel > steering committee and also happens to works at a company that heavily uses > Akka for its payment systems. > > Johannes Rudolph is a major contributor to akka and the lead developer for > akka-http. > > *Alignment:* > > Apache Flink is using Akka however they are looking for a replacement due > to the licence change. We expect that other Apache projects will require > the same. > > We believe that we can be a good community member. > > > *Known RisksProject Name* > > Several names were floated to replace the Akka name. There was a community > discussion and vote around the name > > We have selected the name Pekko after a vote on candidate names. Akka is > the Finnish goddess of fertility and the earth. Pekko is the FInnish god of > farming & protector of the crops which create a nice analogy in a sense. We > pronounce the name Peck-O. > > A search of the WIPO database and EU IPO Search did not turn up any active > Nice category 9 trademark registrations containing the phrase “pekko”. All > results were “pekko” compounded with other phrases. > > *Orphaned products* > > Pekko provides libraries that are used by major companies, Apache projects, > and individuals. The initial development team comprises representatives > from these organisations. We believe that Pekko will attract open source > developers that have contributed to Akka in the past and want to see their > work continue to be open source. We are here, not because we are a > potentially orphaned product, but rather because the contributors to the > existing product want to see the open source project continue. > > *Inexperience with Open Source:* > > The project upon which Pekko is based was, as noted above, an open source > project. The developers that wish to continue with the development > understand open source projects. Several of the developers are committers > on other Apache projects. Several are members of open source project > offices at their respective employers. Several of our members are > experienced in developing communities around open source projects. > > *Length of Incubation:* > > We expect that the incubation process will be quite long as we have > significant code cleanup and documentation scrubbing to be completed. In > addition we need to configure the Apache build systems to properly build > what is a fairly complex project (i.e. akka core has tests that require > multi node machines). An incubation of 1-2 years would not be unexpected. > > *Homogenous Developers:* > > The current list of committers spans Asia, Europe, and the Americas. All > are experienced in working in distributed environments. While there are > cultural differences, all are committed to open source development. > > *Reliance on Salaried Developers:* > > While several of the developers have the same employer, no employer has > specifically stated that they are committing developers to Pekko. Any > commercial contributions of time/effort are due to the need for > changes/fixes to the libraries used by the commercial entities. > > All developers have shown a specific interest in keeping this project open > source and we expect that future developers will join for the same reasons. > > *Relationships with Other Apache Products:* > > As noted above Akka is used by Apache Flink though Flink is planning to > migrate away. We anticipate that they will transition to Pekko when it > becomes available. We expect that other projects may find the library of > use. > > *An Excessive Fascination with the Apache Brand:* > > We understand the need to protect the Apache brand. We also understand that > the Apache brand brings a licensing guarantee. While we are desirous of the > licensing guarantee, we believe that the project we are bringing is viable > and important. We think that it will provide support for at least two > existing Apache projects and contribute to the strength of the Apache brand > world wide. > > *Documentation* > > The current documentation can be found at https://akka.io/docs Other > documentation is available as .md files within the source tree of the > project. > > *Initial Source* > > The original source comes from the Lightbend Akka github repository before > they transitioned to the Business Source License. The code base to be > imported resides in several repositories under the control of Matthew > Benedict de Detrich, the base one being > https://github.com/mdedetrich/akka-apache-project > > *Source and Intellectual Property Submission Plan* > > Since Pekko is forked from an already existing Akka codebase there is a > high chance that there may be existing IP/trademarks in the codebase that > needs to be screened. The Akka name itself needs to be changed/removed > entirely from the codebase. > > In addition there are already existing github triggers and other mechanisms > that build and test the system. We will need to review the triggers to > determine how to implement the same or similar functionality on the Apache > infrastructure. > > Our high level plan is to: > > > 1. A lift and shift of the existing github core repository into the > Apache repository. > 2. Modification of the build and test process to run on the Apache build > infrastructure. > 3. Emphasis on the dev and user mailing lists for help requests and > discussions. > 4. Development and modification of project documentation. > 5. Create a “release” 0.1.0. > 6. Verify release > 7. Functionality > 8. Documentation > 9. Meets Apache standards > 10. Continue using the above process to migrate additional libraries to > the Apache libraries with each one being a release “0.x.0” > 11. Upon completion of the migration of all pertinent libraries release > 1.0.0 > 12. This strategy gives us the opportunity of learning the Apache way > and the Apache infrastructure with small modules before we move into the > more complex systems, building up layer by layer until we have a complete > first release. > > > *External Dependencies:* > > The initial code was licensed under Apache Source License v2. As such we > believe that it meets all the requirements for external dependencies. > However, as part of the incubation process we will verify that all > dependencies have appropriate licences. Any dependencies that do not meet > the requirements will be removed and alternative libraries or code used > instead. > > *Cryptography:* > > We believe that there is no cryptographic code in the code base. However, > as part of the incubation process we will verify that this is true. > > > *Required ResourcesMailing lists:* > > priv...@pekko.incubator.apache.org > d...@pekko.incubator.apache.org > us...@pekko.incubator.apache.org > comm...@pekko.incubator.apache.org > Subversion Directory: > We do not intend to use subversion. > > *Git Repositories:* > > https://gitbox.apache.org/repos/asf/incubator-pekko.git > > *Issue Tracking:* > JIRA Pekko (PEKKO) > > *Initial Committers* > Matthew de Detrich mdedetr...@gmail.com (CLA submitted) > Josep Prat jo...@prat.tech (CLA submitted) > He Pin hepin1...@gmail.com (CLA submitted) > Andrea Zito zito.and...@gmail.com > Andrea Peruffo andrea.peruffo1...@gmail.com > Alexandru Nedelcu m...@alexn.org > Joe Brockmeier j...@apache.org > Sean Glover s...@seanglover.com > Greg Methvin g...@methvin.net (play framework) > Nicolas Vollmar nicolas.voll...@altoo.io > PJ Fanning fannin...@yahoo.com > Daniel Schröter d...@theone.ch > Michael Kohout mwkoh...@gmail.com > jxnu-liguobin dreamyl...@outlook.com > Salar Rahmanian sa...@softinio.com > Jonas Chapuis m...@jonaschapuis.com > Andreas Gabor acc_apa...@beezle.de > Johannes Rudolph johannes.rudo...@gmail.com > > There has been a lot of interest in being an initial committer, and we've > tried to pick a fair representation of interested developers from the > requests. We want to be clear that we welcome all contributions and expect > that the incubation period is the right time for this list to grow and > evolve. > > *Sponsors* > No company has committed to providing dedicated developers for the project > but Aiven and Altoo have committed to supporting development as needed by > their respective organisations. > > *Champion*: > Claude Warren cla...@apache.org > > *Nominated Mentors:* > Claude Warren cla...@apache.org > Justin McLean jmcl...@apache.org > Ryan Skraba rskr...@apache.org > PJ Fanning fannin...@yahoo.com > Roman Shaposhnik r...@apache.org > Wu Sheng wush...@apache.org > JB Onofré jbono...@apache.org > > *Sponsoring Entity:* > The Incubator > --------------------------------------------------------------------- To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org For additional commands, e-mail: general-h...@incubator.apache.org