Maintaining Open Source Projects
A successful open source project is not only one that is original, solves a particular problem well, or has pristine code quality. Those skim the surface of a topic which we'll thoroughly dissect with this book.
Maintaining Open Source Projects is a pre-release. The cost will increase when it is completed.
Is this book for me?
You might be a maintainer of an open source project. Maybe you host repositories publicly in GitHub and someone has started using and contributing back to them. Or perhaps you're a member of a team that applies open source practices and workflows, giving your company an open source like organization.
- Your project may have a following and you don't know how to communicate with it, how to prioritize their requests, how to answer questions.
- You want to learn the communication patterns that make it possible for a large open source project to move forward, while your 5-people team can't come to agreement on the name of a method.
- You want to make sure your bar is high enough for providing a reliable project to your following.
- You want to follow best practices but can't know them all. When to release new versions, how to decide version numbers, when to open source, when to add contributors, what to automate.
- You want to get your project more attention and grow its user base.
Table of Contents
Preface
Community
- Communication channels
- Answering questions
Issue tracker gardening
- How much communication is enough?
- On effective feedback
- Expectations and guilt
Git & GitHub
- Request small, cohesive commits
- Request good commit messages
- Request good git history
- Reject patches
Maintaining Quality
- Adopt a style guide
- Use static analysis tools
- Request regression tests for every change
- Run tests on every commit
- Choose your own values
Documentation
- README
- Overview
- Installing
- News
- Code of Conduct
Contributing
Releasing
Wiki
Licenses
- Public domain - CC0
- Copyleft licenses - GPL, LGPL
- Permissive licences - Apache, BSD License (modified), MIT License (X11), ISC License
Dual Licensing
Other permissive (and informal) licenses - WTFPL
Versioning & Releasing
Semantic Versioning
Publishing a new release
Maintenance releases
Release version 1.0
Releasing new versions
Security releases
Deprecation cycles
Quitting as a maintainer
Conclusion
Resources
Maintaining Open Source Projects was written by Tute Costa.