感谢您考虑为 VibeNotification 项目做出贡献!本指南将帮助您了解如何参与项目开发。
# 1. Fork 项目
# 2. 克隆您的 fork
git clone https://github.com/yourusername/VibeNotification.git
cd VibeNotification
# 3. 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows
# 4. 安装开发依赖
pip install -e ".[dev]"# 从 main 分支创建功能分支
git checkout -b feature/your-feature-name
# 或修复 bug 的分支
git checkout -b fix/issue-description- 编写代码
- 添加测试
- 更新文档
- 确保代码通过所有检查
# 添加更改
git add .
# 提交(使用 Conventional Commits 格式)
git commit -m "feat: 添加新功能"
# 或
git commit -m "fix: 修复某个问题"
# 或
git commit -m "docs: 更新文档"git push origin feature/your-feature-name在 GitHub 上创建 Pull Request,描述您的更改。
我们使用以下工具确保代码质量:
# 格式化代码
black src/ tests/
isort src/ tests/
# 检查代码质量
flake8 src/ tests/
mypy src/使用 Conventional Commits 格式:
feat:新功能fix:bug 修复docs:文档更新style:代码格式(不影响功能)refactor:代码重构test:测试相关chore:构建过程或辅助工具
示例:
feat: 添加 Windows 通知支持
fix: 修复 Linux 声音播放问题
docs: 更新安装说明
- 新功能必须包含测试
- 修复 bug 时添加回归测试
- 确保所有测试通过
# 运行测试
pytest tests/
# 带覆盖率
pytest --cov=src tests/- 检查是否已有相关 issue
- 创建新 issue,包含:
- 清晰的问题描述
- 复现步骤
- 期望行为
- 实际行为
- 环境信息(系统、Python 版本等)
- 错误日志
- 检查是否已有相关讨论
- 创建新 issue,包含:
- 功能描述
- 使用场景
- 可能的实现方案
- 相关参考
VibeNotification/
├── src/ # 源代码
│ └── vibe_notification.py
├── tests/ # 测试代码
├── docs/ # 文档
├── examples/ # 示例代码
├── .github/ # GitHub 配置
│ └── workflows/ # CI/CD 工作流
└── 配置文件
VS Code:
{
"python.formatting.provider": "black",
"python.formatting.blackArgs": ["--line-length", "88"],
"python.sortImports.args": ["--profile", "black"],
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}PyCharm:
- 启用 Black 和 isort 插件
- 配置自动格式化
# 在代码中添加调试日志
import logging
logger = logging.getLogger(__name__)
logger.debug("调试信息")- README.md: 项目概述和快速开始
- docs/: 详细文档
- 代码中的 docstring
- 使用 Markdown 格式
- 代码示例使用正确的语言标记
- 保持链接有效
我们致力于为所有贡献者提供友好、尊重的环境。
- 使用友好和包容的语言
- 尊重不同的观点和经验
- 优雅地接受建设性批评
- 关注对社区最有利的事情
- 对其他社区成员表示同理心
- 使用性化语言或图像
- 挑衅、侮辱/贬损评论
- 公开或私下骚扰
- 未经明确许可发布他人的私人信息
- 其他在专业环境中不适当的行为
通过贡献代码,您同意您的贡献将在项目的 MIT 许可证下授权。
感谢所有贡献者!您的参与使这个项目变得更好。
有问题?请在 issue 中讨论或联系维护者。