Перейти к содержимому
НовостиGitHubСкачать

Как участвовать

Ветка Что туда попадает
dev Все pull request’ы. Тестируется на каждый push, в пакеты не собирается.
main Только слияния из dev, их делают мейнтейнеры. Собирается в Prerelease-main и релизы.

Открывайте pull request в dev. PR в main попросят перенацелить. Обе ветки защищены: прямые и force-push’и запрещены.

  1. Ветка от dev: feat/..., fix/..., chore/..., ci/..., docs/....

  2. Одно изменение на PR. Напишите, что было не так, что поменялось и как проверяли.

  3. Сообщения коммитов по Conventional Commits: feat(xhttp): ..., fix(reality): ....

  4. Добавьте или обновите тесты на поведение, которое меняете, и прогоните их локально:

    SKIP_INTEROP_TEST=1 go test ./...
    go vet ./...
    gofmt -l <изменённые файлы>
  5. CI должен быть зелёным.

Citrus следует ветке Alpha в mihomo. Синхронизации приходят отдельными PR в dev, поэтому не переформатируйте файлы upstream без нужды: каждая следующая синхронизация превратится в конфликт.

Путь Go-модуля остаётся github.com/metacubex/mihomo: Mikan подключает Citrus через replace и зависит от этого пути.

Citrus убрал устаревшие протоколы, в том числе VMess. Новую работу над протоколами и транспортами направляйте на VLESS, Trojan, Hysteria2, TUIC v5, AnyTLS, TrustTunnel и другие протоколы, которые использует Mikan. Перед крупной задачей спросите в issue.

Не открывайте публичные issue об уязвимостях. Сообщайте приватно через GitHub Security Advisories.

Отправляя изменения, вы соглашаетесь, что они выходят под лицензией GPL-3.0 этого репозитория.