3.5 KiB
3.5 KiB
貢獻指南
感謝您對 ImageZoom 專案的關注!我們歡迎所有形式的貢獻。
如何貢獻
報告 Bug
如果您發現了 Bug,請:
- 檢查 Issues 是否已經有人報告過
- 如果沒有,請建立新的 Issue,並包含:
- 詳細的 Bug 描述
- 重現步驟
- 預期行為和實際行為
- 作業系統和瀏覽器版本
- 錯誤訊息或截圖
功能請求
如果您有新的功能想法:
- 檢查現有的 Issues 和 Pull Requests
- 建立新的 Issue,描述:
- 功能需求
- 使用場景
- 預期效果
程式碼貢獻
開發環境設定
-
Fork 專案
git clone https://github.com/your-username/imagezoom.git cd imagezoom
-
建立虛擬環境
python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows
-
安裝依賴
pip install -r requirements.txt cd frontend && npm install
開發流程
-
建立功能分支
git checkout -b feature/your-feature-name
-
開發功能
- 遵循現有的程式碼風格
- 撰寫測試(如果適用)
- 確保所有測試通過
-
提交變更
git add . git commit -m "feat: 新增功能描述"
-
推送到分支
git push origin feature/your-feature-name
-
建立 Pull Request
- 前往 GitHub 建立 Pull Request
- 填寫 PR 模板
- 等待審查
提交訊息規範
我們使用 Conventional Commits 規範:
feat:
新功能fix:
Bug 修復docs:
文件更新style:
程式碼格式調整refactor:
重構test:
測試相關chore:
建置工具或輔助工具的變動
範例:
feat: 新增圖片縮放功能
fix: 修復上傳檔案大小限制問題
docs: 更新 API 文件
程式碼風格
Python (後端)
- 遵循 PEP 8 規範
- 使用 4 個空格縮排
- 行長度限制在 79 字元內
- 使用有意義的變數和函數名稱
JavaScript (前端)
- 使用 ESLint 和 Prettier
- 遵循 React 最佳實踐
- 使用有意義的組件和函數名稱
測試
後端測試
# 執行測試
python -m pytest
# 執行測試並顯示覆蓋率
python -m pytest --cov=app
前端測試
cd frontend
npm test
Pull Request 審查流程
-
自動檢查
- CI/CD 流程會自動執行測試
- 程式碼風格檢查
- 安全性掃描
-
人工審查
- 至少需要一位維護者審查
- 可能需要修改或改進
-
合併
- 審查通過後會合併到主分支
- 會自動部署到測試環境
行為準則
我們致力於建立一個友善和包容的社群環境:
- 尊重所有貢獻者
- 使用友善和建設性的語言
- 接受建設性的批評
- 專注於問題本身,而非個人
聯絡方式
如果您有任何問題或建議:
- 建立 Issue
- 發送 Email 至 [your-email@example.com]
- 加入我們的 Discord 社群
致謝
感謝所有為這個專案做出貢獻的開發者!
注意: 請確保您同意本專案的 LICENSE 條款。