2014-11-16 22:26:08 +00:00
# Contribution Guidelines
2014-11-19 22:20:37 +00:00
## Creating issues
2014-12-05 12:51:52 +00:00
Issues should be made by using the [issue tracker ](https://github.com/cachethq/Cachet/issues ).
Things to remember:
- Be descriptive
- Be respectful of others
2014-11-19 22:20:37 +00:00
2015-01-06 09:02:15 +00:00
## Languages
2015-01-12 16:07:12 +00:00
When needing to add labels, placeholders or general text, you **must not** write directly into the source file, rather make use of the `./app/lang/` directory. Always provide the English translation and copy your English string to all other languages - making sure that the indentation and alignment of the arrays are updated.
2015-01-06 09:02:15 +00:00
2014-11-19 22:20:37 +00:00
## Coding Standards
2014-11-22 14:04:51 +00:00
Please follow existing coding standards:
2014-11-27 16:04:28 +00:00
```php
< ?php
namespace Foo\Bar\Controller;
use Foo\Bar\Bar;
2014-12-30 10:45:02 +00:00
class Foo extends Bar
{
public function baz()
{
2015-01-12 16:07:12 +00:00
if ($condition) {
2014-11-27 16:04:28 +00:00
}
}
}
2014-11-27 22:01:47 +00:00
2014-11-27 16:04:28 +00:00
```
2015-01-12 16:07:12 +00:00
- At least one newline separating `namespace` , `use` , `function` and `class` declarations.
2014-12-18 09:17:58 +00:00
- Spaces around operators, loops, conditions and control blocks:
2014-11-22 14:04:51 +00:00
```php
2015-01-12 16:07:12 +00:00
< ?php
use \Exception;
if ($condition === (10 + 2)) {
try {
throw Exception("Something went wrong...");
} catch (Exception $e) {
// Do something here.
}
2014-11-22 14:04:51 +00:00
}
```
2015-01-12 16:07:12 +00:00
- Braces on a new line following: `namespace` , `use` , `function` and `class` .
2014-11-22 14:04:51 +00:00
- Line lengths have a soft 80 limit and hard 120 length.
- PHP constants should be in lowercase; `true` , `false` and `null` .
- Defined constants should always be in uppercase.
2014-11-27 22:01:47 +00:00
- Never leave trailing spaces at the end of a line.
- Files should end with one blank line.
2015-01-12 16:07:12 +00:00
- Do not use `# Bash` style comments.
- Always add or update Docblocs to functions.
- If your pull request consists of more than two commits, you **must** squash them into one.
2014-11-27 22:01:47 +00:00
If you're still unsure, then take a look at existing code.
2014-11-29 17:58:52 -05:00
2014-12-05 12:51:52 +00:00
## Introduction into to Git and GitHub
2014-11-29 17:58:52 -05:00
2015-01-12 16:07:12 +00:00
If you are new to Git, GitHub and the whole open source software community, welcome! Here are some resources for getting started and understanding what it's all about.
2014-11-29 17:58:52 -05:00
- [Try Git ](https://try.github.io/levels/1/challenges/1 ) by Code School
- [GitHub Help ](https://help.github.com )
If you're not particularly fond of the command line, you can get one of GitHub's free GUI desktop apps:
- [GitHub for Mac ](https://github.com/blog/1510-installing-git-from-github-for-mac )
- [GitHub for Windows ](https://github.com/blog/1127-github-for-windows )
2014-12-18 09:17:58 +00:00
If you're feeling adventurous, you can become a Git & GitHub master with the [Git Path on Code School ](https://www.codeschool.com/paths/git ).
2014-11-29 17:58:52 -05:00
2014-12-05 12:51:52 +00:00
There is always the Cachet Gitter chat to ask any questions you may have:
2014-11-29 17:58:52 -05:00
[![Gitter ](https://badges.gitter.im/Join Chat.svg )](https://gitter.im/cachethq/Cachet?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge)
2015-01-24 15:16:23 +00:00
You should also make use of the [.editorconfig ](/.editorconfig ) file found within the root of the repository. It'll make sure that your editor is setup with the same file settings.