<!-- review: finished -->

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

# 开发

Angie 是一个开源项目,
欢迎所有贡献者。

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

## 源代码

您可以从我们的公共仓库克隆 Angie 源代码:
[Mercurial](https://hg.angie.software/angie),
[Git](https://git.angie.software/web-server/angie)。

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

## 编码风格

您的更改应与 Angie 其余代码保持一致;
[编码约定](https://cn.angie.software//angie/docs/developer_guide.md#developer-guide) 是一个很好的起点。

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

### 提交消息

从历史上看,提交日志使用英语维护。

以一行总结所做的工作开始。
它可以有一个前缀,提交日志将其用于受影响的代码部分。
总结最多可以有 67 个字符,
后面可以跟一个空行和更多详细信息。

一个好的消息会说明是什么导致了更改、对此做了什么,
以及现在的情况如何:

```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
```

可能会被忽略的细节:

- 总结以句号结尾,并以大写字母开头。
- 如果使用前缀,则后面跟小写字母。
- 双空格分隔单行内的句子。

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

## 最终检查

- 尽最大努力验证更改在  *所有* 目标平台上都能正常工作。
- 对于每个平台,运行测试套件以确保没有回归:
  ```sh
  $ cd tests
  $ prove .
  ```

  详细信息请参阅 `tests/README` 文件。
- 确保您对 [法律条款](https://cn.angie.software//legal/index.md#legal) 感到满意。

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

## 提交贡献

要提交补丁,请在我们的
[GitHub 镜像](https://github.com/webserver-llc/angie/) 上创建拉取请求。

如有问题和建议,请通过
[GitHub Issues](https://github.com/webserver-llc/angie/issues) 联系开发人员。
