贡献指南

感谢你对 PyCorrAna 项目感兴趣!本文档将帮助你了解如何为项目做出贡献。

行为准则

请阅读并遵守我们的行为准则。我们致力于提供友好、安全和欢迎的环境。

如何贡献

报告问题

如果你发现了 bug 或有功能建议,请在 GitHub Issues 中提交:

https://github.com/sidneylyzhang/pycorrana/issues

提交问题时请包含:

  1. 问题的简要描述

  2. 复现步骤

  3. 预期行为

  4. 实际行为

  5. 环境信息(Python 版本、操作系统等)

  6. 如有可能,提供最小可复现示例

提交代码

  1. Fork 项目仓库

  2. 克隆你的 Fork:

git clone https://github.com/yourusername/pycorrana.git
cd pycorrana
  1. 创建开发环境:

python -m venv venv
source venv/bin/activate  # Linux/macOS
# 或 venv\Scripts\activate  # Windows
pip install -e ".[dev]"
  1. 创建功能分支:

git checkout -b feature/your-feature-name
  1. 进行修改并添加测试

  2. 运行测试:

pytest
  1. 运行代码检查:

black src tests
flake8 src tests
mypy src
  1. 提交更改:

git add .
git commit -m "描述你的更改"
  1. 推送到 Fork:

git push origin feature/your-feature-name
  1. 创建 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/          # 示例代码

发布流程

  1. 更新版本号

  2. 更新 CHANGELOG

  3. 创建 Git 标签

  4. 构建发布包

  5. 发布到 PyPI

联系方式

感谢你的贡献!