开发

你想改进maproxy,找到一个bug并修复它吗?伟大的!本文档为您提供了一些有用的信息。

来源

版本可从 PyPI project page of MapProxy . 也有 an archive of all releases .

MapProxy使用 Git 作为源代码管理工具。如果您不熟悉分布式SCMS或Git,我们建议您阅读 Pro Git .

主(权威)存储库位于http://github.com/mapproxy/mapproxy

要获取存储库的副本,请调用:

git clone https://github.com/mapproxy/mapproxy

如果你想贡献一个补丁,请考虑 `creating a "fork"`_ 代替。这使我们所有人的生活更容易。

文档

这是您正在阅读的文档。原始文件可以在 doc/ . HTML版本用户文档是用 Sphinx . 要重建此文档,请安装sphinx pip install sphinx sphinx-bootstrap-theme 并打电话 python setup.py build_sphinx . 输出显示在 build/sphinx/html . 最新文档可在 http://mapproxy.org/docs/lates/ .

问题跟踪器

我们正在使用 the issue tracker at GitHub 管理所有的bug报告、增强功能和对maproxy的新功能请求。往前走 create new tickets . 随时可以发布到 mailing list 首先,如果您不确定是否真的发现了错误,或者功能请求是否在maproxy范围内。

测验

maproxy包含许多自动测试。如果你不算在 mapproxy-seed -工具和wsgi应用程序,测试覆盖率约为95%。我们希望保持这个数字很高,所以所有新的开发都应该包括一些测试。

MapProxy使用 pytest 作为测试加载器和运行程序。

pip安装pytest

要运行实际测试,请调用:

pytest

可用测试

我们区分了理论测试、单元测试和系统测试。

博士学位论文

Doctest 嵌入到源文档中,非常适合记录小型独立函数或方法。你会发现很多医生 mapproxy.core.srs 模块。

单元测试

稍微复杂一点的测试,例如需要一些设置或状态的测试,被放入 mapproxy.tests.unit . 要识别为测试,所有函数和类都应加前缀 test_Test . 有关示例,请参阅现有测试。

系统测试

我们有一些测试将启动整个maproxy应用程序,发出请求并对响应进行断言。所有XML响应都将根据此测试中的模式进行验证。这些测试位于 mapproxy.tests.system .

通信

邮寄名单

所有与maproxy相关讨论的首选媒介是我们的邮件列表maproxy@lists.osgeo.org您必须 subscribe 在你能写之前把它放到列表上。档案馆是 available here .

发展提示

你正在使用 virtualenv 如上所述 安装 对吧?

在开始对maproxy进行黑客攻击之前,应该在开发模式下安装它。在mapproxy调用的根目录中 pip install -e ./ . 而不是安装并将maproxy复制到 virtualenv ,这将只链接到源目录。如果现在启动maproxy,将使用maproxy目录中的源。如果重新启动maproxy,代码中所做的任何更改都将可用。如果您使用 mapproxy-util serve-develop 命令,源中的任何更改都将发出maproxy服务器的重新加载。

编码样式指南

maproxy通常遵循 Style Guide for Python Code . 唯一的例外是我们允许大约90个字符的行宽。新文件应自动格式化为 black .