This repository has been archived by the owner on Apr 29, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6 from open-sauced/feat-2-adding-intro-content
feat: adding intro content for the Understanding the Role of an Open Source Maintainer section
- Loading branch information
Showing
4 changed files
with
93 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
- Pages | ||
- [What is an Open Source Maintainer?](/intro.md) |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
# Understanding the Role of an Open Source Maintainer | ||
|
||
Being an open source maintainer can be a very gratifying and rewarding experience. But there is a lot of work that goes into maintaining an open source project. As a maintainer you will have many responsibilities including being a contributor, leader, mentor, and community manager. | ||
|
||
This course will provide you with a comprehensive overview of a maintainer's role, including insights into daily tasks, long-term responsibilities, and the overall impact of a maintainer in an open-source project. | ||
|
||
## What is an Open Source Maintainer? | ||
|
||
An open source maintainer is responsible for maintaining the health and success of a project. Maintainers help to define the project's goals, work with other contributors, help to build a community around the project and uphold the project's quality standards. | ||
|
||
### Guiding Contributors and Providing Feedback | ||
|
||
Being able to work with contributors from all backgrounds is an important skill to develop as a maintainer. Some contributors will be seasoned developers that are interested in getting started with your project. While others will be new to open source and development in general. So it is important to have good communication with your contributors. | ||
|
||
Working with contributors will include assisting them with any blockers they might have and providing constructive feedback so they can grow and strengthen their contributions to your project. | ||
|
||
### Fostering a Welcoming and Inclusive Community | ||
|
||
Not all open source communities are welcoming and inclusive which can deter people from wanting to participate in open source at all. So it is important to remember to always lead with kindness, patience and understanding. | ||
|
||
People are volunteering their time to contribute to your project with the intention of helping it grow. By setting a standard that your community is inclusive and helpful to everyone, that will trickle down to all community members and create a community that contributors will want to be a part of. | ||
|
||
### Ensuring the Reliability and Stability of the Project | ||
|
||
It is maintainer's responsibility to review and maintain the project to the existing quality standards. When you receive a pull request, it is your responsibility to make sure that all of the tests are passing and the feature or fix is working as expected. It is also important to check and make sure that the new changes do not accidentally break something else in the project. Having a good testing suite and process will help with that. | ||
|
||
## Benefits of Being a Maintainer | ||
|
||
There are many benefits to being an open source maintainer including career, leadership and personal growth. | ||
|
||
### Personal and Professional Growth | ||
|
||
As a maintainer, you are in a leadership position helping to guide contributors to success in your project. Leadership and mentorship skills are important to develop and will help you grow in your career. | ||
|
||
Being a maintainer also helps you grow your technical skills. You will be responsible for making contributions, reviewing pull requests, writing technical articles about your project and possibly giving technical talks at conferences. | ||
|
||
### Networking Opportunities | ||
|
||
Building relationships in the tech industry is a great way to connect with talented technologists from around the world and advance your career. By working with other contributors you will get to learn from them and they will get to see your leadership and technical abilities. | ||
|
||
There have been many instances where long term open source relationships have turned into possible business ventures or future job opportunities. And if your project ends up being used by a lot of people, then you will be able to connect with a larger group of technologists. | ||
|
||
## Challenges of Being an Open Source Maintainer | ||
|
||
While there are many benefits to being an open source maintainer, it is not always an easy job to do. Here are a few challenges that maintainers face: | ||
|
||
### Burnout | ||
|
||
A lot of open source maintainers have felt burned out on the sheer volume of work and responsibility that it takes to maintain the project. Some have even gone as far as to walk away from the project when the work became to much to handle. | ||
|
||
If you are feeling overwhelmed by the workload and getting close to burnout, it is time to get the right type of support for your project. Identify regular contributors in the community and reach out to them to see if they are interested in becoming a maintainer. This will help offload some of your responsibilities and decrease your stress around the project. | ||
|
||
When it comes to identifying possible new maintainers, you will want to look for contributors who have been invested in the project for a period of time and go above and beyond. Most contributors, will be casual contributors to your project which is fine. But there will be those who will regularly contribute and start to integrate more into the community. Those are the individuals you will want to reach out to for recruiting them to be a maintainer. | ||
|
||
### Dealing with Loneliness | ||
|
||
The role of a maintainer can sometimes feel lonely and isolating. Most contributors will come and go and you are left still maintaining the project by yourself or with a small group of people. So it is important to get connected with a group of maintainers from a variety of open source projects so you can have a place to discuss your challenges and connect with others. | ||
|
||
Other maintainers will be able to relate to the challenges you face and will help you through the difficult times. They will also be able to offer suggestions on how to make your project and community better. It is important not to go through the maintainer journey alone. Reach out and connect with others in your same situation so you can grow and learn together. | ||
|
||
## Key Responsibilities and Expectations | ||
|
||
The role of the maintainer is a multifaceted one. Here are a few key responsibilities for an open source maintainer. | ||
|
||
### Triaging Issues | ||
|
||
Learning how to triage issues is an important skill for any open source maintainer. This involves going through the existing list of open issues and prioritizing them in order of importance. Some open issues will be critical bug fixes, while others might be nice to have feature requests. Sometimes you might have issues opened for things that are not a right fit for the project. | ||
|
||
### Reviewing Pull Requests | ||
|
||
Reviewing pull requests is an important part of a maintainer's job. It is the maintainer's responsibility to ensure that the suggested code or documentation update meets the projects standards and doesn't introduce any new issues for the project. You will also need to work with the contributor to unblock them on issues they have or help them resolve failing tests. | ||
|
||
### Testing and Stability | ||
|
||
A maintainer is responsible for making sure the application is working as expected. This will involve a combination of manual and automated testing. For manual testing, you will want to set time aside once in a while to run through new features or existing features like a normal user would. If there are any bugs or poor user experiences, then you will need to document them and create an issue. | ||
|
||
For automated testing, you can setup an automated test suite that runs on ever pull request and merge into the main branch. If the test suite fails, then you can reach out to the contributor and help them debug the error. Good automated test suites can help catch bugs from going into production and breaking the application. | ||
|
||
### Documentation | ||
|
||
A good open source project will have a comprehensive set of documentation so all users will know how to best run and maintain the project. In your project's README, you will want to have a basic overview of the project, along with how to get setup and how to contribute. As your project grows over time, you will want to keep your documentation up to date. | ||
|
||
If you are maintaining a larger project, then you might consider using documentation builders like [Docusaurus](https://docusaurus.io/) or [docsify](https://docsify.js.org/#/) to host your documentation. Documentation also includes writing tutorials, building diagrams or creating in depth guides for the project. | ||
|
||
### Community Management and Engagement | ||
|
||
A key component for any open source project is its community. Building a strong community can help accelerate the growth of your open source project. As new contributors discover and start to contribute to your project, you will want to create spaces for communication and collaboration. | ||
|
||
If your project is on GitHub, you can use [GitHub discussions](https://docs.github.com/en/discussions) as a way for contributors to post questions and facilitate conversations. You can also look into creating communities on Discord or Slack. As you grow your community, you will want to create moderators that will help maintain the healthy environment you setup. To encourage engagement, you can hold office hours or other online events like Twitter spaces. |