Machinery is an open project and welcomes contributions. We have written these guidelines so you know how the project works, and to make contributions smooth and fun for everybody involved.
There are two main forms of contribution: reporting bugs and performing code changes.
If you find a problem with Machinery, report it using GitHub issues. When creating a bug report, make sure you include:
- Steps to reproduce the bug
- What you expected to happen
- What happened instead
This information will help to determine the cause and prepare a fix as fast as possible.
Code contributions come in various forms and sizes, from simple bug fixes to significant refactorings and implementation of new features. Before making any non-trivial change, get in touch with Machinery developers first. This can prevent wasted effort later.
To send your code change, use GitHub pull requests. The workflow is as follows:
-
Fork the project.
-
Create a topic branch based on
master
. -
Implement your change, including tests and documentation. Make sure you adhere to the Ruby style guide.
-
Run tests using
rake spec
to make sure your change didn't break anything. -
Publish the branch and create a pull request.
-
Machinery developers will review your change and possibly point out issues. Adapt the code under their guidance until all issues are resolved.
-
Finally, the pull request will get merged or rejected.
See also GitHub's guide on contributing.
If you want to do multiple unrelated changes, use separate branches and pull requests.
Each commit in the pull request should do only one thing, which is clearly described by its commit message. Especially avoid mixing formatting changes and functional changes into one commit. When writing commit messages, adhere to widely used conventions.
If you have any question, feel free to ask on the Machinery mailing list. We'll do our best to provide a timely and accurate answer.