From top to bottom:

  1. Author

    Sometimes referred to as primary author, to distinguish between other people who have contributed to the project, this is the creator. At times, someone in the lower ranks of the hierarchy happen to be more active in the project than the Author, in which case the Author often makes them Maintainer, explicitly or not.

  2. Maintainer

    This is someone ultimately responsible for the project: handles bug reports, decides which changes to accept from lower contributors, and performs releases. Note that there can be more than one, unlike is the case with Author.

  3. Contributor

    This is someone who submits improvements to project, either documentation or code. It can be a one-time contribution, but in case where this is frequent and spans a certain amount of time, she can move onto becoming a Maintainer.

  4. Bug Reporter

    This is someone who suggests improvements to the project. Depending on the project, any of these are used: a mailing list, an IRC channel, a social networking service, email, or a dedicated Issue/Bug tracking system.

  5. User

    What the user is depends on the project, of course. Just to be clear, in the case of Python project, the user is a software developer, not the person who ends up using something written in the language.

The 'individual' in title means I'm ignoring non-human entities, like companies. I'm also ignoring non-core activities, like marketers or sysadmins, or even teachers. Those are not going to be easy to fit in this simple story, and are not common to that many FLOSS (Free/Libre and Open Source) projects.


In the case of wajig, I am the Maintainer and Graham Williams is the Author. In the case of paramiko, a far more important project, Jeff Forcier is the Maintainer. The project was however created by Robey Pointer, and he did not imagine it would end up being THE Python SSH library today.