感谢你对 fastapi-keystone 的关注和贡献!我们欢迎所有形式的贡献,包括代码、文档、测试、issue 反馈等。
- Fork 本仓库 到你的 GitHub 账号
- 新建分支(建议使用
feature/xxx、fix/xxx、docs/xxx等命名) - 开发与测试,确保本地所有测试通过
- 提交 Pull Request 到主仓库的
main分支 - 等待 Maintainer 审核与合并
- 欢迎通过 GitHub Issues 提交 bug、建议、需求等
- 请尽量提供详细的描述、重现步骤、环境信息、截图/日志等
- 遵循 PEP8 代码风格
- 强制类型提示(Type Hints)
- 公共函数/类需添加 docstring
- 复杂逻辑需有单行注释
- 变量/函数:
snake_case,类名:PascalCase,常量:UPPER_SNAKE_CASE - 使用
black自动格式化,ruff/isort静态检查 - 依赖管理统一用
uv,不要直接用pip
- 所有新功能/修复必须有对应的单元测试(
tests/目录,test_*.py文件) - 测试需覆盖 JSON/YAML 配置加载场景
- 推荐使用
pytest、pytest-asyncio、pytest-cov - 本地运行:
uv run pytest uv run pytest --cov=src
- 重要变更需同步更新
README.md、docs/、示例代码 - 配置相关需同时维护
config.example.json和config.example.yaml - 文档和示例中需给出 YAML 配置片段
- Python >= 3.13
- 依赖管理:
uv sync uv pip install pyyaml # 如需手动安装 - 新增依赖请同步更新
pyproject.toml并在 PR 说明中注明
- 通过 GitHub Discussions 参与社区讨论
- 安全问题请参考 SECURITY.md
- 也可通过 issue 或邮箱与 Maintainer 联系
- 尊重他人,友善交流
- 遵守开源协议(MIT License)
- 共同维护高质量、可持续的开源社区
再次感谢你的贡献!让我们一起让 fastapi-keystone 更好!