Как участвовать
| Ветка | Что туда попадает |
|---|---|
dev |
Все pull request’ы. Тестируется на каждый push, в пакеты не собирается. |
main |
Только слияния из dev, их делают мейнтейнеры. Собирается в Prerelease-main и релизы. |
Открывайте pull request в dev. PR в main попросят перенацелить. Обе ветки защищены: прямые и force-push’и запрещены.
Pull request
Заголовок раздела «Pull request»-
Ветка от
dev:feat/...,fix/...,chore/...,ci/...,docs/.... -
Одно изменение на PR. Напишите, что было не так, что поменялось и как проверяли.
-
Сообщения коммитов по Conventional Commits:
feat(xhttp): ...,fix(reality): .... -
Добавьте или обновите тесты на поведение, которое меняете, и прогоните их локально:
SKIP_INTEROP_TEST=1 go test ./...go vet ./...gofmt -l <изменённые файлы> -
CI должен быть зелёным.
Upstream
Заголовок раздела «Upstream»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 этого репозитория.
