silverstripe-framework/docs/en/05_Contributing/index.md

39 lines
2.5 KiB
Markdown

# Contributing
Any open source product is only as good as the community behind it. You can
participate by sharing code, ideas, or simply helping others. No matter what
your skill level is, every contribution counts.
See our [high level overview on silverstripe.org](http://silverstripe.org/contributing-to-silverstripe)
on how you can help out.
Or, for more detailed guidance, read one of the following pages:
* [Sharing your **opinion** and raising **issues**](issues)
* [Providing **code**, whether it's creating a feature or fixing a bug](code)
* [Writing and translating **documentation**](documentation)
* [**Translating** user-interface elements](translation)
## House Rules for Everybody
* Ask questions on the [forum](http://silverstripe.org/forum), and stick to more high-level discussions on the [core mailinglist](https://groups.google.com/forum/#!forum/silverstripe-dev)
* Make sure you know how to [raise good bug reports](/misc/contributing/issues)
* Everybody can contribute to SilverStripe! If you do, ensure you can [submit solid pull requests](/misc/contributing/code)
## House Rules for the Core Team
The "core team" consists of everybody with write permissions to our codebase.
With great power comes great responsibility, so we have agreed on certain expectations:
* Be friendly, encouraging and constructive towards other community members
* Frequently review pull requests and new issues (in particular, respond quickly to @mentions)
* Treat issues according to our [issue guidelines](/misc/contributing/issues)
* Don't commit directly to core, raise pull requests instead (except trivial fixes)
* Only merge code you have tested and fully understand. If in doubt, ask for a second opinion.
* Ensure contributions have appropriate [test coverage](/topics/testing), are documented, and pass our [coding conventions](/misc/coding-conventions)
* Keep the codebase "releasable" at all times (check our [release process](/misc/release-process))
* API changes and non-trivial features should not be merged into release branches.
* API changes on master should not be merged until they have the buy-in of at least two core committers (or better, through the [core mailinglist](https://groups.google.com/forum/#!forum/silverstripe-dev))
* Be inclusive. Ensure a wide range of SilverStripe developers can obtain an understanding of your code and docs, and you're not the only one who can maintain it.
* Avoid `git push --force`, and be careful with your git remotes (no accidental pushes)
* Use your own forks to create feature branches