Best Practices for Managing Open-Source Software
Contribution to the open web is one of 10up’s guiding values. The sharing of expertise, like our engineering best practices, and the creation of our open source tools like Distributor, ClassifAI, and ElasticPress, along with our hundreds of commits to open projects like WordPress, reflect 10up’s position as a leading contributor to open source platforms.
Our latest contribution is the release of our official Open Source Best Practices as a public project on GitHub.
Following 10up’s mission to make a better web with finely crafted websites and tools for content creators, our Open Source Practice brings forth deep experience in the long-term stewardship of open-source projects. Beyond pushing code to a public repository, effective open-source management requires thoughtful consideration of licensing, defining maintenance procedures, and proactive communication with participants. By releasing our best practices, we hope to provide a guide for the establishment and ownership of open-source projects.
These practices aren’t intended for massive, enterprise projects like WordPress itself, Apple’s Swift project, or Google AMP, with hundreds of contributors and dedicated project teams, but rather, for smaller projects managed by companies like 10up. We distilled vital lessons learned from managing open-source projects of all sizes into the basic tenets of open-source software management, including:
- The project lifecycle
- How to release and maintain the codebase
- How to operate within a repository
By sharing the insights and experiences gleaned from managing dozens of repositories, we hope to help others succeed in releasing and managing their own projects more effectively.
To learn more about our project roadmaps and get a close up look at our open source initiatives, check us out on GitHub. We enjoy consulting with organizations looking to create or manage open source solutions, or bring their tools to open source ecosystems like WordPress; if you are interested, let’s have a conversation.