Hi (future) collaborator! **tl;dr;** - submit pull requests to develop branch - use [conventional changelog](https://github.com/ajoslin/conventional-changelog/blob/master/conventions/angular.md) commit style messages - squash your commits - have fun **Table of Contents** - [Where to start?](#where-to-start) - [Development workflow](#development-workflow) - [Local example](#local-example) - [Documentation website](#documentation-website) - [Commit message guidelines](#commit-message-guidelines) - [Revert](#revert) - [Type](#type) - [Scope](#scope) - [Subject](#subject) - [Body](#body) - [Footer](#footer) - [Stash your commits](#stash-your-commits) - [When are issues closed?](#when-are-issues-closed) - [Releasing](#releasing) - [Releasing v1](#releasing-v1) - [Beta releases](#beta-releases) - [Hotfixes](#hotfixes) - [Releasing hotfixes](#releasing-hotfixes) - [Documentation updates](#documentation-updates) # Where to start? Have a fix or a new feature? [Search for corresponding issues](https://github.com/algolia/docsearch/issues) first then create a new one. Always check the status of the [develop branch](https://github.com/algolia/docsearch/tree/develop) for the freshest code. Always submit pull requests to the develop branch. # Development workflow ## Local example We use a simple documentation example website as a way to develop the docsearch.js library. Requirements: - [Node.js](https://nodejs.org/en/) - npm@2 ```sh npm run dev # open http://localhost:8080 ``` ## Documentation website This is the [Jekyll](https://jekyllrb.com/) instance running at https://community.algolia.com/docsearch. Requirements: - [Ruby](https://www.ruby-lang.org/en/) - [Bundler](http://bundler.io/) ```sh npm install npm run dev:docs open http://localhost:4000/docsearch/ ``` # Commit message guidelines We use [conventional changelog](https://github.com/ajoslin/conventional-changelog) to generate our changelog from our git commit messages. Here are the rules to write commit messages, they are the same than [angular/angular.js](https://github.com/angular/angular.js/blob/7c792f4cc99515ac27ed317e0e35e40940b3a400/CONTRIBUTING.md#commit-message-format). Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: ```text ():