مشارکت¶
راه انداختن کد¶
git clone https://github.com/amirAI-dot/django-clearance.git
cd django-clearance
python -m pip install nox
همه چیز از راه nox اجرا میشود، تا هر سیستمی - و CI - همان چیز را اجرا کند:
| session | چه چیزی را نگه میدارد |
|---|---|
nox -s lint |
ruff، کد و قالببندی آن |
nox -s types |
mypy، سختگیرانه |
nox -s tests |
تستها، روی همهی نسخههای پشتیبانیشدهی پایتون و Django، با پوشش ۱۰۰٪ |
nox -s browser |
صفحههای پنل ادمین در یک مرورگر واقعی |
nox -s messages |
catalogueهای فارسی همهی رشتههای علامتخورده را دارند، و نه بیشتر |
nox -s package |
بسته ساخته و نصب میشود |
nox -s docs |
این سایت بدون هیچ هشداری ساخته میشود |
nox -s screenshots |
عکسهای پنل ادمین، دوباره گرفته میشوند |
یک ترکیب از تستها، موقع کار:
قراردادها¶
- کد فقط به انگلیسی. هر پیامی که کسی میخواند برای ترجمه علامت میخورد؛ فارسی در
catalogueهاست. رشتهی فارسی در یک تست با escapeهای
\uنوشته میشود - یک تست مطمئن میشود کد فقط ASCII است. - هر تست به اسم رفتاری است که نگه میدارد - اینکه اگر رد شود در دنیا چه چیزی خراب میشود، نه اینکه کدام ماژول را پوشش میدهد.
- پرسیدن ارزان است، و شمرده میشود. تغییری که برای هر ردیف یک کوئری اضافه کند ایراد است؛ یک تست کوئریها را میشمرد و با ردیفهای بیشتر دوباره میپرسد.
- docstring هر ماژول میگوید چرا وجود دارد.
- مستندات به انگلیسی و فارسی است، و با هم تغییر میکنند. یک صفحه و همتای فارسیاش همان عنوانها، همان جدولها و همان کدها را دارند.
تغییری در آنچه کسی میخواند¶
بعد از علامت زدن یک رشته:
این session رشتهها را دوباره استخراج میکند و با هر تفاوتی ناموفق میشود - فارسی
آنچه اضافه کرده را بنویسید، و بعد catalogue را با django-admin compilemessages در
src/clearance کامپایل کنید.
تغییری در یک صفحهی پنل ادمین¶
عکسها را دوباره بگیرید، تا هیچ کدام از صفحهای که نشان میدهد عقب نماند:
یک pull request¶
در هر pull request یک تغییر، با تستهایش، و خطش در changelog -
CHANGELOG.md و CHANGELOG.fa.md، زیر Unreleased. CI همهی sessionهای بالا را
اجرا میکند.