Участие в разработке

Сообщение об ошибках

Настройка разработки

git clone https://github.com/uburuntu/meridian.git && cd meridian

# Установить CLI в режиме редактирования с зависимостями разработки
make install

# Установить pre-push hook (11 быстрых проверок перед каждым push)
make hooks

# Запустить полный CI локально
make ci

# Отдельные проверки:
make test              # pytest
make lint              # ruff check
make format-check      # ruff format --check
make typecheck         # mypy
make templates         # Jinja2 template validation

Структура проекта

CLI — это Python пакет (src/meridian/) распространяемый через PyPI как meridian-vpn.

Ключевые модули:

  • cli.py — Typer приложение, регистрация подкоманд
  • commands/ — один модуль на подкоманду
  • credentials.py — dataclass ServerCredentials
  • servers.pyServerRegistry для известных серверов
  • provision/ — идемпотентный конвейер шагов

Pull requests

  1. Форкните репозиторий и создайте ветку из main
  2. Сделайте сосредоточенные, минимальные изменения
  3. Убедитесь что CI проходит: make ci
  4. Тестируйте на реальном сервере если возможно
  5. Откройте PR с чётким описанием

Ключевые соглашения

  • Shell значения используют shlex.quote() — никогда не интерполируйте несанитизированные значения
  • Шаблоны connection-info должны быть синхронизированы (CSS/JS/app ссылки)
  • Конфиг Caddy идёт в /etc/caddy/conf.d/meridian.caddy, не в основной Caddyfile
  • Шаги provisioner возвращают StepResult (ok/changed/skipped/failed)

Тестирование

CI проверяет: Python тесты, ruff lint, mypy типы, рендеринг шаблонов и синтаксис shell скриптов. Полное развертывание тестирование требует реальный VPS.

On this page