المساهمة في Hatcher
شكراً لاهتمامك بالمساهمة في Hatcher! سيساعدك هذا الدليل على البدء في المساهمة في المشروع.
قواعد السلوك
من خلال المشاركة في هذا المشروع، توافق على الالتزام بـقواعد السلوك الخاصة بنا. يرجى قراءتها قبل المساهمة.
البداية
إعداد التطوير
Fork و Clone
bashgit clone https://github.com/your-username/dx-engine.git cd dx-engine
تثبيت التبعيات
bashpnpm install
بدء خادم التطوير
bashpnpm dev
هيكل المشروع
dx-engine/
├── apps/
│ ├── electron/ # عملية Electron الرئيسية
│ ├── web/ # عملية العرض (Vue.js)
│ ├── preload/ # سكريبتات التحميل المسبق
│ └── docs/ # وثائق VitePress
├── universal/
│ ├── vite-plugin/ # ملحقات Vite مخصصة
│ └── puppeteer-google-translate/
└── scripts/ # سكريبتات البناء والتطوير
طرق المساهمة
الإبلاغ عن الأخطاء
عند الإبلاغ عن الأخطاء، يرجى تضمين:
- وصف واضح: ما حدث مقابل ما توقعته
- خطوات الإعادة: خطوات مفصلة لإعادة إنشاء المشكلة
- البيئة: نظام التشغيل، إصدار Node.js، إصدار pnpm
- لقطات الشاشة: إذا أمكن، قم بتضمين دليل بصري
استخدم قالب تقرير الخطأ عند إنشاء المشاكل.
طلبات الميزات
نرحب بطلبات الميزات! يرجى تضمين:
- حالة الاستخدام: لماذا هذه الميزة مطلوبة؟
- الحل المقترح: كيف يجب أن تعمل؟
- البدائل: ما هي الطرق الأخرى التي فكرت فيها؟
استخدم قالب طلب الميزة.
مساهمات الكود
قبل البدء
- تحقق من المشاكل الموجودة: ابحث عن المشاكل ذات الصلة أو طلبات الميزات
- ناقش التغييرات الكبيرة: افتح مشكلة لمناقشة التغييرات المهمة
- ابدأ صغيراً: ابدأ بمساهمات صغيرة ومركزة
سير عمل التطوير
إنشاء فرع
bashgit checkout -b feature/your-feature-name
إجراء التغييرات
- اتبع معايير الترميز الخاصة بنا (انظر أدناه)
- اكتب اختبارات للوظائف الجديدة
- حدث الوثائق حسب الحاجة
اختبر تغييراتك
bashpnpm build pnpm test
قم بتسجيل تغييراتك
bashgit commit -m "feat: add amazing new feature"
نتبع تنسيق Conventional Commits.
ادفع وأنشئ PR
bashgit push origin feature/your-feature-name
معايير الترميز
يتبع Hatcher معايير ترميز صارمة لضمان الاتساق وقابلية الصيانة والكود عالي الجودة في جميع أنحاء المشروع.
مرجع سريع
TypeScript
- استخدم TypeScript لجميع الأكواد الجديدة مع تمكين الوضع الصارم
- فضل الواجهات على الأنواع لأشكال الكائنات
- استخدم أسماء ذات معنى ووصفية للمتغيرات والوظائف
- قم بتضمين تعليقات JSDoc لجميع واجهات برمجة التطبيقات العامة
Vue.js
- استخدم Composition API مع صيغة
<script setup>
- عرّف props و emits بواجهات TypeScript
- فضل composables للمنطق القابل لإعادة الاستخدام
- اتبع هيكل المكون أحادي الملف: script → template → style
أدوات جودة الكود
نستخدم أدوات آلية لفرض المعايير:
bash
# فحص وإصلاح مشاكل نمط الكود
pnpm lint:fix
# فحص الأنواع
pnpm typecheck
# تشغيل جميع الاختبارات
pnpm test
# تنسيق الكود
pnpm format
عملية Pull Request
قبل التقديم
- [ ] الكود يتبع معايير المشروع
- [ ] الاختبارات تمر محلياً
- [ ] الوثائق محدثة
- [ ] التغييرات مركزة وذرية
قالب وصف PR
markdown
## الوصف
وصف مختصر للتغييرات
## نوع التغيير
- [ ] إصلاح خطأ
- [ ] ميزة جديدة
- [ ] تغيير كاسر
- [ ] تحديث الوثائق
## الاختبار
- [ ] اختبارات الوحدة مضافة/محدثة
- [ ] اختبارات التكامل مضافة/محدثة
- [ ] الاختبار اليدوي مكتمل
المجتمع
قنوات التواصل
- GitHub Issues: تقارير الأخطاء وطلبات الميزات
- GitHub Discussions: الأسئلة العامة والأفكار
- Discord: دردشة فورية مع المجتمع
- Twitter: تابع @HatcherDX للتحديثات
إرشادات المجتمع
- كن محترماً: عامل الجميع باحترام
- كن بناءً: ركز على الحلول وليس المشاكل
- كن صبوراً: تذكر أننا جميعاً متطوعون
- كن مفيداً: شارك المعرفة وساعد الآخرين
موارد التطوير
روابط مفيدة
أسئلة؟
إذا كان لديك أسئلة حول المساهمة:
- تحقق من GitHub Discussions الموجودة
- انضم إلى مجتمع Discord الخاص بنا
- أنشئ مناقشة أو مشكلة جديدة
شكراً لك على المساهمة في Hatcher! معاً، نحن نبني مستقبل التطوير المدعوم بالذكاء الاصطناعي.