+1 (binding) from me! :) G’luck! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chris Mattmann, Ph.D. Chief Architect Instrument Software and Science Data Systems Section (398) NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA Office: 168-519, Mailstop: 168-527 Email: chris.a.mattm...@nasa.gov WWW: http://sunset.usc.edu/~mattmann/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Adjunct Associate Professor, Computer Science Department University of Southern California, Los Angeles, CA 90089 USA ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----Original Message----- From: Roman Shaposhnik <r...@apache.org> Reply-To: "general@incubator.apache.org" <general@incubator.apache.org> Date: Wednesday, March 18, 2015 at 11:55 PM To: "general@incubator.apache.org" <general@incubator.apache.org> Subject: [VOTE] Accept Groovy into the Apache Incubator >Following the discussion earlier in the thread: > http://s.apache.org/KWE > >I would like to call a VOTE for accepting Groovy >as a new incubator project. > >The proposal is available at: > https://wiki.apache.org/incubator/GroovyProposal >and is also included at the bottom of this email. > >Vote is open until at least Saturday, 21st March 2015, 23:59:00 PST > > [ ] +1 accept Groovy in the Incubator > [ ] ±0 > [ ] -1 because... > >Thanks, >Roman. > >== Abstract == >Groovy is an object-oriented programming language for the Java >platform. It is a language with features similar to those of Python, >Ruby, Java, Perl, and Smalltalk. >Groovy, if accepted by Incubator, will be a first major programming >language developed under the umbrella of Apache Software Foundation. > >== Proposal == >Groovy is a programming language for the Java platform. It is a >primarily dynamic language with features similar to those of Python, >Ruby, Perl, and Smalltalk. It also has optional static type checking >and static compilation facilities. It can be used as a scripting >language for the Java Platform or to write complete applications, is >compiled to Java Virtual Machine (JVM) bytecode, and interoperates >with other Java code and libraries. Groovy uses a Java-like >curly-bracket syntax. Most Java code is also syntactically valid >Groovy, although semantics may be different. Groovy has long been >developed under an Apache License v2.0 under an open governance >community management process. However, so far Groovy has been a >project mostly sponsored by a single company. This proposal aims at >bringing Groovy community under the umbrella of the Apache Software >Foundation. > >It must be explicitly noted, that a few sister projects such as Groovy >Eclipse and others (some of them hosted under >https://github.com/groovy and listed at >http://groovy-lang.org/ecosystem.html) are not covered by this >proposal. It is possible that these other projects will be joining ASF >either independently or as sub-projects of Apache Groovy in the >future. For now, we are only proposing groovy-core. > >== Background == >Groovy 1.0 was released on January 2, 2007, and Groovy 2.0 in July, >2012. Groovy 2.5 is planned for release in 2015. Groovy 3.0 is planned >for release in 2016, with support for a new Meta Object Protocol. >Since version 2, Groovy can also be compiled statically, offering type >inference and performance very close to that of Java. Groovy 2.4 will >be the last major release under Pivotal Software's sponsorship, which >is scheduled to end on March 31, 2015. > >== Rationale == >Groovy is a pretty mature language. After 12 years of development, it >has grown from being primarily a dynamic scripting language on the JVM >to an optionally statically compiled language allowing the same >performance level as Java applications. With the release of Groovy >2.4, the language targets the largest pool of mobile developers with >native Android support. Groovy has been integrated in a large number >of applications, including well known open-source projects like >Jenkins, Gradle, ElasticSearch, Spring and more. > >There are multiple alternative languages on the JVM: Scala, Clojure, >Ceylon, Kotlin, JRuby, Golo and others but Groovy is the only one >which has proved to be very easy to integrate with Java in both ways: >Groovy code using Java code, but also Java code using Groovy code. >Groovy even provides a joint compiler which allows interdependent Java >and Groovy classes to compile together. Groovy also supports dynamic >code generation, that is to say classes at runtime, making it a >perfect fit for scripting. With a very lightweight and malleable >syntax, it is also easy to build internal Domain Specific Languages >(DSLs) which integrate smoothly within applications. > >Groovy provides a number of unique features, like builders (Java 8 has >lambdas but still has syntactic overhead and no notion of delegate), >AST transformations (compile-time metaprogramming) or type checking >extensions (which allows the developer to bring the compiler to levels >of type checking and type inference that go far beyond what other >languages do). Groovy also provides powerful integration options and >customizations which set it apart from other languages. Groovy is also >unique in the way it allows the developer to choose between various >paradigms without compromise: functional vs object-oriented, >statically compiled vs dynamic, scripting vs applications, etc. > >Despite all those advantages, and the fact that Groovy is widely >adopted (4.5 million downloads in 2014 for Groovy alone), only a few >Apache projects include Groovy and not a lot of them leverage its full >power. Some developers tend to choose Scala for example to build DSLs >without even knowing that the learning curve is much easier with >Groovy, or that they can leverage powerful type inference in their own >DSLs. > >Android development is also a domain where the weight of Java and >old-style APIs is heavy. Groovy 2.4 has proved that Android >development could benefit from its closures, extension methods and >static compilation to build applications which are as fast as Java, >but with code which is much more maintainable and decoupled from >Android APIs. Code generation libraries like SwissKnife illustrate >what Groovy can offer for Android development. However, without >full-time development on this topic, Groovy has a very tough >competition with languages like Kotlin being intensively (and >privately) sponsored to target this platform. With Groovy joining >Apache, we hope that more developers would be able to join the effort >and help reduce the footprint of the language, build libraries that >leverage the full power of Groovy while fostering the long-term future >of the language. > > >== Initial Goals == >The initial goals of the Groovy transition under the ASF umbrella are >to establish a new home for an already fully functioning project and >also make sure that the entire development community governs itself in >the "Apache Way". > >Please note that a sister project of Groovy -- Grails -- is not part >of this proposal. If Grails community makes a decision to join ASF it >will do so as an independent, albeit related, project. > >== Current Status == >Currently Groovy provides a fully functional implementation licensed >under ALv2. The project home is at http://groovy-lang.org/ and the >majority of development is coordinated via GitHub >https://github.com/groovy. The project sports a very mature >documentation and ecosystem of projects leveraging it. In fact, quite >a few existing ASF project have various plugins or subsystems written >in Groovy (Bigtop, CloudStack, etc.). > >=== Meritocracy === >Groovy, up to this, has been run by a few core project members with a lot >of >contributions coming from a wide community of participants in the project. > >We want to expand our diverse developer and user community and run the >Groovy project in >the Apache way clearly signaling not only the licensing, but also the >governance choice. > >Users and new contributors will be treated with respect and welcomed; >they will earn >merit in the project by providing quality patches and support that >move the project forward. > >Those with a proven support and quality patch track record will be >encouraged to become committers. > >=== Community === >There are just a few core team members with over a hundred >contributors to the project. If Groovy is accepted >by the Incubator, transitioning the community to embrace the Apache >Way of governance would be a primary initial goal. >We would solicit major existing contributors to become committers on >the project from the get go. > >=== Core Developers === > >Core developers include folks who are extremely skilled in working in the >openly >governed communities on code bases license under the ALv2. The core >developers are >NOT currently affiliated with the ASF, although quite a few contributors >are. > >=== Alignment === > >Groovy has been integrated into Apache Bigtop, Apache CloudStack, >Apache Ofbiz and quite a few other projects. > >== Known Risks == >As noted above, development has been sponsored mostly by a single >company and coordinated >mostly by the core team so far. > >For Groovy to fully transition to an "Apache Way" governance model it >needs to >start embracing the meritocracy-centric way of growing the community >of contributors >while balancing it with the needs for extreme stability and coherency >of the core >language implementation. > >Groovy has historically been hosted at Codehaus. While the project has >started >to migrate off the Codehaus infrastructure, some critical tools of the >project are >still hosted there: JIRA, the mailing-list, and the deprecated wiki. >Codehaus has >announced end-of-support for mid-April, making the migration critical. > >=== Orphaned products === > >The community proposing Groovy for incubation is a strong and vibrant >open source >project. Even though the sponsorship of the core team by Pivotal is >ending on March 31st, >the sheer size and diversity of the community is a guarantee against >the project being orphaned. > >=== Inexperience with Open Source === >The majority of the proposers here have day jobs that has them working >near >full-time on open source projects. A few of us have helped carry >other projects through the Incubator. Groovy to date has been developed >as >an open source project. > >=== Homogeneous Developers === >Now that Pivotal is ending its sponsorship, the initial group of >committers >is going to be extremely heterogeneous when it comes to corporate >affiliations. >The Groovy community is also extremely diverse in terms of geography and >backgrounds of developers. > >=== Reliance on Salaried Developers === >Most of the contributors are paid to work in the Java ecosystem. >While we might wander from our current employers, we probably won’t >go far from the Java family tree. > >=== Relationships with Other Apache Products === >Groovy currently has a few ASF projects as optional dependencies but >otherwise doesn't depend on any ASF projects. A few >ASF projects already depend on Groovy. > >=== An Excessive Fascination with the Apache Brand === >While we intend to leverage the Apache ‘branding’ when talking to other >projects as testament of our project’s ‘neutrality’, we have no plans >for making use of Apache brand in press releases nor posting billboards >advertising acceptance of Groovy into Apache Incubator. > > >== Documentation == >See [[http://www.groovy-lang.org/documentation.html|documentation]] >for the current state of the Groovy >documentation. > >A mature project website is also available at >[[http://www.groovy-lang.org/|groovy-lang.org]]. > >== Initial Source == >Initial source is available on GitHub under the ALv2 >[[https://github.com/groovy/groovy-core|groovy-core]] > > >== Source and Intellectual Property Submission Plan == >We know of no legal encumberments in the way of transfer of source to >Apache. In fact, given the >series of corporate due diligence procedures performed on the source >code during two of the >acquisitions we expect the code base to be squeaky clean from an IP >perspective. > >== External Dependencies == >Embedded dependencies (relocated): > > * Antlr 2, ANTLR 2 License (development branch includes Antlr4 >using BSD license) > * ASM, BSD > * Openbeans (ALv2) > * Apache Commons CLI (ALv2) > >Module or optional dependencies: > > * Apache Ant (ALv2) > * Apache Commons BSF (ALv2) > * Apache Commons Logging (ALv2) > * Apache Ivy (ALv2) > * Apache Log4j (ALv2) > * Apache Log4j 2 (ALv2) > * JAnsi (ALv2) > * JCommander (ALv2) > * JLine 2 (BSD) > * JUnit (EPL 1.0) > * Logback (EPL 1.0) > * QDox (ALv2) > * SLF4J (MIT) > * TestNG (ALv2) > >Build only dependencies: > > * bnd (ALv2) > * jarjar (ALv2) > * Checkstyle (LGPL) > * Cobertura (GPL) > * Gradle (ALv2) > * Asciidoctor (MIT) > * Simian (http://www.harukizaemon.com/simian/get_it_now.html) > >Test only dependencies: > > * Apache Commons HTTP Client (ALv2) > * Apache Lucene (ALv2) > * Eclipse OSGi (EPL 1.0) > * GPars (ALv2) > * HSQLDB (BSD) > * JMock (jMock Project License) > * OpenEJB (ALv2) > * Spock (ALv2) > * XMLUnit 1 (BSD) > * XStream (BSD) > >Cryptography >N/A > >== Required Resources == > >=== Mailing lists === > * priv...@groovy.incubator.apache.org (moderated subscriptions) > * comm...@groovy.incubator.apache.org > * d...@groovy.incubator.apache.org > * iss...@groovy.incubator.apache.org > * u...@groovy.incubator.apache.org > >=== Git Repository === >https://git-wip-us.apache.org/repos/asf/incubator-groovy.git > >=== Issue Tracking === >JIRA Groovy (GROOVY) > >=== Other Resources === > >A build server is currently sponsored by Jetbrains (TeamCity): >http://ci.groovy-lang.org?guest=1 >The CI server has a number of build plans including multiple JDKs (5 >to 9), 3rd party joint builds and integration with the Groovy website >(automatic deployment upon push). > >Means of setting up regular builds for Groovy on builds.apache.org > >== Initial Committers == > * Cédric Champeau > * Guillaume Laforge > * Jochen Theodorou > * Paul King > * Pascal Schumacher > >== Affiliations == > * Pivotal: Cédric Champeau, Jochen Theodorou > * Restlet: Guillaume Laforge > * ASERT: Paul King > * Pascal Schumacher > >== Sponsors == > >=== Champion === >Roman Shaposhnik > >=== Nominated Mentors === > * Bertrand Delacretaz - Apache Member > * Emmanuel Lecharny - Apache Member > * Jim Jagielski - Apache Member > * Roman Shaposhnik - Apache Member > * Andrew Bayer - Apache Member > * Konstantin Boudnik - IPMC Member > >Six mentors is plenty, we are not looking for more mentors at this time. > >=== Sponsoring Entity === >We would like to propose Apache incubator to sponsor this project. > >--------------------------------------------------------------------- >To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org >For additional commands, e-mail: general-h...@incubator.apache.org >