Getting started with a Free Software project and making it available to the community can be confusing for first-time software authors. However there are a couple of things worth knowing that will help you attract more users and increase the likelihood that your software will be part of a Free Software distribution like Debian.
Idea, Name and License
At the core, a Free Software project starts with an idea. It's the reason why you wrote the software in the first place. Where this becomes interesting is when your think that your software could be useful to others. That's when you should think about sharing your code.
Of course, one of the very first decisions you'll need to make is to name your project. This is of course a very personal decision, but if you're struggling to find something exciting and trendy, consider choosing something that:
- is not already used,
- is easy to remember and
- gives an idea of what the project is about.
Another choice you will need to make before your first release is the license. While that topic may not be familiar or interesting to you, I highly recommend that you carefully consider your options since your license choice can influence the type of community that will form around your project.
Public Release
Making your project publicly available can be as simple as dropping a tarball on a mailing list. However, if you want your project to reach all of the users for which it could be useful, there are a few other things you might want to do.
One of these things is to provide a digital home for your project. That homepage should provide access to all of the services related to your project. Such services usually include source control, bug tracking, mailing list and file areas. I've got some ideas about what that homepage should contain later but first things first, let's look at what that tarball should contain.
Tarball Contents
Most people downloading your source code will either be end-users or
distribution maintainers. Here's what they will be looking for:
Complete source code along with the data files (if any) necessary to use your software.
Installation instructions explaining how to compile and install your project on one of the supported platforms. This file is usually called
INSTALL
.Quick instructions on how to get started. This is usually contained in the
README
and it should provide new users all of the commands or instructions they need to get going within a minute or two.Full copy of the licensing terms, usually in a file named
COPYING
.Contact information for help or contributions. Small projects will often share the email address of the main author and a link to the project homepage if available. This is traditionally located in a file called
AUTHORS
or in theREADME
directly.
This is pretty much the minimum that you need to provide in order for your code release to be useful to others and to be legally distributed by others. There are a few more things that you should think about if you would like to increase the likelihood that your software will be included in a Free Software distribution.
After putting all of this together, you should be ready for the initial public release of your project and will now be moving to the next phase: supporting your growing community.
And I was hoping your post would be about a revolutionary project you are starting...
Anyway still good article, I like it.
Another excellent article for tips on how to release a piece of software properly:
Releasing Free/Libre/Open Source Software (FLOSS) for Source Installation
Good list of things to consider when choosing a name for your new project:
How to choose a good name for your product or project