Contribution Policies (CONTRIBUTING.md)

When it comes to open source or collaborative projects, establishing a clear contribution policy is essential to ensure code quality and consistency. The CONTRIBUTING.md file serves as a guide for contributors, outlining expectations and steps required for a successful contribution. This document is fundamental to creating a collaborative environment where everyone can participate effectively.

Importance of Contribution Policies

Contribution policies are important because they help set quality standards, explain how contributors can get involved, and specify the types of contributions that are welcome. They can also include information about the code review process, coding conventions, and testing required before a contribution is accepted. Having these guidelines available helps avoid misunderstandings and reduce time spent correcting contributions that don't follow project standards.

What to Include in CONTRIBUTING.md

The CONTRIBUTING.md file should be comprehensive but not excessively long so that contributors can easily understand it. Below are the key elements that should be included:

  • Introduction: A brief description of the project and the importance of contributions.
  • Prerequisites: Tools, settings, or knowledge that contributors must have before starting.
  • How to Configure the Development Environment: Detailed steps to configure the local development environment.
  • How to Contribute: Step-by-step instructions on how to make a contribution, including the process of forking, cloning, creating branches, committing, pushing, and creating pull requests.
  • Coding Standards: Coding conventions, formatting styles, and other coding practices that contributors must follow.
  • Testing Policy: Expectations regarding the tests that must accompany the submitted code.
  • Code Review: How the code review process is conducted and what is expected of reviewers and contributors.
  • Types of Contributions: Information about the different types of contributions that are welcome, such as bug fixes, new features, documentation updates, etc.
  • Communication: Communication channels for discussions, such as issues, email lists, chats, etc.
  • Code of Conduct: A reference to the project's code of conduct and the importance of respecting all contributors.
  • Contribution Recognition: Information about how contributors will be recognized for their work.

Good Practices for Writing a CONTRIBUTING.md

When writing a CONTRIBUTING.md, it is important to maintain clarity and conciseness so that contributors can easily follow the guidelines. Here are some good practices:

  • Be Welcoming: Encourage new contributors and show appreciation for contributions, regardless of size.
  • Use Clear Language: Avoid jargon and explain technical terms when necessary.
  • Provide Examples: Include examples of successful commits, commit messages, tests, etc.
  • Keep Updated: Review and update CONTRIBUTING.md regularly to reflect current project practices.
  • Make Contributing Easy: Simplify the process as much as possible and provide templates for issues and pull requests.
  • Be Specific: Provide clear details about what to do and what not to do.

Example Structure for CONTRIBUTING.md

# Contributing to [Project Name]

## Introduction

Welcome to [Project Name]. We are happy that you are considering contributing to our project. Every contribution helps make [Project Name] even better.

## Prerequisites

Before you begin, make sure you have the following tools installed...

## Configuring the Development Environment

Follow these steps to set up your development environment...

## How to Contribute

To contribute to the project, follow these steps...

## Code Standards

We follow certain coding conventions which can be found here...

## Testing Policy

Be sure to include tests for any new code or bug fixes...

## Code Review

Learn more about our code review process...

## Types of Contributions

We are looking for contributions in the following areas...

## Communication

For questionsand discussions, join us at...

## Code of Conduct

Our project follows a code of conduct that can be found here...

## Contribution Recognition

Contributions will be recognized through...

By following these guidelines and including a well-structured and informative CONTRIBUTING.md file in your project, you will establish a solid foundation for an engaged and productive community of contributors.

Now answer the exercise about the content:

Which of the following elements is NOT mentioned as a component that must be included in the CONTRIBUTING.md file?

You are right! Congratulations, now go to the next page

You missed! Try again.

Article image Open Source Licenses and GitHub

Next page of the Free Ebook:

45Open Source Licenses and GitHub

5 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text