مشارکت در 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
- تصاویر: در صورت لزوم، شواهد بصری ارائه دهید
هنگام ایجاد issue از الگوی گزارش باگ ما استفاده کنید.
درخواستهای ویژگی
ما از درخواستهای ویژگی استقبال میکنیم! لطفاً موارد زیر را شامل کنید:
- مورد استفاده: چرا این ویژگی مورد نیاز است؟
- راهحل پیشنهادی: چگونه باید کار کند؟
- جایگزینها: چه رویکردهای دیگری در نظر گرفتید؟
از الگوی درخواست ویژگی ما استفاده کنید.
مشارکتهای کد
قبل از شروع
- بررسی Issueهای موجود: به دنبال issueها یا درخواستهای ویژگی مرتبط بگردید
- بحث در مورد تغییرات بزرگ: یک issue برای بحث در مورد تغییرات مهم باز کنید
- کوچک شروع کنید: با مشارکتهای کوچک و متمرکز شروع کنید
جریان کاری توسعه
ایجاد شاخه
bashgit checkout -b feature/your-feature-name
ایجاد تغییرات
- استانداردهای کدنویسی ما را دنبال کنید (پایین را ببینید)
- تستهایی برای عملکرد جدید بنویسید
- در صورت نیاز مستندات را بهروزرسانی کنید
تست تغییرات
bashpnpm build pnpm test
Commit تغییرات
bashgit commit -m "feat: add amazing new feature"
ما از فرمت Conventional Commits پیروی میکنیم.
Push و ایجاد PR
bashgit push origin feature/your-feature-name
استانداردهای کدنویسی
Hatcher از استانداردهای کدنویسی سختگیرانه پیروی میکند تا اطمینان حاصل کند که در سراسر پروژه سازگاری، قابلیت نگهداری و کد با کیفیت بالا وجود داشته باشد.
📋 راهنمای کامل استانداردهای کدنویسی
مرجع سریع
TypeScript
- برای تمام کدهای جدید از TypeScript با فعالسازی حالت strict استفاده کنید
- برای اشکال اشیاء، interface را به type ترجیح دهید
- برای متغیرها و توابع از نامهای معنادار و توصیفی استفاده کنید
- برای تمام APIهای عمومی کامنتهای JSDoc شامل کنید
Vue.js
- از Composition API با syntax
<script setup>
استفاده کنید - props و emits را با interfaceهای TypeScript تعریف کنید
- برای منطق قابل استفاده مجدد، composableها را ترجیح دهید
- ساختار کامپوننت تکفایله را دنبال کنید: script → template → style
ابزارهای کیفیت کد
ما از ابزارهای خودکار برای اعمال استانداردها استفاده میکنیم:
# lint و اصلاح مسائل سبک کد
pnpm lint:fix
# بررسی نوع
pnpm typecheck
# اجرای تمام تستها
pnpm test
# فرمت کردن کد
pnpm format
فرآیند Pull Request
قبل از ارسال
- [ ] کد از استانداردهای پروژه پیروی میکند
- [ ] تستها به صورت محلی پاس میشوند
- [ ] مستندات بهروزرسانی شده است
- [ ] تغییرات متمرکز و اتمی هستند
الگوی توضیحات PR
## توضیحات
توضیح مختصر تغییرات
## نوع تغییر
- [ ] رفع باگ
- [ ] ویژگی جدید
- [ ] تغییر شکننده
- [ ] بهروزرسانی مستندات
## تست
- [ ] تستهای واحد اضافه/بهروزرسانی شدند
- [ ] تستهای یکپارچگی اضافه/بهروزرسانی شدند
- [ ] تست دستی تکمیل شد
جامعه
کانالهای ارتباطی
- GitHub Issues: گزارشهای باگ و درخواستهای ویژگی
- GitHub Discussions: سوالات عمومی و ایدهها
- Discord: چت بلادرنگ با جامعه
- Twitter: @HatcherDX را برای بهروزرسانیها دنبال کنید
رهنمودهای جامعه
- احترامآمیز باشید: با همه با احترام رفتار کنید
- سازنده باشید: روی راهحلها متمرکز شوید، نه مشکلات
- صبور باشید: به یاد داشته باشید همه ما داوطلب هستیم
- مفید باشید: دانش را به اشتراک بگذارید و به دیگران کمک کنید
منابع توسعه
لینکهای مفید
سوال دارید؟
اگر در مورد مشارکت سوالی دارید:
- GitHub Discussions موجود را بررسی کنید
- به جامعه Discord ما بپیوندید
- یک بحث یا issue جدید ایجاد کنید
از مشارکت در Hatcher متشکریم! با هم، آینده توسعه با کمک هوش مصنوعی را میسازیم.