sogo/.github/CONTRIBUTING.md

115 lines
3.6 KiB
Markdown
Raw Normal View History

2019-10-30 16:13:40 +01:00
# Contributing to SOGo
## Reporting Bugs and Suggesting Enhancements
If you encounter a possible bug with SOGo, you can access our
[bug tracking system](https://sogo.nu/bugs/).
Please make sure to respect the following guidelines when reporting a bug:
2019-10-31 16:59:38 +01:00
* verify that the bug you found is not already known or even fixed in the `master` version
* make the actual facts very clear; be precise, we need to be able to reproduce the problem
* explain your speculations, if any
* add a screenshot to the ticket if appropriate
2019-10-30 16:13:40 +01:00
## Submitting a Pull Request
Begin by reading [SOGo Developer's Guide](../Documentation/SOGoDevelopersGuide.asciidoc).
### Git Commit Guidelines
We have very precise rules over how our git commit messages can be formatted. This leads to **more
readable messages** that are easy to follow when looking through the **project history**.
It is important to note that we use the git commit messages to **generate** the
[CHANGELOG](../CHANGELOG.md) document. Improperly formatted commit messages may result in your
change not appearing in the CHANGELOG of the next release.
### Commit Message Format
Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
format that includes a **type**, a **scope** and a **subject**:
```html
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```
2019-12-11 18:41:13 +01:00
> Any line of the commit message cannot be longer than 100 characters.
2019-10-30 18:54:06 +01:00
> This allows the message to be easier to read on GitHub as well as in various Git tools.
2019-10-30 16:13:40 +01:00
2019-10-30 18:54:06 +01:00
#### Type
2019-10-30 16:13:40 +01:00
Must be one of the following:
2019-10-31 16:59:38 +01:00
* **feat**: A new feature
* **fix**: A bug fix
* **docs**: Documentation only changes
* **i18n**: Change in localizable strings
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
semi-colons, etc)
* **refactor**: A code change that neither fixes a bug nor adds a feature
* **perf**: A code change that improves performance
* **test**: Adding missing tests
* **chore**: Changes to the build and packaging process or auxiliary tools (sogo-tool,
sogo-ealarms-notify) and libraries such as documentation generation
2019-10-30 18:54:06 +01:00
#### Scope
2019-10-30 16:13:40 +01:00
The scope could be anything that helps specifying the scope (or feature) that is changing.
Examples
2019-10-31 16:59:38 +01:00
* mail
* mail(js)
* calendar(css)
* addressbook
* preferences(js)
* core
* eas
2019-10-30 16:13:40 +01:00
2019-10-30 18:54:06 +01:00
#### Subject
2019-10-30 16:13:40 +01:00
The subject contains a succinct description of the change:
* use the imperative, present tense: "change" not "changed" nor "changes"
* don't capitalize first letter
* no dot (.) at the end
2019-10-30 18:54:06 +01:00
#### Body
2019-10-30 16:13:40 +01:00
Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes"
The body should include the motivation for the change and contrast this with previous behavior.
2019-10-30 18:54:06 +01:00
#### Footer
2019-10-30 16:13:40 +01:00
The footer should contain any information about **Breaking Changes** and is also the
place to reference [Mantis](https://sogo.nu/bus/) issues that this commit **Fixes** or **Resolves**.
> Breaking Changes are intended to be highlighted in the CHANGELOG as changes that will require
2019-10-30 18:54:06 +01:00
> community users to modify their code after updating to a version that contains this commit.
2019-10-30 16:13:40 +01:00
2019-10-30 18:54:06 +01:00
#### Sample Commit messages
2019-10-30 16:13:40 +01:00
```text
fix(calendar): don't raise exception when renaming with same name
this would break Apple Calendar.app when creating a new calendar
Fixes #4813
```
```text
feat(calendar(js)): optionally expand LDAP groups in attendees editor
* add `/members` action for LDIF groups
* add button to expand invited LDAP groups
Fixes #2506
```
```text
fix(core): set default Sieve port to 4190
BREAKING CHANGE: the default port for the SOGoSieveServer configuration default is now 4190 (was
2000).
You need to explicitly set the port if you use a different port.
Closes #4826
```