گزارش مسائل
Section titled “گزارش مسائل”- باگ؟ از الگوی گزارش باگ استفاده کنید — ابتدا
meridian doctorرا اجرا کنید - مسئله اتصال؟ از الگوی مسئله اتصال استفاده کنید — ابتدا
meridian testوmeridian checkرا اجرا کنید - ایده ویژگی؟ از الگوی درخواست ویژگی استفاده کنید
- آسیبپذیری امنیتی؟ ببینید Security — issue عمومی نباز نکنید
راهاندازی توسعه
Section titled “راهاندازی توسعه”git clone https://github.com/getmeridian/meridian.git && cd meridian
# نصب CLI در حالت قابل ویرایش با وابستگیهای توسعهmake install
# نصب hook پیشفشار (بررسیهای سریع پیش از هر فشار)make hooks
# اجرای CI کامل محلیmake ci
# بررسیهای جداگانه:make test # pytestmake lint # ruff checkmake format-check # ruff format --checkmake typecheck # mypymake templates # Jinja2 template validationساختار پروژه
Section titled “ساختار پروژه”CLI یک package Python است (src/meridian/) که از طریق PyPI بهعنوان meridian-vpn توزیع میشود.
ماژولهای کلیدی:
cli.py— Typer app، ثبت subcommandcommands/— یک ماژول برای هر subcommandcluster.py+cluster_persistence.py— typedcluster.ymlstate و persistenceservers.py—ServerRegistryبرای سرورهای شناختهشدهsetup/— وضعیت ماژولmeridian setupو runtime بهاشتراکگذاری شده در پس deploy، setup و applycompiler/— تبدیل topology به لیست منابع مرورشده و hash-identified (بدون I/O)reconciler/— مشاهده و اعمال آن منابع با checkpointsprovision/— مراحل آمادهسازی سرور (packageها، hardening، Docker، Realm)
Pull requests
Section titled “Pull requests”- repo را fork کنید و branch را از
mainایجاد کنید - تغییرات متمرکز و کمینه انجام دهید
- اطمینان دهید CI موفق است:
make ci - در صورت امکان روی سرور واقعی تست کنید
- یک PR را با توضیح واضح باز کنید
کنوانسیونهای کلیدی
Section titled “کنوانسیونهای کلیدی”- مقادیر شل از
shlex.quote()استفاده میکنند — هیچگاه مقادیر غیرتمیز را تقسیم نکنید - PWA assets باید همگام بمانند (
templates/pwa/و کاتالوگ برنامه) - پیکربندی nginx بهعنوان منبع per-resource بهعنوان فایلهای
meridian-v4-*.confدر/etc/nginx/stream.d/و/etc/nginx/sites-available/نوشته میشود - مراحل provisioner
StepResultرا بازمیگردانند (ok/changed/skipped/failed)
CI اعتبارسنجی میکند: تست Python، lint ruff، نوع mypy، رندر template و syntax اسکریپت شل. تست deployment کامل نیاز به VPS واقعی دارد.
