I am planning on opening sourcing a project that I've been working on for a while and that I think would benefit the community. I've already cleaned up the code, added a reasonable license, and wrote a packaging script for it that runs the unit tests, etc (it's Python, so that means setup.py). I wrote a README that describes the project, my motivations for writing the library, and the basics of how to use it.

What else is expected of me? Is hosting it on GitHub enough or is it expected that I maintain the PyPI packages too? What about testing it with other versions of libraries (I just defined the dependencies as the versions that I use)? What are some nice-to-haves that people really appreciate?

  • 1
    Make it something you are proud to put your name on. Asking "am I proud of this?" is an easy way to decide if you've done enough. Aug 21, 2011 at 15:31
  • 1
    Don't forget a bug tracker and, preferably, a way for people to contact you with questions and suggestions.
    – Thomas K
    Aug 21, 2011 at 17:25

3 Answers 3


Definitely upload to PyPi and keep it updated, it's really easy and doesn't take much effort. I should be able to use pip/easy_install to install the latest stable version.

Adding a README is a great first step, but having great documentation is even better, and for that you should use sphinx (nice tutorial here). Having quality documentation is crucial if you want people to use your project.

  • The first link points to a domain which is for sale, and the third one is also dead.
    – Doc Brown
    Jul 9, 2019 at 14:52

My advice is to read one or more books or websites particularly targeted toward creating open source projects. There is a lot you can learn from people who have already done what you're wanting to do.

For example, one such book is Producing Open Source Software by Karl Fogel. This is available as a free ebook. Better than reading it, buy a copy to help support the author.

From the section "Who should read this book":

This book is meant for software developers and managers who are considering starting an open source project, or who have started one and are wondering what to do now. It should also be helpful for people who just want to participate in an open source project but have never done so before.

The reader need not be a programmer, but should know basic software engineering concepts such as source code, compilers, and patches.

At the time that I write this, the book has the following major sections:

  1. Introduction
  2. Getting Started
  3. Technical Infrastructure
  4. Social and Political Infrastructure
  5. Money
  6. Communications
  7. Packaging, Releasing and Daily Development
  8. Managing Volunteers
  9. Governments and Open Source
  10. License, Copyrights and Patents
  • would you mind explaining more on what it does and why do you recommend it as answering the question asked? "Link-only answers" are not quite welcome at Stack Exchange
    – gnat
    Aug 5, 2013 at 17:25
  • 1
    @gnat: ok, I've updated the answer. Aug 5, 2013 at 17:49

If you write software for a living, then the company you work for may feel entitled to the work you do either on their time (reasonable) or in your free time (debatable). After I read Intellectual Property and Open Source: A Practical Guide to Protecting Code, I realized that the safest bet is to discuss this project and your desire to open source it with your employer. Even if they don't have an issue in you releasing this code, it's better to know this up front than end up fired and being sued later.

Once you get the nod, the first thing you will want to do is license it and then publish it somewhere. After that, you can begin to respond to either new users or your own desires.

I've come to really appreciate a good ticket tracking system (that Github has) and a good test setup. Whether it be a virtual host that you install different versions of dependencies and run manual tests or fully automated functional/unit tests, being able to make a change and verify it works is essential.

Not the answer you're looking for? Browse other questions tagged or ask your own question.