راهنمای مشارکت (Contributing Guide)#
از اینکه علاقهمند به مشارکت در توسعه bgscan هستید، صمیمانه سپاسگزاریم! تکتک مشارکتهای شما — چه در قالب رفع باگ، چه بهبود مستندات و چه پیادهسازی قابلیتهای جدید — برای ما بسیار ارزشمند است.
قبل از شروع#
- پیش از باز کردن یک ایشو (Issue) جدید، ابتدا لیست ایشوهای موجود را جستجو کنید تا از عدم وجود گزارش مشابه مطمئن شوید.
- اگر قصد دارید قابلیت بزرگ یا تغییر عمدهای در پروژه ایجاد کنید، لطفاً ابتدا یک ایشو باز کنید تا درباره آن با هم گفتگو کنیم.
- درخواستهای ادغام (Pull Requests) خود را کوچک نگه دارید و تنها روی یک تغییر مشخص تمرکز کنید.
استراتژی شاخهها (Branch Strategy)#
لطفاً به هیچ عنوان تغییرات خود را مستقیماً روی شاخه main کامیت نکنید.
ابتدا یک شاخه (Branch) جدید از روی شاخه main بسازید:
git checkout main
git pull origin main
git checkout -b feature/my-featureنامهای پیشنهادی برای شاخهها:
feature/add-xray-parser
feature/ui-improvements
fix/memory-leak
fix/windows-build
docs/update-readme
refactor/scanner
test/unit-testsسبک کدنویسی (Coding Style)#
- از قواعد و کنوانسیونهای فعلی پروژه پیروی کنید.
- کدها را تا حد امکان ساده و خوانا بنویسید.
- کامیتهای کوچک، منسجم و هدفمند را ترجیح دهید.
- از اعمال تغییرات ظاهری و فرمتدهیهای نامربوط در بخشهای دیگر کد خودداری کنید.
- کامنتها را تنها در نقاطی که واقعاً نیاز به توضیح دارند اضافه کنید.
پیامهای کامیت (Commit Messages)#
از پیامهای توصیفی و استاندارد برای کامیتهای خود استفاده کنید.
نمونهها:
feat: add HTTP/3 support
fix: resolve race condition in scanner
docs: improve installation guide
refactor: simplify writer pipeline
test: add unit tests for parserدرخواستهای ادغام (Pull Requests)#
پیش از باز کردن یک Pull Request، مطمئن شوید که:
- پروژه بدون هیچ خطایی با موفقیت بیلد (Build) میشود.
- تمام تستهای موجود با موفقیت پاس میشوند.
- برای قابلیتهای جدید، تستهای لازم نوشته شده است.
- مستندات مربوطه (در صورت نیاز) بهروزرسانی شدهاند.
لطفاً در توضیحات PR خود موارد زیر را بگنجانید:
- چه چیزی تغییر کرده است؟
- چرا این تغییر اعمال شده است؟
- اسکرینشاتها (برای تغییرات مربوط به رابط کاربری UI)
- شماره ایشو مرتبط (در صورت وجود)
گزارش باگها (Reporting Bugs)#
هنگام گزارش باگ، تا حد امکان جزئیات بیشتری را در اختیار ما بگذارید:
- سیستمعامل (Operating System)
- معماری پردازنده (Architecture)
- نسخه bgscan
- فایل پیکربندی (Configuration)
- مراحل بازتولید باگ (Steps to reproduce)
- رفتار مورد انتظار (Expected behavior)
- رفتار واقعی رخداده (Actual behavior)
- فایلهای لاگ (در صورت در دسترس بودن)
درخواست قابلیتهای جدید (Feature Requests)#
لطفاً موارد زیر را شرح دهید:
- مشکلی که در صدد حل آن هستید.
- راهحل پیشنهادی شما.
- جایگزینهای احتمالی دیگر.
- هرگونه توضیحات یا پسزمینه تکمیلی.
منشور اخلاقی (Code of Conduct)#
همواره محترمانه و سازنده رفتار کنید.
ما از گفتگوهای چالشبرانگیز و پویا استقبال میکنیم؛ اما حملات شخصی، توهین، مزاحمت یا هرگونه رفتار غیرمحترمانه به هیچ وجه تحمل نخواهد شد.
از اینکه به بهتر شدن bgscan کمک میکنید، متشکریم!
صفحات مرتبط#
- شروع کار (Getting Started) — دستورالعملهای بیلد و اجرای برنامه
- معماری (Architecture) — چیدمان کلی و سطح بالای پروژه
- هسته اصلی (Core) — جزئیات موتور اسکنر، اینترفیس پروبها، تنظیمات و خطلوله نتایج
- رابط کاربری (UI) — معماری سیستم TUI، مدل کامپوننتها، چیدمان هندسی و تمها