How to participate in a GitHub open-source project?

Source: Internet
Author: User

Abstract:This article is a guide provided by GitHub to participate in open-source projects on GitHub. It is a good reference for developers who wish to join the open-source community.

Open-source projects have been very popular in the past year. Many technical conferences or forums have discussed open-source projects as their themes. This shows that this is a trend. GitHub, as a famous place of open-source projects, can be said to have no one knows. More and more people and companies are joining the GitHub family to make a contribution to open-source projects. Personally, hosting your project on GitHub does not mean that you have participated in the GitHub open-source project. You can only say that you have open-source your project and can be freely downloaded by others.

So how should we participate in GitHub's open-source project? I believe many people have questions in this regard. There are also some uneven online tutorials to teach you how to "pull request" and "commit. However, these tutorials are often incomplete or not completely correct, which may cause you to fall into a misunderstanding. In view of this, the GitHub team wrote a great article contributing to open source on GitHub a few days ago, which provides professional guidance on how to participate in GitHub's open source project. Below is the translation of the original text.

The best way to participate in open-source projects is to join the existing projects you are using. GitHub has more than 5 million open-source projects involving technologies in various fields, such as recipes, HTML/CSS, Ruby, and astrophysics. This guide will cover what may happen in a typical project and how to contribute to an open-source project.

 

Find a project

We recommend that you start from a project in use or of interest. There are a few great places for your reference:

 

 

  • GitHub release E: popular and popular projects.
  • GitHub stars: a project that has been hosted by other people star (it refers to the project in your own library ).
  • GitHub showcases: a method for searching related libraries.
  • Layervault news: front-end and design-related projects.

 

 

A typical project

The following are some factors you may encounter in GitHub open-source projects.

 

The Community (community)

 

A project usually has a community maintained by other user groups of different roles (formal or informal:

 

  • Owner: the user or organization who creates the project and has the project on their GitHub account.
  • Maintainers and collaborators: a user who works on a project and promotes its development. Usually the owner and maintainer are the same user or organization, and they have the write permission on the project library.
  • Contributors: Every user who has sent a pull request to the project and merged it into the project is a contributor.
  • Community members: users who are frequently used and very concerned about the project are very active in discussing feature features and pull requests.

 

The docs (documentation)

Files in a project.

 

 

  • Readme: almost all GitHub projects contain a readme. md file. Readme provides an overview of the project and details about how to use, build, and even contribute to a project.
  • Contributing: the project and the project maintainer are different, so the best way for each project to contribute is also different. Be sure to pay attention to a document marked as contributing. The contributing document describes in detail the specifications that a project maintainer wants to see contribution patches or functions should meet. This may include the areas of tests, code syntax specifications, or patch sets to be written.
  • License: A license file is of course the license for this project. The license of an open-source project tells users what they can and cannot do (such as using, modifying, and re-publishing), and tells contributors what they can do. There are many ways to add licenses to open-source projects. You can read more about each license on choosealicense.com.
  • Documentation and wikis: many large projects have more than one readme to instruct people on how to use their projects. In this case, you can usually find a link to another file or folder named "Docs" in the library.

 

In addition, this library may also use GitHub wiki to replace the document.

 

 

Contribute to a project

Now that you have found information about the project, you can take some actions.

Create a topic

If you find a bug in the project you are using (but you do not know how to fix it), or you are puzzled by the document or have doubts about the project-create a topic! This is very easy. Generally, no matter what topic you create, you may not be the only one who has this problem, so others may find that your topic is very helpful. For more information, see our issues guide.

Professional topic tips
  • Check Existing topics before creating a topic: duplicate topics are not beneficial to both parties, so you can search for topics that are being opened and closed to check whether your problem has been solved.
  • Be sure to have a clear understanding of your own problems: What are the expected results? But what happened? Describes in detail how other people reproduce the problem.
  • Reproduce the problem on platforms like jsfiddle or codepen and provide a link to the problem demo.
  • Contains system-related details, such as the browser, library, operating system, and version number used.
  • Post your error output or logs on your topic or gist. If you post it in the topic, use three backquotes.```It makes it easy to present it to everyone.

 

Pull request

If you can fix bugs or add features by yourself-great, please send a pull request! Make sure that you have read any documentation about contributing and need to understand the license and have signed the TLS (if necessary ). Once you submit a pull request, the maintainer will compare your branch with the existing branch to determine whether to merge (that is, pull in) your changes.

Pull request professional tips
  • Fork the project library and clone it to the local machine. Connect to the original 'upstream' database locally by adding it as a remote connection. We often change the 'upstream' library pull in to keep the database up-to-date, so that when you submit a pull request, it is unlikely that a merge conflict will occur. Click here to see more guidance details.
  • Create a branch for your edits.
  • Be sure to understand the problem and how to reproduce it or why your function is helpful. Then we need to know the steps for making some changes.
  • Test it. Run your changes on any existing tests (if any) and create new tests as necessary. Whether the test storage does not exist, make sure that your changes do not damage the existing project.
  • If your changes include HTML/CSS differences, please include the changes before and after the changes. Drag and Drop your image to the body of your pull request.
  • Do your best to do more in the style of the project. This may mean that the use is different from the indentation, semicolons, or comments used in your own GitHub library, but this makes it easier for the maintainer to merge and make it easier for others to understand and maintain later.

 

 

Open pull requests

Once you open a pull request, there will be a discussion about the changes you have proposed. Other contributors and users may be involved, but it is ultimately up to the maintainer to make decisions. You may be asked to make some changes to your pull request. If so, please add more commit to your branch and push them-they will be automatically added to the existing pull request.

 

 

If your pull request is merged -- great! If it is not merged, it is no big deal. Maybe this is not the change that the project maintainer expected to see, or they are already working on this bug or function. This situation may happen, so our suggestion is: give feedback on the received results, make further efforts, and then send a pull request again-or create your own open-source project.

From: http://www.csdn.net/article/2014-04-14/2819293-Contributing-to-Open-Source-on-GitHub

How to participate in a GitHub open-source project?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.