المساهمة
الإعداد
أجرِ تغييرًا صغيرًا واحدًا في المكان الصحيح وأرسله في طلب سحب (pull request).
قبل أن تبدأ
رابط إلى قبل أن تبدأ- افتح بلاغًا (issue) أولًا، أو علّق على بلاغ موجود. اذكر ما تريد تغييره ولماذا.
- انتظر الرد، حتى لا تبني شيئًا لن يُدمج.
- أكمل الإعداد لتتمكن من بناء HolyArrs وتشغيله.
الأسئلة مكانها Discord. والأفكار مكانها r/HolyArrs. أما البلاغات فللأخطاء وخارطة الطريق.
أرسل أول طلب سحب
رابط إلى أرسل أول طلب سحب-
اعثر على الوحدة التي ينتمي إليها تغييرك. الأسماء في الوحدات تطابق أسماء المجلدات، فتنبيه Discord الخاطئ تغيير في
alerts. -
أجرِ التغيير في
app/backend/internal/<module>/وapp/frontend/src/lib/<module>/. اقصره على إصلاح واحد أو ميزة واحدة. -
ابنِ تطبيق الويب، ثم البرنامج، وجرّب التغيير في المتصفح. انظر الإعداد.
-
شغّل الفحوص المذكورة في الاختبار.
سترى أنه لا يوجد أي فشل.
-
إذا غيّرت صفحة، شغّل مشروعها من الاختبارات الشاملة (end-to-end)، مثلًا
npm --prefix app/frontend run e2e -- --project=movies. -
افتح طلب السحب. اربطه بالبلاغ، واذكر ما تغيّر وكيف اختبرته، وأضف اختبارات للتغيير أو حدّثها.
-
في أول طلب سحب لك، يطلب منك بوت توقيع اتفاقية ترخيص المساهمين. ردّ بالجملة الواحدة التي يطلبها.
الخيارات
رابط إلى الخياراتأين يذهب التغيير
رابط إلى أين يذهب التغيير| التغيير | اذهب إلى |
|---|---|
| مسار API جديد | الوحدات |
| وحدة جديدة | الوحدات. افتح بلاغًا أولًا |
| ميزة محجوبة | الإعداد |
| نشر إصدار من التطبيق | نشر الإصدارات. للقائمين على المشروع فقط |
كيف يبدو طلب السحب الجيد
رابط إلى كيف يبدو طلب السحب الجيد- اكتب تعليقات تشرح لماذا تفعل الشيفرة ما تفعله. لا أرقام من خارطة الطريق ولا تواريخ ولا أسماء ولا شرطات طويلة في التعليقات.
- اترك صياغة نصوص التطبيق كما هي، إلا إذا كان البلاغ عن الصياغة.
- أبقِ مسارات API المنشورة وأسماء الحقول ومفاتيح الإعدادات وأسماء الجداول وأسماء المهام كما هي. أضف، ولا تُعد التسمية أبدًا.
إذا لم ينجح الأمر
رابط إلى إذا لم ينجح الأمرالعَرَض. يفشل أحد فحوص البنية. السبب. الرسالة تسمّي الملف والقاعدة. الحل. انقل الشيفرة، أو مرّر بيانات بسيطة من الوحدة الأعلى. انظر الوحدات.
العَرَض. يبدو تطبيق الويب قديمًا. السبب. البرنامج يقدّم نسخة البناء التي ضمّنها في داخله. الحل. ابنِ تطبيق الويب من جديد قبل البرنامج.
العَرَض. لا تبدأ الاختبارات الشاملة.
السبب. متصفح الاختبار غير مثبّت.
الحل. شغّل npx --prefix app/frontend playwright install chromium.
للخبراء
رابط إلى للخبراءقواعد يجب أن يلتزم بها طلب السحب
- تخاطب الوحدة وحدة أخرى عبر خدمتها (Go) أو عبر
index.tsالخاص بها (الويب) فقط. لا عبر مخزنها ولا ملفاتها أبدًا. - SQL مكانه ملفات
store*.goالخاصة بالوحدة فقط، وعلى جداول تلك الوحدة نفسها. - يوضع جزء الويب في
lib/uiفقط إذا استعملته وحدتان أو أكثر. - لا حزم باسم
utilأوcommonأوsharedأوhelpers. - كل اتصال بالخارج يمر عبر
core/outbound.
الاختبارات تفحص هذه القواعد، فالاستيراد الخاطئ يُفشل البناء. القائمة الكاملة وأسماء الفحوص في الوحدات.
ما الذي يشغّله CI
| المهمة | تشغّل |
|---|---|
| Web | check وlint وtest وbuild ومجموعة الاختبارات الشاملة |
| Go | go build وgo vet وgo test -timeout 60m ./... على amd64 وarm64، مباشرةً وتحت المحاكاة |
| Race | go test -race ./... |
| Contract | مطابقة openapi.json، وفحوص النطاق على كل مسار API، ومجموعة اختبارات برامج التنزيل |
| Fault and scale | تشغيلات الأعطال، والكتابة البطيئة، والخدمة الخارجية المعطوبة، والذاكرة |
| Image | صورة تطوير تُبنى وتبدأ وتُبلغ عن إصدارها |
تفاصيل التشغيلات الطويلة في الاختبار.
صفحات ذات صلة
رابط إلى صفحات ذات صلةHolyArrs مجاني. إذا وفّر عليك وقتًا، امنحه نجمة على GitHub أو ادعمه ماليًا أو ادعُني إلى فنجان قهوة.