Status

This proposal has been discussed at http://s.apache.org/netbeans_proposal and NetBeans has been accepted for incubation at Apache, vote result at https://s.apache.org/netbeans_vote

The next steps are being discussed at https://lists.apache.org/list.html?dev@netbeans.apache.org - see http://s.apache.org/netbeans_please_join for how to subscribe.

Abstract

NetBeans is an open source development environment, tooling platform, and application framework, used by 1.5 million individuals each month.

Proposal

Apache NetBeans will continue to focus on the areas it has focused on while sponsored by Sun Microsystems and Oracle. It will continue to primarily focus on providing tools for the Java ecosystem, while also being focused on tools for other ecosystems, languages and technologies, such as JavaScript, PHP, and C/C++. It will continue to actively support its community by means of mailing lists, tutorials, and documentation.

Background

NetBeans started in 1995/96 in Prague, in the Czech Republic, as a student project. Sun Microsystems acquired and open sourced it in 2000 and, with the acquisition of Sun Microsystems by Oracle in 2010, became part of Oracle. Throughout its history in Sun Microsystems and Oracle, NetBeans has been free and open source and has been leveraged by its sponsor as a mechanism for driving the Java ecosystem forward.

Rationale

Although NetBeans is already open source, moving it to a neutral place like Apache, with its strong governance model, is expected to help get more contributions from various organizations. For example, large companies are using NetBeans as an application framework to build internal or commercial applications and are much more likely to contribute to it once it moves to neutral Apache ground. At the same time, though Oracle will relinquish its control over NetBeans, individual contributors from Oracle are expected to continue contributing to NetBeans after it has been contributed to Apache, together with individual contributors from other organizations, as well as self-employed individual contributors.

Initial Goals

The initial goals of the NetBeans contribution under the Apache umbrella are to establish a new home for an already fully functioning project and to open up the governance model so as to simplify and streamline contributions from the community.

Current Status

Meritocracy: NetBeans has been run by Oracle, with the majority of code contributions coming from Oracle. The specific reason for moving to Apache is to expand the diversity of contributors and to increase the level of meritocracy in NetBeans. Apache NetBeans will be actively seeking new contributors and will welcome them warmly and provide a friendly and productive environment for purposes of providing a development environment, tooling environment, and application framework.

Community: NetBeans has approximately 1.5 million active users around the world, in extremely diverse structures and organizations. NetBeans is used by teachers and instructors at schools and universities to teach Java and other languages. It is used by students as an educational tool. It is used by large organizations who base their software on the application framework beneath NetBeans. It is used by web developers for creating web sites and by developers using a range of tools, languages, and technologies to be productive and efficient software developers.

Core Developers: The core developers will come from a range of organizations, including Oracle, which will continue its investment in NetBeans.

Alignment: The application framework is the basis of a range of mission critical scientific software at large organizations in defense, aerospace, logistics, and research, such as at Boeing, Airbus Defense and Space, NASA, and NATO.

Known Risks

Orphaned Products: The community proposing NetBeans for incubation is strong and vibrant. The size and diversity of the community is a guarantee against the project being orphaned.

Inexperience with Open Source: NetBeans has been free and open source since the early days of its sponsorship by Sun Microsystems. Though some in the NetBeans community may have worked on Apache projects, the majority who haven't are well versed in the principles of open source.

Homogenous Developers: Individual contributors from Oracle and other initial committer organizations will contribute code to NetBeans in Apache, while at the same time individuals from other organizations will actively be sought to be added to the project. The aim of the move to Apache is precisely to open up the governance model, hence the desire to build up an extremely heterogeneous developer base is strong. For example, several organizations are very heavily invested in the NetBeans application framework, having based their software suites on top of it, hence there will be a significant interest to make available individual contributors from these organizations, which tend to be large and well established in the software industry. Also, including and beyond these organizations, the NetBeans community around the world is extremely diverse and heterogenous in relation to geography and backgrounds of developers.

Reliance on Salaried Developers: Most of the contributors are anticipated to be paid to work on projects in the Java ecosystem. Others will come from organizations where they are paid to work with other languages and technologies, such as JavaScript, PHP, and C/C++. However, since Java skills are needed to develop most parts of NetBeans, it is unlikely that the developers will go very far outside the Java ecosystem.

Relationships with Other Apache Products: Many Apache projects have been supported by tooling in NetBeans over the years, such as Apache Ant and Apache Maven. A number of Apache projects are used by NetBeans, such as Apache Commons and friends.

An Excessive Fascination with the Apache Brand: NetBeans has a strong brand of its own. Though the stability of the Apache ecosystem is attractive, the reason for this proposal is simply to be part of the neutral development sharing ecosystem that Apache makes available.

Documentation

See https://netbeans.org/kb/index.html for an extensive portal to all the documentation.

Initial Source

The initial source is in Mercurial at hg.netbeans.org and will be moved, with assistance from Apache infra team, to Apache Git.

Source and IP Submission Plan

NetBeans is dual licensed, CDDL + GPL v2 with Classpath Exception. Upon entering Apache, the NetBeans license will be migrated to the current Apache License.

Trademarks

Oracle owns trademark registrations for the NetBeans mark in the U.S. and EU, and would donate those, including the name "NetBeans" and the "netbeans.org" domain, to the Apache Foundation, along with other artifacts, including the U.S. copyright registrations related to NetBeans. The trademark and copyright transfers would be detailed in separate documents.

External Dependencies

NetBeans is a large project with multiple dependencies and some changes may be needed during incubation to comply with Apache requirements.

https://netbeans.org/downloads/licence/8.1/nb81-THIRDPARTYLICENSE.txt

Identifying which dependencies are core and non-core will be needed as part of the process in meeting Apache requirements about third-party dependencies. (L)GPL (and possibly other) based dependencies and usages will need to be reviewed, and solved, as Apache does not allow (L)GPL dependencies, although these concerns can be resolved during incubation, and are not upfront blockers.

Required Resources

Mailing Lists: dev, user, committs, and private @netbeans.apache.org

Wiki

Website

Source Control: Git

Issue Tracking

Release Infrastructure - Hudson/Jenkins, etc



Specific Infrastructure Requests

SIR01 Migration of large existing Mercurial repository to Apache Git

SIR02 Migration of internal Oracle release infrastructure to Apache infrastructure

SIR04 Migration of website and related content management system to Apache infrastructure

SIR05 Evaluation and identification of other NetBeans infrastructure to be migrated to Apache infastructures



SIR03 was initially mentioned as the migration of plugins.netbeans.org to Apache infrastructure but after discussing the proposal we have decided to remove that goal for now. The plugins service will eventually have to migrate, but that can happen separately from the project incubation process.

Initial Committers

Below is the initial list of individual contributors, while more individual contributors will be added during incubation.

ASF members with a specific interest in the project are welcome to request being added to this list of initial committers.

After the project has been accepted and started in the incubator, additional committers can join, as usual, based upon their merit in the project.

Bold means that there has already been code contributed to NetBeans, while those without bold means that the contributor has an intention to contribute to Apache NetBeans while not having done so before. That does not mean that those in bold are better or worse, just that they'll be able to get started more quickly in Apache NetBeans since they've worked with the NetBeans source code before.

Note: Some of the individual contributors listed below belong in multiple different categories, e.g., NetBeans Dream Team members are often NetBeans plugin developers too, etc, while some of those in the NetBeans Platform customers category are also NetBeans Dream Team members, etc.

Individual contributors from the NetBeans team at Oracle. Dusan Balek Jaroslav Havlin Jiri Kovalsky Jiri Prox Jiri Sedlacek Jiri Skrivanek Libor Fischmeister Martin Balin Martin Entlicher Miloslav Metelka Milutin Kristofic Ondrej Vrabec Petr Gebauer Petr Hejl Petr Pisl Svatopluk Dedic Tomas Hurka Tomas Mysik Tomas Stupka Tomas Zezula



Individual contributors from the Oracle Developer Studio team at Oracle. Alexander Simon Danila Sergeyev Dmitry Zharkov Don Kretsch Ilia Gromov Liang Chen Maria Dalmatova Petr Kudriavtsev Vladimir Kvashin Vladimir Voskresensky



Individual contributors from the Oracle JET team at Oracle. Geertjan Wielenga John Brock



Individual contributors from the Oracle Labs team at Oracle. Jaroslav Tulach Thomas Wuerthinger



Individual contributors from the Java Platform Group at Oracle. Jan Lahoda



Individual contributors from NetBeans Platform customers. Sven Reimers (Airbus Defence and Space) Martin Klaehn (Airbus Defence and Space) Florian Vogler (Airbus Defence and Space) Jörg Michelberger (Airbus Defence and Space) Norman Fomferra (European Space Agency) Marco Peters (European Space Agency) Tonio Fincke (European Space Agency) Mike Kelly (US DOD) Timon Veenstra (Corizon BV) Kendrik Veenstra (Corizon BV) Francesco Perez Duran (Corizon BV) Christian Stolz (Janitza) Ernest Lotter (Institute of Mine Seismology) Neil C. Smith (Praxis LIVE) Valentin Buergel (Simtec Buergel AG) Stephen Cumminger (Sonideft) Steven Yi (blue) Henry Arousell (Björn Lundén Information AB) Thomas Boqvist (Björn Lundén Information AB) Zoran Sevarac (University of Belgrade)



Individual contributors from ex-Sun and ex-Oracle employees. James Gosling (Liquid Robotics) Mike Duigou (Liquid Robotics) Jesse Glick Milos Kleint (Atlassian) Radim Kubacki (currently NBAndroid.org) Ralph Benjamin Ruijs (ex refactoring guru from NetBeans team, now at Rockstars IT) Tim Boudreau (ex window system guru from NetBeans team) Viktor Lapitsky (dev/deployment/debug)



Individual contributors from NetBeans Dream Team. Aljoscha Rittner (ETable/Outline component features) Andreas Stefik (accessibility features) Anton Epple (DukeScript plugin from Dukehoff) Aristides Villareal (documentation, testing) Benno Markiewicz (various independent plugins) Bruno Souza (SouJava) Christian Lenz (website redesigner and more) Constantin Drabo (testing, quality control) David Heffelfinger (documentation in Java EE area) Emilian Bold (various plugins from Joseki Bold SRL) Hermien Pellissier (documentation, testing) Ivar Grimstad (JPA Modeler and MVC tooling) Josh Juneau (documentation, testing, MVC tooling) Kirk Pepperdine (jClarity) Johan Vos (Gluon plugin from Gluon) Jose Pereda (Gluon plugin from Gluon) John Kostaras (documentation, testing) Liang Ding (Chinese translator) Mark Stephens (JavaFX PDF viewer plugin from IDR Solutions) Martijn Verburg (jClarity) Michael Nascimento Santos (Improving CEO, working on refactoring tools) Michael Mueller Michel Graciano (tests, documentation) Tushar Joshi (various plugins, documentation, testing) Wade Chandler (Independent, working on Groovy support) Zoran Sevarac (plugins for teaching/education)



Individual contributors from NetBeans plugin developers. Georgia Ingham (JavaFX PDF viewer plugin from IDR Solutions) Emmanuel Hugonnet (WildFly plugin from Red Hat) Shai Almog (Codename One plugin from Codename One) Steve Hannah (Codename One plugin from Codename One) Attila Kelemen (independent Gradle plugin) Denis Anisimov (Vaadin plugin from Vaadin) Gaurav Gupta (independent JPA Modeler plugin) Junichi Yamamoto (PHP-related plugins) Bruno Flavio (Groovy/Grails-related code) Leonardo Loch Zanivan (!JSHint) Mattias Blaesing (various plugins)



Miscellaneous Anuradha Gunasekara (Maven tools) Steve Millidge (Payara Services) Andrew Pielage (Payara Services) Gui Chulin (translation) Yi Zhao (translation) Liyuan Li (translation) CunHui Lin (translation) Lei Cao (translation)





Champion

Bertrand Delacretaz



Mentors

Bertrand Delacretaz

Emmanuel Lécharny

Ate Douma

Mark Struberg

Jim Jagielski

Daniel Gruno

