<!-- review: finished -->

<a id="development"></a>

# Development

Angie is an open-source project
that welcomes all contributors.

<a id="source-code"></a>

## Source Code

You can clone Angie source code from our public repositories:
[Mercurial](https://hg.angie.software/angie),
[Git](https://git.angie.software/web-server/angie).

<a id="coding-style"></a>

## Coding Style

Your changes should be consistent with the rest of Angie's code;
the [coding conventions](https://en.angie.software//angie/docs/developer_guide.md#developer-guide) are a good starting point.

<a id="commit-messages"></a>

### Commit Messages

Historically, the commit log is maintained in English.

Start with a one-line summary of what was done.
It may have a prefix that the commit log uses for the affected code portion.
The summary can be up to 67 characters long
and may be followed by a blank line and more details.

A good message tells what caused the change, what was done about it,
and what the situation is now:

```none
API: bad things removed, good things added.

As explained elsewhere[1], the original API was bad because stuff;
this change was introduced to improve that aspect locally.

Levels of goodness have been implemented to mitigate the badness;
this is now the preferred way to work.  Also, the badness is gone.

[1] https://example.com
```

Details that may otherwise go unnoticed:

- Summary ends with a period and starts with a capital letter.
- If a prefix is used, it is followed by a lowercase letter.
- Double whitespace separates sentences within a single line.

<a id="final-checks"></a>

## Final Checks

- Do your best to verify that the changes work on *all* target platforms.
- For each platform, run the test suite to make sure there's no regression:
  ```sh
  $ cd tests
  $ prove .
  ```

  See the `tests/README` file for details.
- Make sure you're comfortable with the [legal terms](https://en.angie.software//legal/index.md#legal).

<a id="submitting-contributions"></a>

## Submitting Contributions

To submit a patch, create a pull request on our
[GitHub mirror](https://github.com/webserver-llc/angie/).

For questions and suggestions, please contact the developers via
[GitHub Issues](https://github.com/webserver-llc/angie/issues).
