How To Contribute
Easy Things Anybody Can Do
First, thanks for wanting to contribute to SwingLabs! There is a lot to do for people of any skill level. We're always looking for help with graphics (images, icons, screenshots), documentation, tutorials, articles, web pages, FAQ entries, and of course code contributions.
There are a handful of really easy things that anybody could do, and then some more difficult or time consuming tasks for rock star contributors. First, the easy stuff.
Update The Swinglabs.org Website
The entire web application project for SwingLabs.org (including the JSPs, images, HTML files, text files, source code, etc) is located in the swinglabs.dev.java.net project's CVS repository.
In the root directory of swinglabs.dev.java.net's CVS repository are two different web directories: www and website. The www directory is the standard java.net www directory that makes up the "normal" java.net web page (what you see when you go to http://swinglabs.dev.java.net).
The other directory is the one we are interested in. It creates the WAR file distribution for http://swinglabs.org. While anybody can compile and build the website, access to the physical machine on which deployments are done is restricted (currently Richard Bair has access).
A description of the layout of the web application can be found on the wiki.
Write Tutorials, Articles, and Demos
SwingLabs.org contains code for taking a specially formatted XML file and creating a tutorial. The JXTable tutorial is one such example. This tutorial is generated based on this xml file. If you write a tutorial, tells us about it on the forums, or file a bug in the swinglabs.dev.java.net issue tracker.
Articles are another avenue for writing about content for SwingLabs. We'll link to articles from the docs page. Articles written for Java.net may include a bounty. Contact the Java.net admins for more information.
Demos come in many flavors. You can write demos and host them on your own systems. You can also write unsigned demos (those that run within the sandbox) for inclusion on the demos page. These can either be applets or web start apps.
Contributing demos is much like contributing anything in SwingLabs. After developing your idea, share it with the rest of us either by filing an issue, or by sharing it with us on the forums.
In particular, we're looking for two types of demos for each of the components in SwingX. We need "control panel" style demos, with controls for changing the various properties of the SwingX component and showing the resulting component. We also need "code-clip" style demos. Simple demos with simple code samples that show common situations for the component.
Screenshots and Code-Clips
Here's a super easy one that we need a TON of: screenshots! Are you using SwingLabs components in your application? Submit a short blurb and screenshot(s) of your app. We also need nice screenshots of the components themselves.
Along with screenshots, we'd like to host a webpage of code-clips. These are small snippets of code that perform a common task. For example, here is a code-clip for authenticating against a database:
String driver = "org.postgresql.Driver";
String jdbcURL = "jdbc:postgresql://localhost/adventure";
JDBCLoginService service = new JDBCLoginService(driver, jdbcURL);
String userName = "postgres";
char[] password = new char[] {'p','a','s','s'};
//the Server param is not currently used by JDBCLoginService
//so we pass in null
if (service.authenticate(userName, password, null)) {
java.sql.Connection conn = service.getConnection();
//you are now authenticated and have a valid JDBC connection
} else {
//authentication failed
}
File RFEs, Bugs
As with any software project, there is always the need for RFEs (Request For Enhancement) and bugs to be filed. SwingLabs relies on the infrastructure of java.net for filing issues, which is good news for those familiar with java.net. See this documentation on how to write good bug reports.
Get More Involved
If you want to get more involved in SwingLabs or one of the SwingLabs sub projects, there is a lot for you to do! First, SwingLabs projects require the use of the SCA (Sun Contributor Agreement) for any code contributions greater than 20 lines in length. This agreement gives Sun joint copyright on the code (so we can do things like change the license and indemnify customers). In addition, by signing this agreement you certify that the code you submit to the project is code you own the copyright to and code you have the right to submit.
You can find out more about signing the SCA here
Provide Patches
Participate in Reviews
The review process is the process by which we complete a component and make it stable. The intent is to provide a stable set of components. Also, to make future additions to the codebase significantly easier to accept from outside parties by making the process as transparent and clear as possible. That is, to provide a more straightforward path for outside contributors who want to get their code committed to the main swingx tree. Finally, to provide a stable set of components to users, with clear expectations for which code is stable and which code is still in development.
You can read up more on the process, see which components are under review, view review notes, and see what additional components are on the docket by visiting the API review wiki page .