# Contributing As Eucalypt is an open source library, any contributions from the community are greatly appreciated. This document details the guidelines for making contributions to Eucalypt. ## Reporting issues Prior to reporting an issue, please ensure: - [ ] You have used the search utility provided on GitHub issues to look for similar issues. - [ ] You have checked the documentation (for the version of Eucalypt you are using). - [ ] You are using the latest version of Eucalypt (if possible). Issues may be one of four different types listed below. Please use the respective [issue template](/.github/ISSUE_TEMPLATE) when creating an issue: - **Error or warning** ([template](/.github/ISSUE_TEMPLATE/error-or-warning.md))<br>For reporting an error or warning generated by Eucalypt. - **Unexpected or incorrect functionality** ([template](/.github/ISSUE_TEMPLATE/unexpected.md))<br>For reporting something that doesn't seem to be working correctly or is unexpected. - **Improvement to an existing feature** ([template](/.github/ISSUE_TEMPLATE/improvement.md))<br>For suggesting an improvement to a feature already offered by Eucalypt. - **Suggesting a new feature** ([template](/.github/ISSUE_TEMPLATE/new-feature.md))<br>For proposing a new feature to Eucalypt that would be beneficial. ## Making changes to Eucalypt - **Add specs**: Your pull request won't be accepted if it doesn't have any specs. - **Document any change in behaviour**: Make sure the README, GitBook documentation and all other relevant documentation is kept up-to-date. - **Create topic branches**: Will not pull from your master branch! - **One pull request per feature**: If you wish to add more than one new feature, please make multiple pull requests. - **Meaningful commit messages**: Make sure each individual commit in your pull request has a meaningful message. - **De-clutter commit history**: If you had to make multiple intermediate commits while developing, please squash them before making your pull request. ### Branch naming conventions Branch names must be of the form `type/short-phrase-or-description`, where `type` is either a: - `patch`: Making a change to an existing feature. - `add`: Adding a new feature. - `rm`: Removal of an existing feature. Branches should typically feature only one main change. If making multiple unrelated changes, please create separate branches and open separate pull requests. ### Making pull requests **Ensure you use the [pull request template](/.github/PULL_REQUEST_TEMPLATE.md).** Pull request titles must be of the form `[type:specifier] Pull request title`, where `type` is the same as the branch type (read above). The `specifier` should be one of: - `lib`: Changes to any code in the `lib` directory. - `gem`: Changes to any gem related things, such as `eucalypt.gemspec`, `Rakefile` or dependencies. - `ci`: Changes to `.travis.yml` or `.coveralls.yml`. - `specs`: Changes to any code in the `specs` directory. - `git`: Changes to any Git-related code, such as `.gitignore`. Continuous integration (Travis CI) builds must pass in order for your pull request to be merged. ## License By contributing, you agree that your contributions will be licensed under the same [MIT License](/LICENSE) that covers this repository.