Contributing to Projects
Since you’re here, we trust that you have some interest in participating in the co-building, and for that, we thank you in advance!
The purpose of this document is to help anyone interested in co-building understand how to contribute their efforts.
Although there may be differences in the specific details of contributing to different projects within the OpenBuild ecosystem, the general approach is consistent.
Therefore, the correct way to get started is:
- Carefully read this document to understand the overall philosophy and select the project you want to contribute to;
- Go to the official website or GitHub repository of the target project and read the relevant documentation carefully.
So, follow the instructions below!
Selecting a Project
Undoubtedly, the first step is to decide which project you want to participate in. The main factors influencing this decision are:
- Do you want to practice and solidify your newly acquired knowledge and skills in a certain area?
- Do you want to learn cutting-edge ideas or technology stacks to find better jobs?
- Do you want to realize your ideals based on a certain philosophy?
After considering and answering these questions, go to the project list page and use various tags as filtering criteria to filter out projects within your desired range, and determine which one you will contribute to.
Finding an Entry Point
After deciding on the project you want to contribute to, it’s important to effectively get involved!
Of course, you can choose to clone the codebase locally, run it, and test each feature to understand it, or start reading the code from the “entry” file; but this is undoubtedly a relatively inefficient way, and the places you’ve seen and understood won’t leave a deep impression.
A better way is to “solve problems” to get involved, which means finding the problems that the target project needs to solve next, such as defects, new requirements, and treating them as your own tasks to complete and submit code.
For those who are new to the project, to find these “problems”, you can go to the project’s GitHub repository or organization’s “Issues” and “Projects” to search - the former is generally used to manage defects, and the latter is for requirements or other things to do.
If you can’t find any, there are several possibilities:
- It’s perfect and has no defects;
- The collaboration process is not standardized;
- They don’t intend to let others participate;
- It’s no longer maintained.
To determine which situation it is, you still need to ask through issues or contact the project manager on their GitHub homepage.
If it’s the latter two situations, please let us know as well.
Submitting Code
After finding the problem you want to solve, you can set the “Assignees” field of the corresponding issue to yourself, indicating “I’m taking this task, and I promise to complete it as soon as possible” - provided that the issue has not yet been claimed by someone else.
Next, you’re about to embark on an “adventure” to complete the task!
At this point, you probably don’t have permission to push code directly to the repository, so you need to fork it under your own name and then clone it locally.
You must be eager to get started and can’t wait to complete the task quickly - but please don’t rush, pay attention to the target project’s instructions on contributing code, such as: which branch should you develop based on? How should the development environment be configured?
Once you have created your own development branch based on the specified branch and correctly configured the development environment, you can officially start the task!
It’s not just about writing code; you also need to test as comprehensively and rigorously as possible before submitting. This is both a responsibility for the code you’ve written and a basic operation to reduce ineffective communication and improve collaboration efficiency.
The code you write is public and will be seen by others; you wouldn’t want to leave an impression of being irresponsible and unreliable, would you?
After writing the code and testing it, if you feel that there are no issues, push the code to the remote repository; on GitHub, switch the remote repository code to the development branch you just pushed, and then click “Contribute” to initiate a pull request.
Next, the maintainers of the target project will find time to review the code. If there are any issues, they will comment and ask you to make changes until there are no problems and the code is merged into the repository - Congratulations, you have completed your first task in this project!
Better Participation
The above only explains the general process of participating in project co-building and is more targeted at the “OpenBuild ecosystem” itself. Below are some more detailed and general resources for open-source collaboration based on GitHub:
- How to Contribute to Open Source - Want to contribute to open source? A guide to making open source contributions, for first-timers and for veterans.
- How to Contribute to an Open Source Project on GitHub
- GitHub Docs
We wish you to become a happy and excellent contributor to OpenBuild ecosystem projects and an open sourcerer!