Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CONTRIBUTING.md template file #34

Merged
merged 26 commits into from
Jun 29, 2020
Merged
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
581bc1b
Add CONTRIBUTING.md template file
curquiza Jun 25, 2020
ec6e2c3
Update templates/CONTRIBUTING.md
curquiza Jun 25, 2020
6058f7b
Update templates/CONTRIBUTING.md
curquiza Jun 25, 2020
f91bb05
Update templates/CONTRIBUTING.md
curquiza Jun 25, 2020
734d3fd
Update templates/CONTRIBUTING.md
curquiza Jun 25, 2020
22fd2d0
Add final words
curquiza Jun 25, 2020
a75e295
Update templates/CONTRIBUTING.md
curquiza Jun 25, 2020
58fbcd1
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
01ec092
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
85bf6a1
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
f1c3bb9
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
4898cce
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
7510acc
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
83311bf
Remove empty line
curquiza Jun 29, 2020
04ef0fa
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
4be0945
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
69c1d6f
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
1c254d8
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
adf9d1d
Change step 2 in How To Contribute
curquiza Jun 29, 2020
1a23bbe
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
c587869
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
8c1b959
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
9b2953d
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
19db6c9
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
abe9f17
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
450e733
Update templates/CONTRIBUTING.md
curquiza Jun 29, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions templates/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# Contributing

---

COMMENT TO REMOVE

Be aware of XXX in sentences and links: they need to be replaced by the name of the repository.
curquiza marked this conversation as resolved.
Show resolved Hide resolved

---

First, thank you for contributing to MeiliSearch! The goal of this document is to provide everything you need to start contributing to MeiliSearch.
curquiza marked this conversation as resolved.
Show resolved Hide resolved

<!-- MarkdownTOC autolink="true" style="ordered" indent=" " -->

- [Assumptions](#assumptions)
- [How to Contribute](#how-to-contribute)
- [Development Workflow](#development-workflow)
- [Git Guidelines](#git-guidelines)

<!-- /MarkdownTOC -->

## Assumptions

1. **You're familiar with [GitHub](https://github.com) and the [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)(PR) workflow.**
2. **You've read the MeiliSearch [docs](https://docs.meilisearch.com) and the [README](/README.md).**
curquiza marked this conversation as resolved.
Show resolved Hide resolved
3. **You know about the [MeiliSearch community](https://docs.meilisearch.com/resources/contact.html). Please use this for help.**

## How to Contribute

1. Ensure your change has an issue! Find an [existing issue](https://github.com/meilisearch/XXX/issues/) or [open a new issue](https://github.com/meilisearch/XXX/issues/new). This is where you can get a feel if the change will be accepted or not.
curquiza marked this conversation as resolved.
Show resolved Hide resolved
2. Once approved, [fork the XXX repository](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) in your own GitHub account.
curquiza marked this conversation as resolved.
Show resolved Hide resolved
3. [Create a new Git branch](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository).
4. Review the [Development Workflow](#workflow) section that describes the steps to maintain the repository.
5. Make your changes.
6. [Submit the branch as a PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) pointing to the `master` branch of the main XXX repo. A team member should comment and/or review your Pull Request with a few days. Although, depending on the circumstances, it may take longer.<br>
curquiza marked this conversation as resolved.
Show resolved Hide resolved
About the PR title, we do not adopt any type of naming style, but **please use something descriptive of your changes**. The title of the PR will be indeed automatically added to the next [release changlogs](https://github.com/meilisearch/XXX/releases/).
curquiza marked this conversation as resolved.
Show resolved Hide resolved

## Development Workflow

---

COMMENT TO REMOVE

This section should be filled according to the repository and should contain:
- A "Setup" section (if needed) with the command to install the dependencies for the contributor (e.g.: `yarn --dev`).
- A "Tests and Linter" section with the command to run the tests, the linter and the linter-autofix (if possible).
- A "Release Process" section that describes the process before publishing a new release.
- Other useful tips/steps for the contributor (e.g.: how to build, how to debug).

/!\ The following lines are just a template example and should be completed with right names and right commands

---

### Setup

```bash
$ <Add the right command here>
```

### Tests and Linter

Each PR should pass the tests and the linter to be accepted.

```bash
# Tests
$ <Add Docker command to run MeiliSearch here>
$ <Add the right command here>
# Linter
$ <Add the right command here>
# Linter with fixing
$ <Add the right command here>
```

### Release Process

MeiliSearch tools follow the [Semantic Versioning Convention](https://semver.org/).


#### Automatiazed Changelogs
curquiza marked this conversation as resolved.
Show resolved Hide resolved

For each PR merged on `master`, a GitHub Action is running and updates the next release description as a draft release in the [GitHub interface](https://github.com/meilisearch/XXX/releases). If you don't have the permission to this repository, you will not be able to see the draft release until the release will be published.
curquiza marked this conversation as resolved.
Show resolved Hide resolved

The draft release description is therefore generated and corresponds to all the PRs titles since the previous release. This means each PR should only do one change and the title should be desriptive of this change.

Some points about this automatization:
curquiza marked this conversation as resolved.
Show resolved Hide resolved
- As the draft release description is generated on every push on `master`, don't change it manually until the final release publishment.
- If you don't want a PR to appear in the release changelogs: set the label `skip-changelog`. We used to remove PRs updating the README or the CI (except for big changes).
curquiza marked this conversation as resolved.
Show resolved Hide resolved
- If the changes you are doing in the PR are breaking: set the label `breaking-change`. In the release tag, the minor will be increased instead of the patch. The major will never be changed until [MeiliSearch](https://github.com/meilisearch/MeiliSearch) is stable.
curquiza marked this conversation as resolved.
Show resolved Hide resolved
- If you did any mistake, for example the PR is already closed but you forgot to add a label or you bad-named the title of your PR, don't panic: change what you want in the closed PR and run the job again.
curquiza marked this conversation as resolved.
Show resolved Hide resolved

*More information about [release drafter](https://github.com/release-drafter/release-drafter) we use to automatize these steps.*
curquiza marked this conversation as resolved.
Show resolved Hide resolved

#### How to Publish the Release

You must do a PR modifying the file `[<Add file name here>]`(\<Add relative path to the file here\>) with the right version.
curquiza marked this conversation as resolved.
Show resolved Hide resolved

```<Add the language here>
<Add the line to change, e.g.: "version": X.X.X>
```

Once the changes are merged on `master`, you can publish the current draft release via the [GitHub interface](https://github.com/meilisearch/XXX/releases).

A GitHub Action will be triggered and push the package on [\<Add the platform name here, e.g. npm>](\<Add URL to the platform here\>).

## Git Guidelines

### Git Branches

All changes must be made in a branch and submitted as PR.
We do not adopt any type of branch naming style, but please use something descriptive of your changes.
curquiza marked this conversation as resolved.
Show resolved Hide resolved

### Git Commits

As a minimal requirement, we ask the commit message:
curquiza marked this conversation as resolved.
Show resolved Hide resolved
- to be capitalized
- not to finish by a dot or any other punctuation character (!,?)
- to start with a verb so that we can read your commit message this way: "This commmit will ..." where "..." is the commit message.
e.g.: "Fix the home page button" or "Add more tests for create_index method"

We don't follow any other convention, but if you want to use one, we recommend [this one](https://chris.beams.io/posts/git-commit/).

### GitHub Pull Requests

Some points about GitHub PR:
curquiza marked this conversation as resolved.
Show resolved Hide resolved
- [Convert your PR as a draft](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request) if your changes are a work in progress: no one will review it until you pass your PR as ready for review.
curquiza marked this conversation as resolved.
Show resolved Hide resolved
- The branch related to the PR must be **up-to-date with `master`** before merging.
- All PRs must be reviewed and approved by at least one member.
curquiza marked this conversation as resolved.
Show resolved Hide resolved
- All PRs have to be **squashed and merged**.
- The PR title should be accurate and descriptive of the changes. The title of the PR will be indeed automatically added to the next [release changlogs](https://github.com/meilisearch/XXX/releases/).


curquiza marked this conversation as resolved.
Show resolved Hide resolved