New page: In autumn 2016 Oracle decided to donate NetBeans to Apache foundation. The process isn't smooth, but there is progress. This page tries to capture that and highlight the import...
New page
In autumn 2016 [[Oracle]] decided to donate [[NetBeans]] to [[Apache]] foundation. The process isn't smooth, but there is progress. This page tries to capture that and highlight the important news.
== [[Apache]] [[netbeans:Html4Java|HTML/Java API]] 1.5 has been released! ==
It is Oct 23, 2017 and the first project from the [[NetBeans]] [[Apache]] incubator has managed to create a '''release'''. The [[netbeans:Html4Java|HTML/Java API]] version '''1.5''' has passed through all the [[Apache]] tests and is now available as a source download: see the [https://dist.apache.org/repos/dist/dev/incubator/netbeans/ netbeans svn repository].
In addition to that [[I]] have uploaded the binaries to [[Maven]] central repository: [http://search.maven.org/#artifactdetails%7Corg.netbeans.html%7Cpom%7C1.5%7Cpom pom parent project]. As you can see the bits have [[Apache]] license now.
Time to give the release a try. Time to update to '''1.5''' release! Time to contribute. Just fork the [https://github.com/apache/incubator-netbeans-html4j#readme GitHub repository].
=== Relicensing ===
The first step after donating to [[Apache]] was to change licenses in all files and verify that all libraries are compatible with [[Apache]] license. Everything went fine, just once library ''org.json'' [[JSON]] parser was found inappropriate. Funny why: its is a ''MIT'' licensed piece of software, just with one additional note: ''the software shall be used for good and not evil!''. Based on that [[Apache]] (as well as [[Debian]], as well as [[Android]] - e.g. [[Google]]) concluded that the software is associated with ''field of use restriction'' and as such it can't be replaced. I have bug [https://issues.apache.org/jira/browse/NETBEANS-89 NETBEANS-89] to deal with it in future versions.
=== Automate what you can! ===
The process of releasing the source code (yes, source code, as [[Apache]] releases are always about source code! Didn't you know? [[I]] didn't!) wasn't easy. That was sort of expected. First release under a new organization is never easy. The organization has new rules, workflows, terminology and fulfilling all of that takes time.
Moreover [[I]] decided to do everything correctly - e.g. don't take any shortcuts, but rather set infrastructure up to simplify future releases. For example, we have a [https://builds.apache.org/job/incubator-netbeans-html4j-release/ jenkins job] to create the ''.zip'' file as well as associated ''.md5'' and ''.sha1'' files. The job is set up to produce so called ''parametrized builds'' - once anybody feels it is time to release - one can pass in the new release version number and start the build.
While running the build, it gets the name '''release-X.Y''' based on the specified version parameter. As you can see, there were a few attempts that didn't make it ([https://builds.apache.org/job/incubator-netbeans-html4j-release/16/ rc1-1.5] and [https://builds.apache.org/job/incubator-netbeans-html4j-release/17/ rc2-1.5]) and also few complete failures (completely deleted builds) before build [https://builds.apache.org/job/incubator-netbeans-html4j-release/19/ #19] succeeded.
=== Signing ===
The final build has to be accompanied with a '''.asc''' signing file. The key used to generate the signing file has to come from [https://people.apache.org/keys/group/netbeans.asc list of keys approved for the Apache NetBeans] project. That took a while as well, but at the end I made it and the release got approved.