pycsw的贡献

Pycsw 项目是开源的,欢迎贡献 (bug 报告、 bug 修复、 代码增强功能等)。 此篇文章将概述pycsw 的一些作用。 pycsw community ,就是提供一些建议,应该如何连接和参与 pycsw 社区,并如何更好地发展。

以下是几项pycsw做出的贡献:

  • GitHub 提交修改的权限
  • GitHub 的请求

行为准则

此项目的贡献者是遵守 OSGeo行为守则 .

贡献和许可

贡献者应当符合 许可证 准则。

GitHub 提交修改的权限

  • 建议开发人员提供 GitHub 的提交访问权限,此权限应通过电子邮件发送到pycsw-devel mailing list。 希望 pycsw 开发团队可以允许。 应由项目管理员处添加访问者
  • 应以同样的方式解除提交访问权限
  • 每个提交的用户必须发送电子邮件到 pycsw 邮件列表中,前得是同意许可证准则 (见 贡献和许可协议模板 )。只需一次即可
  • 每个提交的用户会显示在 https://github.com/geopython/pycsw/blob/master/COMMITTERS.txt 列表中

GitHub 的请求

贡献和许可协议模板

大家好,我愿意在pycsw贡献 <feature X|bugfix Y|docs|something else>。我确认,我对pycsw的贡献将与pycsw 许可指南兼容。

GitHub

代码,测试,文档,wiki和问题都在GitHub上进行追踪管理,以确保每个人均有一个自己的 GitHub的账户 .

代码概览

  • 在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 默认设置的 pep8pylint,运行除了 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