Apache NetBeans (Incubating)
Initial Language Server Protocol Support in Apache NetBeans 10
Did you know that the first stage of Language Server Protocol (LSP) support will be included in Apache NetBeans 10?
See this PR for details, with instructions for how to use it.
Some screenshots for Kotlin support via LSP:
A lot more work needs to be done, of course, some of which is here, you're welcome to join in:
Audio of Virtual Apache NetBeans Meeting 3
The third of a series of informal virtual meetups took place today, focused specifically on why/how/when to move netbeans.org to Apache.
The audio of the meeting is available here and takes about 53 minutes:
Screenshot of what we saw of each other, partly:
Posted at 09:50PM Sep 06, 2018 by Geertjan in General | |
Apache NetBeans Guest Blog: Edward M. Kagan
I'm a big fan of NetBeans, and a team-lead of 2pm.tech crew, a group of independent developers from Russia. For about the last five years, we have been using NetBeans in all of our projects, from "hardcore C embedded systems" to "Grails web-apps", and as a result we've also been hacking NetBeans a little.
As of 2018, there are now 11 developers in the team. Currently, half of us work with Grails apps, despite the poor Grails support in NetBeans at the moment. We're continuing to work with NetBeans due to it simplicity, small footprint, and design. If the NetBeans community would dig up the Groovy/Grails support, lots of developers will switch to NetBeans I think, and also I'll be very happy, too. :-)
One of coolest things we've created lately is the Crew Look & Feel plugin, which we hadn't released to the public yet and now we think the time has come. It's not too complicated, but a nice little add-in to have, maybe it'll be useful for other users too. Here it is on the Plugin Portal:
Click to enlarge the images below, to get a feel for the new plugin that provides our look and feel:
NetBeans is my favorite IDE and Apache is one of my technological icons. So, I'm very happy for NetBeans to be migrating to Apache. Apache does not always give you a sweet design, though it does always provide nice UNIX-like tools, and I love it. I hope Apache will make NetBeans not only better, but the best IDE for all Java-based technologies. :-)
Posted at 11:29AM Sep 05, 2018 by Geertjan in General | |
Audio of Virtual Apache NetBeans Meeting 2
The second of a series of informal virtual meetups took place today.
The audio of the meeting is available here and takes about 45 minutes:
Sign up to the next virtual meetups here:
Posted at 11:43AM Aug 21, 2018 by Geertjan in General | |
NetBeans Status at InfoQ
Today an article was published on InfoQ describing the current state and progress of Apache NetBeans.
Click to read the start of it here:
Go here to read it all:
Posted at 12:00AM Aug 16, 2018 by Geertjan in General | |
[ANNOUNCE] Apache NetBeans (incubating) 9.0 Released
The Apache NetBeans team is proud to announce the release of Apache NetBeans (incubating) 9.0.
Apache NetBeans (incubating) 9.0 constitutes all the modules in the Apache NetBeans Git repo, which together provide the NetBeans Platform (i.e., the underlying application framework), as well as all the modules that provide the Java SE-related features of Apache NetBeans. In short, Apache NetBeans (incubating) 9.0 is a full IDE for Java SE development.
Read more on our download page:
New & Noteworthy features of the 9.0 Release:
Work is being done on bringing netbeans.org to Apache. In the meantime, refer to the below for all details related to Apache NetBeans:
Disclaimer: Apache NetBeans is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
What's "nb-javac" in Apache NetBeans?
Not long after you start up Apache NetBeans (incubating) 9.0 on top of JDK 8, after accepting the license agreement and handling import settings, you're confronted with this dialog:
What does that mean? And why, when you start up Apache NetBeans (incubating) 9.0 on top of JDK 9 or above, do you see the following, instead:
Note: The above appears in a balloon popup in the bottom right the first time you start up Apache NetBeans (incubating) 9.0 on JDK 9 or above. If you miss out on seeing or responding to the message, go to Window | IDE Tools | Notifications anytime afterwards and you'll have another opportunity to install it:
Let's start by looking at the question, what is "nb-javac"? Well, "nb-javac", which is a patched version of "javac", i.e., the Java compiler, has long been part of NetBeans, providing a highly tuned Java compiler specifically for the Java editor in NetBeans, and wasn't part of the donation of NetBeans to Apache since, of course, the Java compiler (or a fork thereof) cannot be part of the donation. That's because Oracle is not donating Java to Apache, instead, it is donating NetBeans. The Java compiler belongs to the JDK which is licensed to Oracle.
Separate from Oracle's obvious understandable unwillingness to donate a Java compiler fork to Apache, or anyone else, Apache would have a problem with a fork of the Java compiler being distributed from Apache since the Java compiler is LGPL licensed.
In short, neither Oracle nor Apache want the Java compiler to be part of NetBeans in Apache. Yet, NetBeans gains a lot from the patched Java compiler, as explained below:
Also see this reference for details on the situation:
However, using model APIs added in JDK 9, Apache NetBeans can make use of the Java compiler directly from the JDK, as explained here:
So, as can be seen, from Apache NetBeans running on JDK 9 and onwards, you have a choice: either use the Java compiler from the JDK, which means you're not benefiting from a number of enhancements especially added for NetBeans over many years in the patched Java compiler, or you need to explicitly add the patched Java compiler, since it is provided by Oracle and its licensing is such that you need to take responsibility for installing it yourself. On the other hand, if you're using Apache NetBeans with JDK 8, the choice is simpler, i.e., you need to install nb-javac, otherwise you will not be able to use Java in Apache NetBeans.
It's not an ideal situation. On the other hand, if someone has a better solution, please feel free to propose that solution and also consider providing a pull request too!
What's Happened to My Favorite NetBeans Plugins?
What's the reason for that and what can be done?
Well, Apache NetBeans (incubating) 9.0 is specifically focused on Java SE only. Why? Because NetBeans is extremely large (it will be by far the largest project in Apache, once everything has been donated), which is because it has existed for over 20 years and provides support for a very wide range of technologies. Since so many files all needed to be audited before they could be donated to Apache, the decision was made to donate NetBeans in pieces, i.e., not everything at the same time because that would have taken much too long.
And since NetBeans is modular, doing an incremental donation was not difficult to architect. The first donation focused specifically on the underlying core, i.e., the NetBeans Platform (e.g., the module system, window system, menubar, etc etc) and, to enable the result of the first donation to be usable for general users and not just NetBeans Platform developers, the various Java SE features were included too, e.g., Java project templates, Java editor, and new Java features such as support for Jigsaw, JLink, and JShell.
So, does that mean that all the features that are not integrated into Apache NetBeans (incubating) 9.0 cannot be used? No, it does not. Go to Tools | Plugins in Apache NetBeans (incubating) 9.0 and, in the Settings tab, register the NetBeans IDE 8.2 update center:
Though note that none of these features have been tested with Apache NetBeans (incubating) 9.0, they should work, in most cases. If not, don't panic. Just sign up to the Apache NetBeans mailing lists, as explained at netbeans.apache.org, and start a new thread where you'll highlight some problem you've encountered, after which someone will help you or you'll be advised to create a new issue in Apache NetBeans Issuezilla.
Where is all this documented, how can anyone know what will be donated in which order, etc? Easy, go here, to the end of this page:
Tentative Schedule for Apache NetBeans (incubating) 9.0 Release
We're currently running two processes, both of which it would be great if everyone would participate in -- and in fact it's really important that everyone does these two things:
- Vote in the PPMC thread:
Doing the above means more than putting a +1, it means downloading the sources, building them, looking at keys, etc, as described above.
- Fill out the Community Acceptance survey, which is focused on the functionality (versus the sources, which is what the PPMC thread is about), which takes about 5 minutes:
The Community Acceptance Survey runs until Sunday the 22nd of July. Issues found in the meantime will hopefully not be critical and not require a new voting candidate, but we'll need to see how things go and nothing can be guaranteed here of course -- i.e., someone could find a blocker of some kind during the community acceptance survey process.
Hopefully, nothing going wrong and everything going well, we'll then be at a point to start the IPMC vote thread on the 23rd and, if everything goes well, release Apache NetBeans (incubating) 9.0 at the beginning of August.
After that we'll work on the 2nd donation, relicensing it, moving it into master etc.
1.5 M Lines Of Oracle Code Now in Apache NetBeans Git
Go here to see the new branch containing the 2nd donation: https://github.com/apache/incubator-netbeans/tree/2ndDonation
NetBeans Status at FossBack '18
The session outlining 10 tips for large corporate projects moving to Apache, with NetBeans as an illustrative example, presented at FossBack '18, is now available on YouTube:
Click above or, alternatively, go here: https://www.youtube.com/watch?v=Bnznard9Nls
The full report on the session and NetBeans attendance is here: https://blogs.apache.org/netbeans/entry/apache-netbeans-at-foss-backstage
Posted at 07:58PM Jun 22, 2018 by Geertjan in General | |
1.5M Lines of NetBeans Code from Oracle to Apache
We will continue to wrap up the final release of Apache NetBeans (incubating) 9.0, which will be focused on Java SE only. After that, or at least separate from that process, we will start relicensing the new code, i.e., from the 2nd donation, once it is in Apache NetBeans Git. Right now, it is a ZIP file, it needs to be moved to Apache NetBeans Git, and we need to do that in the right way, and figure out what the right way is.
This is a significant step forward in the transition of NetBeans from Oracle to Apache.
Apache NetBeans at FOSS Backstage 2018
Yesterday I attended FOSS Backstage in Berlin. FOSS Backstage is a "conference on everything governance, collaboration, legal & economics within the scope of FOSS". I went there to present my session, based on the Apache NetBeans experiences of the past two years or so, entitled 10 Tips for Moving Large Corporate Projects to Apache. I also went because I knew that several people from the Apache Software Foundation who have been instrumental in the transition of NetBeans to Apache would also be there and I thought it was time to put some faces to the many new names that we've been confronted with during the transition process!
The event began for me with a wonderful speakers dinner, where I met three of the absolute key Apache people involved in the Apache NetBeans project — Emmanuel Lecharny, Bertrand Delacretaz, and Mark Struberg. Here we are, literally about 5 minutes after meeting, discussing the current status of the transition process (click the image below to increase size):
Bertrand and Mark are two of the Apache NetBeans mentors, while Emmanuel was a mentor during the beginning phase of the transition. Both Bertrand and Emmanuel were involved really in the pre-start phase of the donation, with many thanks to Emmanuel Hugonnet who introduced us, after a very nice and long conversation some years ago in Athens!
During the event, I also met several others who I have seen on Apache mailing lists — Justin McLean, Shane Curcuru, and Jim Jagielski. Really amazing to meet all these names in person — and not to forget, I also met Mark Thomas, who is the Apache VP for Brand Management, i.e., who we need to work with for the brand/domain donation, and Malcolm Bain, a lawyer specialising in ICT law, based in Barcelona, with a special focus on Open Source Projects. I also spoke with Kevin A. McGrail, who is Apache VP Fundraising, who later sent me this very nice and welcome message: "Did I hear you correct and you wanted to talk about how I can help NetBeans with sponsorship?" Yes, you did, Kevin!
What really struck me is how positive everyone at Apache is about the Apache NetBeans project. Everyone mentioned how great and active the Apache NetBeans community is, i.e., active mailing lists, several discussion threads, voting in new PPMC members, and of course also doing releases already, with everyone positive and committed to the project. I realized, especially as I was doing my presentation, when I was talking about the history of NetBeans, that the reason why Apache NetBeans is going so well in many respects is because we've been working on our community from the very beginning. I.e., even while NetBeans was part of commercial entities (i.e., Sun and Oracle), we had an army of volunteers all over the world, organized in structures such as NetCAT (i.e., volunteer testers), and the NetBeans Dream Team (i.e., volunteer evangelists), while we've also been organizing NetBeans Days all over the world for several years, i.e., we've come to Apache with a ready-made community, whereas for the majority of other projects coming to Apache the reason that they're coming to Apache is because they don't yet have a community and are looking to Apache to provide the infrastructure for doing so.
Also, really crucially, we've spent years educating developers everywhere about the NetBeans APIs, the NetBeans source structure, etc. That's been massively impactful now that we're in Apache, since those who are most active right now are those that have been involved with NetBeans for around 20 years or so. In short, there are definitely advantages to being a large corporate project in terms of transitioning to Apache — just like NetBeans, you may take a long time to get all your code across (because the donating company needs to spend time auditing and cleaning the code etc), though on the other hand you'll potentially be bringing a massive amount of existing knowledge and a vibrant community along with you.
In short, it was great to be at FOSS Backstage and I am sure more and more Apache NetBeans community members will be submitting sessions to similar Apache events around the world and sharing their experiences, too.
[ANNOUNCE] Apache NetBeans (incubating) 9.0 RC1 released
The Apache NetBeans team is proud to announce the release of Apache NetBeans (incubating) 9.0 RC1.
Apache NetBeans (incubating) 9.0 RC1 constitutes all the modules in the 'release90' branch of the Apache NetBeans Git repo (https://github.com/apache/incubator-netbeans), which together provide the NetBeans Platform (i.e., the underlying application framework), which was released as Apache NetBeans 9.0 Alpha (incubating), as well as all the modules that provide the Java SE-related features of Apache NetBeans. In short, Apache NetBeans (incubating) 9.0 RC1 is a full IDE for Java SE development.
Get it and read more on our download page:
Details on Apache NetBeans (incubating) 9.0 RC1, including a list of open issues to be resolved prior to the final release:
What must be done for the final version of Apache NetBeans (incubating) 9.0 to be released?
1. The items in the link above need to be fixed, e.g, new splash screen needs to be integrated.
2. Cherry picking of pull requests merged into 'main' for 'release90' branch.
3. Put together rc2 release, sanity test it via NetCAT, and publish it.
4. Community Acceptance survey.
5. Start Apache voting for the final release, incorporating input from the Community Acceptance survey.
6. Release 9.0, which will be an IDE for Java SE development only, the other features have not been donated yet by Oracle and are being audited and processed and be part of subsequent releases of Apache NetBeans.
Take note of the Apache NetBeans release criteria:
Work is being done on bringing netbeans.org to Apache. We already have our Apache site set up, here:
On behalf of the Apache NetBeans PPMC