mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-11-04 09:56:28 +00:00 
			
		
		
		
	Create CONTRIBUTING.md
This commit is contained in:
		
							
								
								
									
										132
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,132 @@
 | 
			
		||||
# Contributing
 | 
			
		||||
 | 
			
		||||
First, thank you for contributing to MeiliSearch! The goal of this document is to
 | 
			
		||||
provide everything you need to start contributing to MeiliSearch. The
 | 
			
		||||
following TOC is sorted progressively, starting with the basics and
 | 
			
		||||
expanding into more specifics.
 | 
			
		||||
 | 
			
		||||
<!-- MarkdownTOC autolink="true" style="ordered" indent="   " -->
 | 
			
		||||
 | 
			
		||||
1. [Assumptions](#assumptions)
 | 
			
		||||
1. [Your First Contribution](#your-first-contribution)
 | 
			
		||||
1. [Change Control](#change-control)
 | 
			
		||||
   1. [Git Branches](#git-branches)
 | 
			
		||||
   1. [Git Commits](#git-commits)
 | 
			
		||||
      1. [Style](#style)
 | 
			
		||||
   1. [Github Pull Requests](#github-pull-requests)
 | 
			
		||||
      1. [Title](#title)
 | 
			
		||||
      1. [Reviews & Approvals](#reviews--approvals)
 | 
			
		||||
      1. [Merge Style](#merge-style)
 | 
			
		||||
   1. [CI](#ci)
 | 
			
		||||
1. [Development](#development)
 | 
			
		||||
   1. [Setup](#setup)
 | 
			
		||||
   1. [Testing](#testing)
 | 
			
		||||
   1. [Benchmarking](#benchmarking)
 | 
			
		||||
   1. [Profiling](#profiling)
 | 
			
		||||
1. [Humans](#humans)
 | 
			
		||||
   1. [Documentation](#documentation)
 | 
			
		||||
   1. [Changelog](#changelog)
 | 
			
		||||
 | 
			
		||||
<!-- /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)
 | 
			
		||||
   workflow.**
 | 
			
		||||
2. **You've read the MeiliSearch [docs](https://docs.meilisearch.com).**
 | 
			
		||||
3. **You know about the [MeiliSearch community](https://docs.meilisearch.com/resources/contact.html).
 | 
			
		||||
   Please use this for help.**
 | 
			
		||||
 | 
			
		||||
## Your First Contribution
 | 
			
		||||
 | 
			
		||||
1. Ensure your change has an issue! Find an
 | 
			
		||||
   [existing issue](https://github.com/meilisearch/meilisearch/issues/) or [open a new issue](https://github.com/meilisearch/meilisearch/issues/new).
 | 
			
		||||
   * This is where you can get a feel if the change will be accepted or not.
 | 
			
		||||
2. Once approved, [fork the MeiliSearch repository](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) in your own
 | 
			
		||||
   Github account.
 | 
			
		||||
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 MeiliSearch [workflow](#workflow) and [development](#development).
 | 
			
		||||
5. Make your changes.
 | 
			
		||||
6. [Submit the branch as a pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) to the main MeiliSearch
 | 
			
		||||
   repo. A MeiliSearch team member should comment and/or review your pull request
 | 
			
		||||
   with a few days. Although, depending on the circumstances, it may take
 | 
			
		||||
   longer.
 | 
			
		||||
 | 
			
		||||
## Change Control
 | 
			
		||||
 | 
			
		||||
### Git Branches
 | 
			
		||||
 | 
			
		||||
_All_ changes must be made in a branch and submitted as [pull requests](#pull-requests).
 | 
			
		||||
MeiliSearch does not adopt any type of branch naming style, but please use something
 | 
			
		||||
descriptive of your changes.
 | 
			
		||||
 | 
			
		||||
### Git Commits
 | 
			
		||||
 | 
			
		||||
#### Style
 | 
			
		||||
 | 
			
		||||
Please ensure your commits are small and focused; they should tell a story of
 | 
			
		||||
your change. This helps reviewers to follow your changes, especially for more
 | 
			
		||||
complex changes.
 | 
			
		||||
 | 
			
		||||
Familiarise yourself with the [Git Style Guide](https://github.com/agis/git-style-guide) and [Commit Message Guidelines](https://gist.github.com/robertpainsi/b632364184e70900af4ab688decf6f53).
 | 
			
		||||
 | 
			
		||||
### Github Pull Requests
 | 
			
		||||
 | 
			
		||||
Once your changes are ready you must submit your branch as a pull request.
 | 
			
		||||
 | 
			
		||||
#### Reviews & Approvals
 | 
			
		||||
 | 
			
		||||
All pull requests must be reviewed and approved by at least one MeiliSearch team
 | 
			
		||||
member. The review process is outlined in the [Review guide](REVIEWING.md).
 | 
			
		||||
 | 
			
		||||
#### Merge Style
 | 
			
		||||
 | 
			
		||||
All pull requests are squashed and merged. We generally discourage large pull
 | 
			
		||||
requests that are over 300-500 lines of diff. If you would like to propose
 | 
			
		||||
a change that is larger we suggest coming onto our chat channel and
 | 
			
		||||
discuss it with one of our engineers. This way we can talk through the
 | 
			
		||||
solution and discuss if a change that large is even needed! This overall
 | 
			
		||||
will produce a quicker response to the change and likely produce code that
 | 
			
		||||
aligns better with our process.
 | 
			
		||||
 | 
			
		||||
### CI
 | 
			
		||||
 | 
			
		||||
Our current CI process is as follows:
 | 
			
		||||
 | 
			
		||||
WIP
 | 
			
		||||
 | 
			
		||||
## Development
 | 
			
		||||
 | 
			
		||||
### Setup
 | 
			
		||||
 | 
			
		||||
See the [MeiliSearch Docs](https://docs.meilisearch.com/guides/advanced_guides/installation.html) for how to set up a development environment.
 | 
			
		||||
 | 
			
		||||
### Testing
 | 
			
		||||
 | 
			
		||||
You can run MeiliSearch tests by... WIP
 | 
			
		||||
 | 
			
		||||
### Benchmarking
 | 
			
		||||
 | 
			
		||||
We do not yet do any benchmarking. If you'd like to make some, please get in touch!
 | 
			
		||||
 | 
			
		||||
### Profiling
 | 
			
		||||
 | 
			
		||||
WIP
 | 
			
		||||
 | 
			
		||||
## Humans
 | 
			
		||||
 | 
			
		||||
After making your change, you'll want to prepare it for MeiliSearch users
 | 
			
		||||
(mostly humans). This usually entails updating documentation and announcing
 | 
			
		||||
your feature.
 | 
			
		||||
 | 
			
		||||
### Documentation
 | 
			
		||||
 | 
			
		||||
Documentation is very important to the Vector project. All contributions that
 | 
			
		||||
alter user-facing behavior MUST include documentation changes. Please see
 | 
			
		||||
[GitHub.com/meilisearch/documentation](https://github.com/meilisearch/documentation) for more info.
 | 
			
		||||
 | 
			
		||||
### Changelog
 | 
			
		||||
 | 
			
		||||
Developers do not need to maintain the [`Changelog`](/CHANGELOG.md). This is
 | 
			
		||||
automatically generated via the `make release` command. This is made possible
 | 
			
		||||
by the use of [conventional commit](#title) titles.
 | 
			
		||||
		Reference in New Issue
	
	Block a user