SwingLabs Release Philosophy

With coming of the new year, we're turning over a new leaf and following the open source mantra, "Release early, release often".

SwingLabs is comprised of many different projects, lead by different teams and according to different philosophies. Some of the projects are JSRs. Some are pure research projects. Some are headed by individuals not working for Sun. Each of these projects have great, interesting code. But picking and choosing components spread across a variety of projects is time consuming and, quite frankly, not very user friendly.

The SwingLabs Developer Pack does this for you. We cull through the various projects looking for stable code. The SwingLabs Developer Pack is more than just a download of the latest stable code. Rather, the components and frameworks included in it are intended to form a comprehensive addon to the JDK.

That is, the Developer Pack is not just an accumulation of components. It represents a philosophy. Certain components are chosen or not chosen based not only on usefulness, but on whether they help form a cohesive story.

In this way, SwingLabs projects are free to innovate. The are free to be research-only projects, or release-oriented projects. They can each maintain their own release cycle and release criteria.

In addition to pulling code from SwingLabs projects, the SwingLabs Developer Pack may include 3rd party components and libraries. For example, we plan on including some runtime dependencies on the excellent JFreeChart library for creating charts in a future release. Again, the vision is to create an addon pack to the JDK that forms a complete, comprehensive, suite of libraries.

As mentioned, there will be a release of the Developer Pack per JDK, starting with Java 1.5. The numbering system of the Developer Pack reflects the JDK it is intended for. For example, this first Developer Pack is numbered swinglabs-1.5_m1. The 1.5 indicates that this Developer Pack is intended for use with Java 1.5.

The SwingLabs Developer Pack is not intended to be "the last word". We'd like to see multiple developer packs produced by different individuals. The SwingLabs developer pack is aimed at enhancing the JDK, but others may wish to include other code in the developer pack, or may want a trimmed down developer pack. Much like Linux distros, we'd love to see many developer packs. If you build one, let us know and we'll link to it.

Finally, the Developer Pack is all about stability. The Developer Pack is meant to be useful for writing real applications.

One point that should be made clear is that Developer Packs likely will be slightly incompatible from major release to major release. The 1.6 version of the pack (that is, the version associated with Java 6) is not required to be backwards compatible with version 1.5 (that is, the version associated with Java 1.5) of the pack. This is simply due to the nature of the Pack. It is an addon to the JDK. Hence, as the JDK evolves, it may be necessary to adapt the Pack to match with the new JDK in as natural a manner as possible.

Summary

In summary, the overall goal of the SwingLabs Developer Pack is that:

  • The Developer Pack can start out small, and grow over time
  • It helps make SwingLabs scalable. That is, we can support many more subprojects than we currently do.
  • Build management will be a lot easier since it doesn't all depend on two guys (Richard and Fred)!
  • Greater community leadership and cooperation!

The Swing Developer Pack is a stable set of libraries for writing real-world apps based on the Java SE platform.