Is anyone else doing this? <ul><li>There are over 400,000 registered projects on SourceForge and Google Code and unknown thousands elsewhere on the web
If you can, then try and work with an existing project that does nearly what you want rather than start a new one, </li><ul><li>But... If it's not in the "right" language for you
or if it's not licensed "appropriately"
or even if you just can't get through to someone involved in that project then you could consider forking the existing project, or start a new, yet similar, project. </li></ul></ul>
Pick your License. <ul><li>The main ones are: AGPL, GPL, LGPL, BSD </li><ul><li>AGPL requires every used change to be re-released as AGPL. This may or may not include themes, depending on who you speak to.
GPL requires every sold or supplied change to be re-released as GPL, and that anything which uses it at compile time is also GPL licensed.
LGPL requires every sold or supplied change to be re-released as LGPL. Compile-time linked files do not need to be LGPL licensed.
BSD requires attribution any time the code is made available. </li></ul><li>For a more complete list, see http://www.opensource.org/licenses </li></ul>
Pick your hosting <ul><li>Will you be self-hosting or using a hosted service?
Self hosting is better for larger projects, or for non-public development.
Hosted services makes it easier at the beginning of a project to just concentrate on the coding. </li><ul><li>BUT many hosted services have an overwhelming array of options.
Your choice of hosting and the software driving that will define your Version Control Software. </li></ul><li>This will be the main area I'm focusing on in this talk! </li></ul>
Host Externally or Locally? <ul><li>Going the hosted route?
Your main choices are: Sourceforge, Launchpad, Google Code, Github, Gitorious
For more options, see http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities
Sourceforge <ul><li>Sourceforge is considered to be the original “forge” resource for Open Source developers
For various reasons, many developers and projects mistrust Sourceforge. </li><ul><li>There are concerns that it's source code was Closed, then Free Software, then Closed again. </li></ul><li>It provides mailing lists, ticket trackers, forums, and a wide range of other support tools.
It hosts CVS, SVN, Bazaar, Git and Hg services
Some say there are too many options! </li></ul>
Trac <ul><li>Trac is not available as a hosted solution.
It's based on the Python language, and originally was designed to provide a friendly front-end to Subversion.
Over the years, it now supports many of the common version control systems.
It has very many plugins which allow it to be extended very easily.
For many years, this was my only method of hosting code I wrote and released! </li></ul>
Horde Chora + Whups + Wicked <ul><li>Horde is more well known as a webmail or groupware suite.
To support the Horde development process, the Horde developers wrote a series of Horde modules for project management </li><ul><li>Chora provides access to CVS, Subversion and Git version control systems
Wicked is the Wiki system. </li></ul><li>Horde is a PHP framework, but these modules don't currently integrate well together. </li></ul>
Savane <ul><li>Savane was originally called “Savannah” and was the code which drove Sourceforge, before it became Closed Source.
Savane is now a GNU project and drives the GNU Savannah web service.
It is very similar to the Sourceforge website.
It offers access to CVS, Subversion and Arch version control systems.
Again, I have never used this service. </li></ul>
Version Control Software <ul><li>I just wanted to briefly touch on Version Control Software.
If you are developing anything collaboratively, then you should use some form of Version Control Software – whether it's centrally stored, such as CVS, Visual Source Safe or Subversion, or if it's distributed, like Bazaar, Git, Mercurial (Hg) or svk.
Even if you're developing something in isolation, Version Control Software can help you recover from disasters in your code and help you to document thought processes. </li></ul>
Centrally Managed VCS <ul><li>Visual Source Safe is the tool built for Visual Studio. It's very hated. With many good reasons.
CVS is the successor to the single-system RCS. Both of these have been phased out by MOST projects. It's very easy to get in a tangle with CVS.
SVN is what most people use for centrally managed Version Control. Most of the Distributed Version Control systems will integrate with SVN because of it's popularity. </li></ul>
Distributed Version Control <ul><li>A distributed Version Control system will allow many developers to work off-line from each other or the central store.
By developing against a locally held version of the repository, small incremental changes can be rapidly committed, reversed and patched before finally making those changes available to all the other developers.
Most developers still work on-line, even though they are able to work off-line and will store their finished changes on a central server.
I find it more logical to work with a distributed VCS now than a central VCS.
My last two projects were totally managed using a distributed VCS. </li></ul>
Configuration? <ul><li>I had also planned to provide some configuration guidelines for your projects... but this got FAR too big for that! </li><ul><li>However, whatever you're using, turn off the modules or sections you aren't yet using! It's too confusing, for you, your developers and users! You can always turn them on again later!
Whatever is left after that, make sure all the configuration makes sense to you! There's nothing worse than trying to submit a ticket about a web application, and trying to decide whether the issue is due to it being a Linux, Windows or Mac box! Likewise, if you're not using version numbers, don't ask your users to include the release version they're using!
Make any data about your project as open as possible – use mailing lists for code commits, new tickets and wiki changes.
If you can cope with the workload – blog, tweet or dent about it at every RELEVANT opportunity! Software houses do, why shouldn't you? </li></ul></ul>
Any Questions? <ul><li>Obviously this talk was pretty high level, and I've not used everything I've shown you, but I hope I've given you something to use the next time you're creating a new text editor, a new microblogging service, or simply have developed an improved way of putting pictures of your cat online.
Please feel free to ask any questions now, elsewhere today, or on email, Google Talk (XMPP) or MSN to email@example.com </li></ul>