SpikeCV 开源贡献指南

感谢您对 SpikeCV 项目的关注!您的每一份贡献都将推动脉冲视觉的发展

跟随这份指南,开始您的开源贡献之旅!

“一起来吧,去触发一场蝴蝶效应。”

SpikeCV 团队

第一步


Fork & Clone

请先 Fork 我们的 GitHub 仓库 并 Clone 到本地。

创建分支

基于 main 分支创建您的功能分支。
命名格式示范:feature/algorithm-name

配置开发环境

根据 README.md 配置环境和下载依赖。

第二步


算法开发

SpikeCV/spkProc/ 下选择合适的子模块(如 filters, reconstruction 等)创建您的算法文件 your_algorithm.py

  • 类与接口:实现一个算法类 YourAlgorithm,一般还会实现例如 __init__(参数初始化) 和 process(算法主体)方法。
  • 代码风格:遵循 PEP 8,添加必要的注释、文档字符串、类型提示等。
  • 进度显示:推荐使用 tqdm 库显示算法处理进度。

应用示例

SpikeCV/examples/ 添加 test_your_algorithm.py,展示从数据加载到结果输出的完整调用流程,帮助用户理解算法的使用方法。

算法文档

完整的贡献不仅仅是代码,我们使用 RST 文件管理文档:

  • 核心文档:更新 docs/source/核心操作.rst,添加您算法的原理及参数说明。
  • 示例文档:更新 docs/source/使用例子.rst,描述您的应用示例和预期结果。
  • 多媒体资源:您可以在 docs/source/media/ 目录下添加结果图片/GIF并在文档中引用。

我们在 CONTRIBUTING.md 中提供了文档的参考模板。

之后,您的文档会被整合至 SpikeCV 官方文档中。

添加依赖

如果您需要添加新的依赖,请在 pyproject.toml 中配置可选依赖:

[project.optional-dependencies]
your_deps_name  = [
    "package>=1.0.0",
    "package2>=2.0.0",
]
# 安装特定依赖:
pip install -e ".[your_deps_name]"
# 新增依赖后检查是否有冲突
pip check

如果依赖版本冲突且难以解决,请参考 依赖管理指南

依赖分类

SpikeCV 将依赖严格分为两类:

  • 核心依赖(如 torch, numpy):影响所有算法,修改需极其谨慎。
  • 可选依赖:特定算法类型(如 tracking)或功能模块需要的库,推荐使用此方式添加。

金科玉律

添加依赖时,请遵循最小化依赖原则:

  • 只添加主要依赖(您 import 的库),无须添加传递依赖
  • 优先使用已有的核心依赖,避免重复依赖(功能相似的包)

第三步


提交 Pull Request

完成开发并 commit 在本地后,按 CONTRIBUTING.md指引 检查和记录您的环境依赖, 然后发起 PR 提交至 Zyj061/SpikeCVmain 分支,并使用我们提供的 PR 描述模板 描述更改内容。

测试与审查

代码会先通过所有 CI/CD 流水线检查,然后维护者将审查代码质量、文档完整性及兼容性。 维护者可能在 PR 中添加评论,提供具体的修改建议。

代码合并

当 PR 通过所有检查和审查后,维护者会将您的代码合并到 main 分支,感谢您的贡献!

您可以参考我们已合并的一个 PR 案例: SNNTracker

准备好成为 SpikeCV 的贡献者了吗?

详细的贡献流程、环境配置、模板代码及更高级的开发建议,请确认阅读

CONTRIBUTING.md
编辑: 许诗雅  |  校对: 郑雅菁