Supply chain attacks exploit our implicit trust of open source to hurt developers and our customers. Read our proposal for how npm will significantly reduce supply chain attacks by signing packages with Sigstore.
Online communities can be daunting. They are filled with people from all walks of life, from all over the world. Open source communities are some of the biggest in the world. One of the challenges of open source communities is communicating effectively, and managing expectations of the community. Open source communities are also very important. A good community will ensure the open source project continues to sustain itself, to grow, and improve. Many software systems and processes rely on open source projects, so it’s important to ensure they continue to run smoothly. Not just the software, but the community that builds the software. If you maintain, host, or manage an open source community, there are a few key things to keep in mind. From our research, we discovered that sustainable open source communities are characterised by six key themes.
The six key areas that are characteristic of all good, sustainable open source communities are that they:
- Have a README file
- Have good-first-issues
- Contain contribution guidelines
- Contain a code of conduct
- Encourage respectful language in GitHub Discussions
- Commit to mentorship
Let’s take a look at each theme.
A README file is really important. It’s the first thing most people will interact with as they land on your open source repository. The README is important for telling potential contributors what your project is about. READMEs also share information, such as an overview of the community, links to other documentation, and how to get involved in the community.
According to our 2021 findings, 14.1% of open source projects still do not have a README file. Those repositories with READMEs are 55% more productive than those without. This is because they provide all the necessary information at developers’ fingertips.
Last year, we released Organisational Profile READMEs. This meant open source projects can now highlight who they are as a community. Having an Organisation Profile README can give your community an overview of the types of projects your organisation works on, and the type of community you are building. Your README shouldn’t replace the need to have a website. You should have a website explaining the project. This is helpful to both developers and non-developers and helps make your project discoverable across the web. A website is also super helpful for housing your documentation, videos, links to socials, and in particular, demos of your product.
If you haven’t yet created an Organisational Profile README, you can follow our tutorial and get yours started today.
As a new developer coming to a project, it’s often hard to figure out what to work on and where to provide value. This is where good-first-issues come in handy. Good-first-issues are issues tagged by maintainers as being good issues to work on as a new contributor. According to Nick Young, the maintainer of Project Contour, good-first-issues are issues that any one of the maintainers could easily complete. During our interview with Young, he says the reason for this is ensuring maintainers can help the people who come to the project, and provide something to dip their toes into the water. Maintainers should make an effort to tag relevant issues with the good-first-issue label. It’s a default label in all repositories, and will encourage contributions.
Speaking of encouraging contributions, maintainers should ensure their projects have good contribution guidelines. Contribution guidelines help “elevate the quality” of your project and “share information that makes them more attractive to new contributors.” According to our 2021 State of the Octoverse, contribution guidelines help with ambiguity and friction when working with open source projects.
The guidelines act as a “rules of engagement” when developers are coming to contributing to the project. According to the report, there are still over 65,000 open source repositories without any contribution guidelines. Those with contribution guidelines are also 17% more productive than those without.
Contribution guidelines outline various rules of engagement with the project, such as how to get started, when to submit an issue, how to submit a pull request, and more.
Contribution Guidelines help define how people should contribute to the project. In contrast, a Code of Conduct helps define how people should act and engage with other people on the project. Codes of Conduct are really important for ensuring your community behaves in a respectful, meaningful, and impactful manner. According to our report, the majority of open source repositories still do not have a Code of Conduct.
Codes of Conduct work only if enforced, and they serve as a guideline on how to behave in a manner that is welcoming. There are lots of different Code of Conducts maintainers can use as a guide to help them build the one that’s right for their community. Ensuring you have a Code of Conduct will encourage welcoming and courteous engagement with your open source project.
If a project has a good Code of Conduct, contribution guidelines, and an epic README, none of that is worth anything if your conversations have dissolved into conflict. GitHub Discussions are like many of the online community platforms people love today: Slack, Discord, Reddit, and many others. They are places where often community members feel like they can hide behind a keyboard and say whatever they like. Instead, maintainers should encourage their communities to have meaningful and respectful online conversations.
Respectful language in GitHub Discussions signal a community is safe, welcoming, and trusted.
Communities that have good conversations in GitHub Discussions are more likely to be productive and attract good contributors. Maintainers have a responsibility to maintain the code of a project, but also to maintain the health of their community. Pulling the ban hammer on disrespectful GitHub Discussions, encouraging healthy debate, and continuing to respond to questions will ensure a community grows and flourishes. It will help contribute to a trustworthy, respectful, and sustainable open source community. Encourage your community to read our top tips on being a good community member to ensure everyone in your community feels safe and respected.
Finally, maintainers and community members need to commit to mentorship. Many developers come to open source projects for the networking and experience they receive from being part of the community. Maintainers need to understand not all developers are as well versed in programming as they are. Maintainers and top contributors should agree to help mentor and guide contributors. Not only will this make better developers and therefore lead to higher quality code on the project, it will also encourage up and coming developers to take on core contributor and maintainer roles. All this contributes to the overall sustainability of any open source project.
Fun and learning fuel newcomers’ initial attraction to open source communities.
Projects that foster mentorship have long-lasting benefits for productivity, satisfaction, and retention. Communities with a mentorship mentality also lead to better collaboration.
According to Paul Copplestone from Supabase, mentors should be able to teach you not just about the project, but about the coding language. He says anyone who wants to learn Postgres, for example, should contribute to Supabase as he and the other maintainers are committed to teaching developers. All maintainers and core contributors should adopt this mentality. If they do, they’ll ensure the lasting success of their open source project.
Everything shared above is direct from The 2021 State of the Octoverse. It’s a round up released by us each year that shows the top open source projects, languages, stats, and more. Read more about the State of the Octoverse and find out how your community is tracking as you head into the new fiscal year.