I’ve been working on getting my procedural texture library completed and released to the public which should be ready next week. I’m currently going through the difficulties that always go with getting that last bit of polish on a project to get it ready for public consumption. In particular, I’ve just switched over to maven as a build process and moved it into Project Kenai.
Even though it doesn’t have any dependencies, Maven does help shape project structure and lets me deploy it in a structure that includes the source and lets users easily build the jar or the documentation. I’ve also had to deal with getting it into a subversion repository on Project Kenai. Originally I had it at Sourceforge (without source storage) but I decided to move it to Kenai.
Granted, source control and build management should have been done early on but this is a small project where I already make regular informal backups and the IDE handles building the single jar so I didn’t bother. Also, I wasn’t planning on making it open source originally but since I did, I wanted to get everything tidied away.
On top of that, I’ve had to produce documentation, more so than if I was just using the library myself, and produce wiki pages, provide uploads, test the downloads to make sure they work, check that the download will work when installed to a maven repository, and provide instruction on how to use it from a maven repository etc. It’s a lot of work all for the sake of sharing a project with the world. I wouldn’t have to do most of that if I were keeping it to myself!
However, it has taught me two things. One is to appreciate all the extra work that goes into managing an open source project above and beyond just putting a jar file on a web page for download. The other is a reminder to always start out with good practices (build processes and source control) from scratch if you even think the project might go public. This is a no-brainer if you know the project will be open source in advance, but probably should be followed just in case you decide to open source it later on.