七足机器人服务器端Mercurial钩子、扩展等。
项目描述
Heptapod服务器的Python组件
Heptapod 是一个友好的GitLab分支,引入了Mercurial兼容性。它是一个由多个组件组成、涉及多种编程语言的系统,尤其是Ruby、Go和Python。
本包的目的是集中管理所有尚未(还)包含在其他任何更通用的Python项目(Mercurial、其扩展、通用库等)中的Heptapod Python代码,并保持它们处于高质量状态。
范围和版本策略
这个Python项目不是为其他任何事情而设计的,而是作为Heptapod 服务器 的一个组件,也不是Heptapod的全部,而只是偶然用Python编写的部分。
与其他Heptapod组件的相互依赖性非常紧密,以至于Heptapod发布的要求文件通常完全指定了此项目。从版本1.0.0(针对Heptapod 0.17)开始,我们计划遵循 semver 规则(使用PEP 440进行开发版本)。
从版本0.13.0开始完全支持Python 3,已用3.7和3.8进行测试。
Python 2 的支持已被弃用,自版本 1.0.0 以来。目前只有 testhelpers
子包在两个 Python 版本中完全支持,因为它可以用于更通用的 Mercurial 相关测试。当我们为 testhelpers
找到新的家园时,将完全停止对 Python 2 的支持。
开发指南
启动测试
我们使用 pytest
进行单元和集成测试,通常在虚拟环境中运行。
python 3 -m venv venv
source venv/bin/activate
./run-all-tests
我们有一项 100% 的覆盖率政策,由 run-all-tests
执行,因此由持续集成执行。
在我们的持续集成中,完整运行大约需要 20 秒,通常在开发者工作站上会更少。
工作流程规则
我们遵循 Heptapod 默认工作流程。请创建一个主题,并提交合并请求。
合并请求管道必须通过,并且覆盖率必须保持在 100%,才能在技术上被认为是可接受的 - 我们可以帮助实现这些结果,但这不是提交合并请求和收集反馈的强制性要求。
内容
仓库的 WSGI 服务
由 heptapod.wsgi
提供(目前还不完全独立)
Mercurial 钩子
heptapod.hooks.check_publish.check_publish
:关于推送中公共更改集的权限规则。heptapod.hooks.git_sync.mirror
:同步到内部辅助 Git 仓库以在 GitLab 中展示。heptapod.hooks.dev_util
:用于调试和开发的实用钩子。
Mercurial 扩展
heptapod
扩展将提供特定的命令以及所有应该使用完全访问 Mercurial 内部结构的操作。
项目详情
heptapod-4.7.7.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db78185bd0bc4983e919116449cc7825dd37af7ffccec5319440c8b586dbd8a8 |
|
MD5 | 905af88d72711f5d6c2ca07f597f178e |
|
BLAKE2b-256 | ce944d8883da4cb55574ac40ffcfbb89d64831a5e5c626b631a42fd74908e862 |