Rich Green’s statement at JavaOne ‘06 that, “at this point, it is not a question of whether, but it is a question of how,” was—truth be told—a bit of a surprise. Many of us here on the Java team at Sun had seen this coming for a few years, but few expected it this year.
That spark set off a firestorm of frenzied activity over the following months, culminating in our launch earlier this week. So many things had to be done that it was—and still is—hard to keep track. Here are just a few of them:
Figure out what infrastructure to use (we wound up on CollabNet, for now);
Comb through the compiler and HotSpot sources looking for encumbered code (it turned out that there was a little bit, but it was pretty easy to remove);
Decide which release to ship at launch (JDK 7, since we had to make some changes for buildability that were too risky for the nearly-finished JDK 6);
Make sure that our licenses would allow developers to drop a HotSpot build into a full JDK 6 or JDK 7 snapshot build for testing purposes (some minor revisions were required, but they were straightforward);
Determine exactly what text to use in the per-file license headers and in the LICENSE file itself (and get the legal team to approve it);
Run an internal pilot program to make sure that the code bundles we released earlier this week were actually buildable by developers who aren’t members of the JDK team (no big problems were identified, just a few little ones);
Work with the NetBeans team to get the right project metadata into the compiler bundle so that it’s dead simple for a developer to unzip the bundle, create a NetBeans project, and start hacking (this was actually pretty easy);
Revise our internal release-engineering processes to check license headers, generate source bundles, upload them to the OpenJDK project on java.net, and update the read-only Subversion repository (in a completely automated fashion since on principle human intervention should never be required in such processes);
Bundle up the jtreg test harness for external use (and get the legal team to approve us shipping it in binary form, for now); and, not least,
Formulate an interim contribution process, learning from our earlier experience with the JRL-licensed JDK 6 project, that will allow non-Sun developers to contribute changes into the compiler and HotSpot projects between now and the time that we settle on a full open governance model (and get the existing JDK team to buy into it).
The above list only touches on the major tasks of Sun’s OpenJDK operations team; there are other teams for communications (= marketing), adoption, business issues, licensing & branding, compatibility, and quality. You’ll be hearing more from various members of these teams as time goes on.
Naturally—for Sun, anyway—much of this work kept going right up to the last minute, with lots of checks and double-checks to make sure that everything was right. Last weekend was particularly intense; one of the scariest moments is captured in this IRC message that I sent less than 48 hours prior to the launch:
About 20 mins ago I noticed that we have the wrong license headers on the javac source files. Oops. Vijay is on it.
It’s been a wild ride. There’s still a lot left to be done, but many of us are looking forward to an extended break during the U.S. Thanksgiving holiday next week. Don’t be surprised if you don’t see a lot of Sun activity for a while.
Posse plug Like many other Sun folks I participated in lots (and lots) of analyst and press briefings in the week prior to the launch. By far the most fun of all of them was the Java Posse interview that I did with Rich Sands and Eric Chu. Check it out!