贡献指南
感谢你对 PyCorrAna 项目感兴趣!本文档将帮助你了解如何为项目做出贡献。
行为准则
请阅读并遵守我们的行为准则。我们致力于提供友好、安全和欢迎的环境。
如何贡献
报告问题
如果你发现了 bug 或有功能建议,请在 GitHub Issues 中提交:
https://github.com/sidneylyzhang/pycorrana/issues
提交问题时请包含:
问题的简要描述
复现步骤
预期行为
实际行为
环境信息(Python 版本、操作系统等)
如有可能,提供最小可复现示例
提交代码
Fork 项目仓库
克隆你的 Fork:
git clone https://github.com/yourusername/pycorrana.git
cd pycorrana
创建开发环境:
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或 venv\Scripts\activate # Windows
pip install -e ".[dev]"
创建功能分支:
git checkout -b feature/your-feature-name
进行修改并添加测试
运行测试:
pytest
运行代码检查:
black src tests
flake8 src tests
mypy src
提交更改:
git add .
git commit -m "描述你的更改"
推送到 Fork:
git push origin feature/your-feature-name
创建 Pull Request
开发指南
代码风格
我们使用以下工具保持代码质量:
black - 代码格式化
flake8 - 代码检查
mypy - 类型检查
在提交代码前,请确保:
black src tests
flake8 src tests
mypy src
文档字符串
使用 NumPy 风格的文档字符串:
def function_name(param1, param2):
"""
函数的简要描述。
Parameters
----------
param1 : type
参数1的描述
param2 : type, optional
参数2的描述
Returns
-------
return_type
返回值的描述
Examples
--------
>>> function_name(1, 2)
3
"""
pass
测试
所有新功能都需要添加测试
使用 pytest 框架
测试文件放在
tests/目录测试覆盖率应保持在高水平
运行测试:
pytest
pytest --cov=pycorrana
文档
文档使用 Sphinx 构建,放在 docs/ 目录。
构建文档:
cd docs
make html
项目结构
pycorrana/
├── src/pycorrana/ # 源代码
│ ├── core/ # 核心模块
│ ├── utils/ # 工具函数
│ └── cli/ # 命令行工具
├── tests/ # 测试
├── docs/ # 文档
└── examples/ # 示例代码
发布流程
更新版本号
更新 CHANGELOG
创建 Git 标签
构建发布包
发布到 PyPI
联系方式
作者:Sidney Zhang <zly@lyzhang.me>
感谢你的贡献!