In the early stages of an open source software project, there is much to do in order to lay strong foundations for the project. Some of the most important decisions relate to how that project will be managed, including where to host the version control system, how to set up the mailing lists, and so on. A project hosting website can help you with many of these decisions by providing these and other basic features, as well as several more advanced features, that will help you to manage your project efficiently. Many hosting websites offer their services free of charge to software projects that are released under an open source licence.
SourceForge is one of the best-known hosting sites for free and open source software development projects. The number of registered users of SourceForge passed the 2 million mark in February 2009. In August 2010 there were more than 240,000 software projects hosted on SourceForge, making this hosting site one of the largest collection of open source tools and applications available online.
SourceForge offers the basic hosting services that any open source software project needs, such as mailing lists, a version control system and an issue tracker. It makes the process fairly easy by enabling some of its services by default. SourceForge also provides many other services, ranging from web analytics to code review and even a service for URL shortening - an enormous array that can be confusing to new users. This guide discusses some of the most commonly used services and is intended to help you to get started with creating a project on SourceForge.
Hosting services overview
Some of the hosting services SourceForge offers are provided by means of so-called hosted applications. These are widely used third-party open source applications which SourceForge offers to its users as a service via its website. For you as a user, there are a couple of benefits to using these hosted applications. Firstly, you will be able to use the full functionality of such an application without having to manage an installation of it yourself. This means that upgrades and security updates are arranged automatically. Also, you can use all of the applications via your SourceForge account, so you don’t have to worry about managing separate logins for every application. These advantages apply in particular when you are setting up a project for which its longer term future is uncertain. For example, when projects are being funded to run for only a year and existence beyond that period is unclear, using hosted services means that you are not dependent upon continued support from that organisations that participate in the initial project. This provides you with more options for the ongoing sustainability of the project beyond the initial funding.
Below is an overview of all the third-party applications that SourceForge offers, grouped according to their purpose. You can find more information on SourceForge itself.
|Bug tracking||MantisBT, Trac|
|Version control management||Subversion, Git, Bazaar, Mercurial|
|Web-based Code review||Codestriker|
All of these applications can be activated on the website via an opt-in procedure, making them fairly easy to use. SourceForge offers many more services besides these hosted applications.
In the next few sections we will focus on the most commonly used services, explaining how to get started on SourceForge by creating a project and setting up some basic services.
Creating the project
It is quite easy to create a new project on the SourceForge website. This is done by clicking on the menu item Create Project. When you click on it, you will be asked to log in. You therefore have to create an account with SourceForge first. Alternatively, you can use an OpenId account.
After login, if you have used the Create Project link, you will be redirected to a page where you are required to provide the basic details of your new project. This first screen is shown in the screenshot below.
The following fields have to be filled in:
The name of the project can be chosen freely.
Besides choosing a name, you will also need to choose a project identifier. This has to be unique within SourceForge and will be used to determine the URL of the project, i.e. what people will have to type after the URL http://sourceforge.net/projects/. We advise you to use the name of the project for the URL if possible. This will increase the visibility of your project, because search engines such as Google give higher ranking to pages that have the main topic of the webpage processed in the title.
Think of a simple, concise description that explains what your project does in one or two sentences. People that go to a website usually decide from the first two sentences whether they are interested in finding out more, so it is important that these sentences provide a clear and accurate description. You can then add a paragraph containing more details about the project.
To make sure that your project will be found by users who search for new software, it is useful to fill in all the categories that relate to the project. SourceForge uses the Trove system to categorise the software. These are the main categories that make up that system:
- License 1
- Intended Audience
- Development Status
- Programming Language
- Operating System
- User Interface
- Database Environment
Hosted features settings
After you have created your project, SourceForge automatically enables a couple of their services for you. These and all the other services can be managed from the menu item Project Admin > Feature Settings, as shown in Figure 2.
We advise you to go through this list to check whether you will be using all of these services and to disable those that you will not be using. This will make the layout of your project on SourceForge cleaner, and your visitors will not be distracted by features that are not in use.
Some of the most important services that are enabled by default are discussed below.
In open source software projects, there are usually several groups of stakeholders. For example, there will probably be one or more groups of (prospective) users of the software as well as developers building and maintaining the software. When you are setting up new mailing lists, the temptation is to set up a separate list for each stakeholder group, however, in a new project is usually makes sense to have all stakeholders in the same list since traffic will e low to begin with.
You can create and manage mailing lists from the Feature Settings page. On this page, the option Mailing Lists is enabled by default. By clicking the Manage link, you can manage the mailing lists. SourceForge uses the popular mailing list manager tool Mailman for this purpose. All the mailing lists you create within your project will be of the following form:
<project identifier>-<name of choice>@lists.sourceforge.net
The name of the mailing list must be at least four characters long, unless it is named cvs, git or svn. These latter examples are common names for the mailing lists that are set up to send automatic updates from the version control systems CVS, Git and Subversion, respectively.
Four tracking systems will automatically be enabled when you register your project. These are:
- Bugs: bug tracking system
- Support requests: technical support tracking system
- Patches: patch tracking system
- Feature requests: feature request tracking system
All of these lists are publicly visible and ready to use. You can edit the preferences for each list via the Manage link in the Feature settings menu. For instance, you can enter your email address or that of a mailing list to which to send mail on a new issue submission. You can also specify other settings, such as whether you want to allow non-logged-in postings (enabled by default) and the number of days within which assignees are expected to react before an issue becomes overdue. This last setting is particularly useful for reporting purposes. There is a variety of reports that you can configure or use with the default settings.
The use of a version control system is essential to any open source project, as it means that all source code contributions to the project are automatically recorded. This will help the project administrator to manage intellectual property rights (IPR) and collaborate with contributors.
After you have created a SourceForge project, a Subversion repository is automatically made available to you. This is where all source code contributions will be recorded. Additionally, the version control system can be used for all other files, such as documentation and website content. You can then enable notification emails by creating a so-called hook from the Subversion management page (Project Admin > Feature settings > Subversion > Manage). On this page, there are a number of hooks that you can use without any configuration. Two of these are for sending email when a new commit has been made. If you select one of these and click add, you will be asked to fill in an email address on the next page, for which you can use the address of a mailing list that contributors can subscribe to, e.g. myproject-svn@lists.SourceForge.net.
Although Subversion is enabled by default, you don’t necessarily have to use it. You can choose to use a different version control system by simply checking the box in the tab Available Features within the Feature Settings menu. These alternative version control systems are available:
Administration of these tools may vary, but there is a comprehensive help page for each system when you click on the name of the tool.
If you are already using Subversion and have it hosted on a separate server, you can provide a link to that server from the Subversion management page. Make sure that you have enabled anonymous access, so that everybody can check out the source code easily and without registration. This will lower the threshold for participation in your project.
Also readily available from Feature settings are the options MediaWiki and Trac, which can both be used as wiki systems. After you have enabled MediaWiki, you can go to the Enabled features tab to manage your new Wiki installation. On the main wiki management page, there is a whole list of options, one of which is Preferences. When you click on that link, you go to the preferences page. On this page, you have to confirm your email address first, by following the instructions. After that, you can edit your email preferences. By default you will receive an email when one of the pages in your watchlist is edited. If you wish to receive an email on every edit only initially, you can specify this in the watchlist settings.
Alternatives and barriers to SourceForge
Although SourceForge forces the projects that it hosts to be released under an open source licence, SourceForge itself is owned by the private company GeekNet. The software behind SourceForge was originally also open source, but the predecessor of GeekNet, VA Linux, decided to develop new components of the SourceForge software under a closed source licences from 2001 onwards. This decision prompted some projects to move away from SourceForge and also new forges where developed from forks of the SourceForge software, for example the GForge project. Other initiatives were started by people who found that a hosting website for open source software should run entirely on free and open source software, most notably Savannah. Later, other project hosting websites started to become more popular, such as Google Code. Another reason why people choose not to use SourceForge is the presence of advertising on its website. Some people feel that in general advertisements are incompatible with the nature of open source software, but for others they are not acceptable because some advertisements promote non-open source software.
All in all, however, SourceForge is a feature-rich project hosting website that offers a broad range of services for open source software projects, whether they are new to open source or more experienced. For novices needing to decide which features to use, it provides a default set-up that has many relevant options enabled. For those requiring more than just the basics, SourceForge also offers a wide range of more advanced services.
It is important that we understand that build it and they will come is as common in open source projects as it is in other areas of life. Putting your open source project on SourceForge will not result in you attracting contributions, there is much more to it than setting up some tools to aid collaboration. You also need to create a culture of collaboration in order for you to get the most from open source software development.
Links from the SourceForge website
- Create project page (requires login)
- Getting started guide from SourceForge
- Overview of the applications hosted by SourceForge
- Overview of all SourceForge’s services
Alternatives to SourceForge
- Google code [http://code.google.com], Google’s alternative project hosting site. See also Creating a new Google Code Project.
- Savannah [http://savannah.gnu.org/], a FOSS alternative from GNU that runs on FOSS sofware from the project Savane.
- GNA [http://www.gna.org/], specifically for Free software hosted by FSF France.
- Codeplex [ http://www.codeplex.com/ ] is Microsoft’s open source software project hosting.
- GitHub [http://github.com/] is specifically for projects that use Git as their version control system.
- Eduforge [http://eduforge.org/] is a hosting website specifically focussed on the open source educational software development community.
- BerliOS [ http://developer.berlios.de/ ] is an open source hosting platform hosted by the German Fraunhofer FOKUS group.
- TuxFamily [ http://www.tuxfamily.org/ ] is a non-profit organization that provide free services for projects and contents dealing with the free software philosophy.
- Alioth [ http://alioth.debian.org/ ] is a hosting platform based on FusionForge.
- Assembla [http://www.assembla.com/] offers hosting services with paid price plans for private companies, but also offer free hosting for open source and community projects.
Related information from OSS Watch
- What is version control?
- Sustainable open source
- How to build an open source community
- Essential tools for running a community-led project
- Creating a new Google Code project
- Release management in open source software projects