Skip to content

مشارکت در Hatcher

از علاقه شما برای مشارکت در Hatcher متشکریم! شما به جنبشی می‌پیوندید تا آینده توسعه نرم‌افزار در عصر هوش مصنوعی را بسازیم—آینده‌ای که توسعه‌دهندگان کنترل مطلق را حفظ می‌کنند در حالی که از قدرت تقویت هوش مصنوعی استفاده می‌کنند. این راهنما مراحل عملی برای شروع را فراهم می‌کند، اما اگر هنوز نخوانده‌اید، توصیه می‌کنیم فلسفه ما را بخوانید تا "چرایی" پشت کار ما را درک کنید.

با مشارکت در Hatcher، شما فقط کد نمی‌نویسید—به تعریف نحوه ساخت نرم‌افزار توسط بشریت در عصر هوش مصنوعی کمک می‌کنید. هر مشارکت، چه رفع باگ، چه ویژگی یا بهبود مستندات باشد، ماموریت ما را در تقویت کنترل‌شده پیش می‌برد.

آیین‌نامه رفتار

با شرکت در این پروژه، موافقت می‌کنید که آیین‌نامه رفتار ما را رعایت کنید. لطفاً قبل از مشارکت آن را بخوانید.

شروع

راه‌اندازی توسعه

  1. Fork و Clone

    bash
    git clone https://github.com/your-username/dx-engine.git
    cd dx-engine
  2. نصب وابستگی‌ها

    bash
    pnpm install
  3. شروع سرور توسعه

    bash
    pnpm dev

ساختار پروژه

dx-engine/
├── apps/                           # بسته‌های برنامه
│   ├── electron/                   # فرآیند اصلی Electron
│   ├── web/                       # فرآیند Renderer (Vue 3 + TypeScript)
│   ├── preload/                   # اسکریپت‌های Preload برای Electron
│   └── docs/                      # سایت مستندات VitePress
├── universal/                      # کتابخانه‌ها و سیستم‌های مشترک
│   ├── terminal-system/           # شبیه‌سازی و مدیریت ترمینال
│   ├── storage/                   # لایه انتزاعی ذخیره‌سازی
│   ├── git-genius/               # عملیات Git و جدول زمانی
│   ├── shared-rendering/         # ابزارهای رندر مشترک
│   └── shared-utils/             # ابزارهای رایج
├── tooling/                       # ابزارهای توسعه و build
│   ├── vite-plugin/              # افزونه‌های سفارشی Vite
│   ├── translation-system/       # ابزارهای i18n و ترجمه
│   └── puppeteer-google-translate/ # ترجمه خودکار
├── scripts/                       # اسکریپت‌های build، تست و ابزار
├── brand/                         # دارایی‌های برند (لوگوها، آیکون‌ها و غیره)
└── types/                         # تعاریف نوع TypeScript مشترک

روش‌های مشارکت

گزارش باگ‌ها

هنگام گزارش باگ‌ها، لطفاً شامل کنید:

  • توضیح واضح: چه اتفاقی افتاد در مقابل آنچه انتظار داشتید
  • مراحل بازتولید: مراحل دقیق برای بازآفرینی مسئله
  • محیط: OS، نسخه Node.js، نسخه pnpm
  • اسکرین‌شات‌ها: در صورت امکان، شواهد بصری را شامل شوید

از الگوی گزارش باگ ما هنگام ایجاد issueها استفاده کنید.

درخواست‌های ویژگی

ما از درخواست‌های ویژگی استقبال می‌کنیم! لطفاً شامل کنید:

  • مورد استفاده: چرا این ویژگی مورد نیاز است؟
  • راه‌حل پیشنهادی: باید چگونه کار کند؟
  • جایگزین‌ها: چه رویکردهای دیگری را در نظر گرفتید؟

از الگوی درخواست ویژگی ما استفاده کنید.

مشارکت‌های کد

قبل از شروع

  1. بررسی Issueهای موجود: به دنبال issueها یا درخواست‌های ویژگی مرتبط بگردید
  2. بحث درباره تغییرات عمده: یک issue باز کنید تا درباره تغییرات قابل توجه بحث کنید
  3. کوچک شروع کنید: با مشارکت‌های کوچک و متمرکز شروع کنید

گردش کار توسعه

  1. ایجاد Branch

    bash
    git checkout -b feature/your-feature-name
  2. ایجاد تغییرات

    • استانداردهای کدنویسی ما را دنبال کنید (پایین را ببینید)
    • تست برای عملکرد جدید بنویسید
    • مستندات را در صورت لزوم به‌روزرسانی کنید
  3. تست تغییرات خود

    bash
    pnpm build
    pnpm test
  4. Commit تغییرات خود

    bash
    git commit -m "feat: add amazing new feature"

    ما از فرمت Conventional Commits پیروی می‌کنیم.

  5. Push و ایجاد PR

    bash
    git push origin feature/your-feature-name

استانداردهای کدنویسی

Hatcher از استانداردهای کدنویسی سختگیرانه پیروی می‌کند تا سازگاری، قابلیت نگهداری و کد با کیفیت بالا را در کل پروژه تضمین کند.

📋 راهنمای کامل استانداردهای کدنویسی

مرجع سریع

TypeScript

  • از TypeScript برای تمام کد جدید با حالت strict فعال استفاده کنید
  • interfaceها را بر typeها برای اشکال شیء ترجیح دهید
  • از نام‌های معنادار و توصیفی برای متغیرها و توابع استفاده کنید
  • نظرات JSDoc را برای تمام APIهای عمومی اضافه کنید

Vue.js

  • از Composition API با سینتکس <script setup> استفاده کنید
  • props و emits را با interfaceهای TypeScript تعریف کنید
  • composableها را برای منطق قابل استفاده مجدد ترجیح دهید
  • ساختار کامپوننت تک‌فایلی را دنبال کنید: script → template → style

استایل

  • از استایل‌های scoped برای CSS خاص کامپوننت استفاده کنید
  • روش BEM را برای نام‌گذاری کلاس دنبال کنید
  • از ویژگی‌های سفارشی CSS برای تم‌بندی استفاده کنید
  • flexbox و CSS Grid را برای چیدمان ترجیح دهید

قراردادهای Git

  • فرمت Conventional Commits را دنبال کنید
  • از نام‌های branch توصیفی استفاده کنید: feature/, fix/, docs/, refactor/
  • commitها را atomic و متمرکز بر یک تغییر نگه دارید

ابزارهای کیفیت کد

ما از ابزارهای خودکار برای اجرای استانداردها استفاده می‌کنیم:

bash
# Lint و رفع مسائل سبک کد
pnpm lint:fix

# بررسی نوع
pnpm typecheck

# اجرای تمام تست‌ها
pnpm test

# قالب‌بندی کد
pnpm format

Hookهای Pre-commit

Husky بررسی‌های خودکار را قبل از هر commit اجرا می‌کند:

  • ESLint برای کیفیت کد
  • کامپایل TypeScript
  • Prettier برای قالب‌بندی
  • تست‌های واحد برای مسیرهای حیاتی

برای دستورالعمل‌های دقیق، مثال‌ها و بهترین شیوه‌ها، مستندات استانداردهای کدنویسی ما را ببینید.

مستندسازی

انواع مستندات

  • نظرات کد: منطق پیچیده را توضیح دهید
  • فایل‌های README: مرور کلی و دستورالعمل‌های راه‌اندازی
  • مستندات API: interfaceهای عمومی را مستند کنید
  • راهنماهای کاربر: راهنماهای how-to برای کاربران نهایی

دستورالعمل‌های نوشتن

  • از زبان واضح و مختصر استفاده کنید
  • مثال‌های کد را شامل شوید
  • مستندات را با تغییرات کد به‌روز نگه دارید
  • تمام مثال‌های کد را تست کنید

فرآیند Pull Request

قبل از ارسال

  • [ ] کد از استانداردهای پروژه پیروی می‌کند
  • [ ] تست‌ها به صورت محلی پاس می‌شوند
  • [ ] مستندات به‌روزرسانی شده است
  • [ ] تغییرات متمرکز و atomic هستند

الگوی توضیح PR

markdown
## توضیح

توضیح مختصر تغییرات

## نوع تغییر

- [ ] رفع باگ
- [ ] ویژگی جدید
- [ ] تغییر شکننده
- [ ] به‌روزرسانی مستندات

## تست

- [ ] تست‌های واحد اضافه/به‌روزرسانی شده
- [ ] تست‌های یکپارچه‌سازی اضافه/به‌روزرسانی شده
- [ ] تست دستی کامل شده

## اسکرین‌شات‌ها (در صورت وجود)

اسکرین‌شات‌های قبل/بعد برای تغییرات UI

فرآیند بررسی

  1. بررسی‌های خودکار: CI/CD باید پاس شود
  2. بررسی کد: حداقل یک بررسی نگهدارنده
  3. تست: تغییرات در محیط توسعه تست می‌شوند
  4. مستندسازی: تأیید که مستندات به‌روزرسانی شده است
  5. Merge: PRهای تأییدشده را squash و merge کنید

جامعه

کانال‌های ارتباطی

  • GitHub Issues: گزارش باگ و درخواست ویژگی
  • GitHub Discussions: سؤالات و ایده‌های عمومی
  • Discord: چت لحظه‌ای با جامعه
  • Twitter: @HatcherDX را برای به‌روزرسانی‌ها دنبال کنید

دستورالعمل‌های جامعه

  • محترم باشید: همه را با احترام رفتار کنید
  • سازنده باشید: روی راه‌حل‌ها تمرکز کنید، نه مشکلات
  • صبور باشید: به یاد داشته باشید همه ما داوطلب هستیم
  • کمک‌کننده باشید: دانش را به اشتراک بگذارید و به دیگران کمک کنید

شناخت

ما از تمام مشارکت‌ها قدردانی می‌کنیم! مشارکت‌کنندگان در این موارد شناخته می‌شوند:

  • CONTRIBUTORS.md: فهرست تمام مشارکت‌کنندگان پروژه
  • یادداشت‌های انتشار: مشارکت‌های عمده برجسته شده
  • رسانه‌های اجتماعی: نمایش مشارکت‌های جامعه

منابع توسعه

لینک‌های مفید

ابزارهای توسعه

  • VS Code: ویرایشگر توصیه‌شده با افزونه‌های Vue و TypeScript
  • Vue DevTools: افزونه مرورگر برای اشکال‌زدایی برنامه‌های Vue
  • Electron DevTools: ابزارهای اشکال‌زدایی داخلی

سؤالات؟

اگر سؤالاتی درباره مشارکت دارید:

  1. GitHub Discussions موجود را بررسی کنید
  2. به جامعه Discord ما بپیوندید
  3. یک discussion یا issue جدید بسازید

از مشارکت در Hatcher متشکریم! با هم، آینده توسعه کمک‌شده با هوش مصنوعی را می‌سازیم.

آماده ایجاد تأثیر خود هستید؟

به جامعه‌ای بپیوندید که IDE قانون اساسی برای عصر هوش مصنوعی می‌سازد