Before you contribute, please take a look at the Community Guidelines.
Thanks for your interest in contributing to the Solidus project!
When filing an issue on the Solidus project, please provide these details:
- A comprehensive list of steps to reproduce the issue
- What you're expecting to happen compared with what's actually happening
- Your application's complete
Gemfile
, andGemfile.lock
as text in a Gist (not as an image) - Any relevant stack traces ("Full trace" preferred)
In 99% of cases, this information is enough to determine the cause and solution to the problem that is being described.
Please remember to format code using triple backticks (`) so that it is neatly formatted when the issue is posted.
Any issue that is open for 14 days without actionable information or activity will be marked as "stalled" and then closed. Stalled issues can be re-opened if the information requested is provided.
We gladly accept pull requests to add documentation, fix bugs and, in some circumstances, add new features to Solidus.
Here's a quick guide to opening a PR:
-
Fork the repo.
-
Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate:
$ bin/build
-
Create new branch then make changes and add tests for your changes. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need tests!
-
Push to your fork and submit a pull request. If the changes will apply cleanly to the latest stable branches and master branch, you will only need to submit one pull request.
-
If a PR does not apply cleanly to all of its targeted branches - for example, slighty different fixes for mulitple versions - then multiple PRs are necessary.
At this point you're waiting on us. We like to at least comment on, if not accept, pull requests within three business days (and, typically, one business day). We may suggest some changes or improvements or alternatives.
Typically, Pull Requests can be merged when they have met the following criteria:
- Open for at least 24 hours
- Passing CI
- 2 or more Core Team approvals
Though in some cases the Core Team may choose not to merge a PR that meets these requirements.
- The specs must pass for each individual commit
- Each individual commit should make sense by itself as far as possible
- Breaking up a large change into smaller (coherent) commits is encouraged
- We do not currently have a policy about whether or not to force-push while people are reviewing your pull request
- Good commit messages are also encouraged. Here are some resources on writing good commit messages:
Some things that will increase the chance that your pull request is accepted, taken straight from the Ruby on Rails guide:
- Use Rails idioms and helpers
- Include tests that fail without your code, and pass with it
- Update the documentation, the surrounding one, examples elsewhere, guides, whatever is affected by your contribution
This is a Rails-based framework. See the Rails coding conventions.
And in case we didn't emphasize it enough: we love tests!