ممنون از اینکه میخواید در این پروژه مشارکت کنید! 🎉
- روی دکمه Fork در GitHub کلیک کنید
- پروژه را به اکانت خودتون کلون کنید
git checkout -b feature/amazing-feature
# یا
git checkout -b fix/bug-fix- کد تمیز و خوانا بنویسید
- از استانداردهای Python (PEP 8) پیروی کنید
- کامنتهای مناسب اضافه کنید
- تستهای مورد نیاز را بنویسید
# اجرای تستها
make test
# بررسی کد استایل
make lint
# فرمت کردن کد
make formatgit add .
git commit -m "Add: توضیح تغییرات به فارسی یا انگلیسی"نوع Commit ها:
Add:برای افزودن feature جدیدFix:برای رفع باگUpdate:برای بهروزرسانیRemove:برای حذفRefactor:برای بازنویسی کدDocs:برای تغییرات مستندات
git push origin feature/amazing-feature- به GitHub برگردید
- روی "Compare & pull request" کلیک کنید
- توضیحات کامل از تغییرات را بنویسید
- منتظر بررسی بمانید
- از PEP 8 پیروی کنید
- Maximum line length: 100 characters
- از type hints استفاده کنید
- docstrings برای توابع و کلاسها بنویسید
def my_function(param1: str, param2: int) -> bool:
"""
توضیحات تابع
Args:
param1: توضیح پارامتر اول
param2: توضیح پارامتر دوم
Returns:
توضیح خروجی
"""
return True- برای هر feature جدید، تست بنویسید
- تستهای موجود را بررسی کنید
- Coverage را حفظ کنید
def test_my_feature():
"""Test my amazing feature"""
result = my_function("test", 42)
assert result is True# تمام تستها
pytest tests/
# با coverage
pytest tests/ --cov=app
# یک فایل خاص
pytest tests/test_api.py- مستندات را بهروز نگه دارید
- اگر API جدید اضافه میکنید، در README توضیح دهید
- docstrings و کامنتها را فراموش نکنید
- برای باگها، Issue باز کنید
- قبل از باز کردن Issue، جستجو کنید
- اطلاعات کامل و مثال ارائه دهید
- صبور باشید، ممکن است زمان ببرد
- به feedback ها پاسخ دهید
- تغییرات درخواستی را اعمال کنید
❌ کد تست نشده push نکنید ❌ کد بدون docstring ننویسید ❌ به main branch مستقیماً push نکنید ❌ sensitive data (API keys, passwords) را commit نکنید
ممنون از مشارکت شما! 🙏
اگر سوالی دارید، در Issues بپرسید.