pycsw的贡献¶
Pycsw 项目是开源的,欢迎贡献 (bug 报告、 bug 修复、 代码增强功能等)。 此篇文章将概述pycsw 的一些作用。 pycsw community ,就是提供一些建议,应该如何连接和参与 pycsw 社区,并如何更好地发展。
以下是几项pycsw做出的贡献:
- GitHub 提交修改的权限
- GitHub 的请求
贡献和许可¶
贡献者应当符合 许可证 准则。
GitHub 提交修改的权限¶
- 建议开发人员提供 GitHub 的提交访问权限,此权限应通过电子邮件发送到pycsw-devel mailing list。 希望 pycsw 开发团队可以允许。 应由项目管理员处添加访问者
- 应以同样的方式解除提交访问权限
- 每个提交的用户必须发送电子邮件到 pycsw 邮件列表中,前得是同意许可证准则 (见 贡献和许可协议模板 )。只需一次即可
- 每个提交的用户会显示在 https://github.com/geopython/pycsw/blob/master/COMMITTERS.txt 列表中
GitHub 的请求¶
- pull 请求可以提供协议许可准则,在pull请求时可作为文本,也可以电邮至 pycsw 邮件列表 (见 贡献和许可协议模板<#contributions-and-licensing-agreement-template> )。 这只需要在第一次Pull请求时使用。后续的请求不需要此步骤
- 如果有重大贡献或贡献者想要申请版权专利,pull请求可以将源代码设置权限
- 所有贡献者均在 https://github.com/geopython/pycsw/graphs/contributors 列表中
- 若无人声明版权所属,在默认情况下,会指定分配给主要的版权持有人,在 https://github.com/geopython/pycsw/blob/master/LICENSE.txt 中强调指出
贡献和许可协议模板¶
大家好,我愿意在pycsw贡献 <feature X|bugfix Y|docs|something else>。我确认,我对pycsw的贡献将与pycsw 许可指南兼容。
说明文件¶
- 文档在
docs/
中管理,以 reStructuredText 格式 - Sphinx 作用是生成文档
- 在RST上的标记和语法中见 reStructuredText Primer 。
漏洞¶
pycsw 的 问题跟踪器 ,是报告错误或要求改进的地方。当您提交出现的错误时,一定要指定您正在使用的pycsw版本,相应的组件,如何操作显示的错误信息,以及Python和平台的版本。为方便起见,你可以运行 pycsw-admin.py -c get_sysprof
,并将输出信息复制、粘贴到您的问题中。
分叉pycsw¶
通过 GitHub pull 请求后,贡献是最容易管理的。 'Fork <https: github.com/geopython/pycsw/fork>' _ pycsw 放到你自己 GitHub 存储库中,这样可以轻松地提交你的工作,并提交pull请求。
开发¶
GitHub 提交指南¶
- 增强和 bug 修复应该等同于 GitHub 问题
- 提交时粒数应该足够量,为方便其他开发人员了解自然/变化的影响(S)
- 如果是一些琐碎的提交,就像是
[ci skip]
也是做为提交消息的一部分,则不需要运行 Travis CI - 若是重大事件的 Git 提交应与 GitHub 问题部门取得联系。 以文档格式是可以修改的,但修改文档的tickets则是不必公开的
- Git 提交应包括更改说明
- Git 提交应在Git 提交日志中写入 GitHub 问题编号 (例如
#1234
) - 在提交之前,所有应改进的或错误修改的必须通过所有 OGC引用 测试
- 在提交之前,所有应改进的或错误修改的必须通过所有 测试 测试
- pycsw加强的部分请参考 测试 ,应附有像CSW的 请求 XML
编码准则¶
- 写法应是pycsw,而不是 PyCSW,pyCSW,Pycsw
- 应是 PEP 8 公约代码
- 应使用所有 pylint 默认设置的
pep8
与 pylint,运行除了C0111
的源代码。sbin/pycsw-pylint.sh
是为了方便起见 - 除了OGC
ExceptionReport
XML运行方式为个别例外,通常会指定合适的 '定位器 '和' 代码 ' 参数 - pycsw wiki 文档的 developer tasks 类似于发布文档,测试等。
提交pull请求¶
这一节将指导您操作pycsw的步骤。 本节假定在您自己GitHub资料库中,有分叉的 pycsw。
# setup a virtualenv
virtualenv mypycsw && cd mypycsw
. ./bin/activate
# clone the repository locally
git clone git@github.com:USERNAME/pycsw.git
cd pycsw
pip install -e . && pip install -r requirements-standalone.txt
# add the main pycsw master branch to keep up to date with upstream changes
git remote add upstream https://github.com/geopython/pycsw.git
git pull upstream master
# create a local branch off master
# The name of the branch should include the issue number if it exists
git branch issue-72
git checkout issue-72
#
# make code/doc changes
#
git commit -am 'fix xyz (#72)'
git push origin issue-72
您的更改在 GitHub自己的 pycsw 存储库为可见状态。 现在你要创建pull请求。Pycsw的团队成员将审查你的pull请求,若您有需要,团队成员会提供给您反馈建议。如果需要改动,要另立分支,并push以上步骤 (pull请求中所有更改的分支)。
然后pycsw 团队将合并pull请求。 你可以删除掉你本地的分支(在 GitHub),更新您自己的库,以确保您的 pycsw 存储库与pycsw总站是同步的:
git checkout master
git pull upstream master