release: prepare 0.2.0 for sing-box 1.14
This commit is contained in:
+32
-36
@@ -2,55 +2,51 @@
|
||||
|
||||
## Уровни
|
||||
|
||||
1. Unit: URI, policy, version, renderer, redaction.
|
||||
2. Failure injection: candidate rejection, restart failure, URI/config rollback,
|
||||
idempotency и manual rollback swap.
|
||||
3. Real binary: `sing-box 1.13.19 check` на Linux и schema/format validation на Windows.
|
||||
4. Privileged Linux: TUN, nftables, systemd и локальный HTTP connectivity healthcheck.
|
||||
5. Canary: DNS A change без endpoint CIDR и credential rotation.
|
||||
6. Reboot: guard ordering, persisted config и path watcher.
|
||||
1. Unit: URI, policy, version, renderer, redaction и metadata.
|
||||
2. Failure injection: candidate rejection, restart failure, URI/config restore,
|
||||
unmanaged config, corrupted/legacy last-good.
|
||||
3. Packaging: MPL-2.0, exact dependency, upgrade rejection и postinst guard.
|
||||
4. Real binary: официальный sing-box 1.14.0 для Gecko и Salamander configs.
|
||||
5. Privileged Linux: TUN, systemd, nftables, routing и DNS.
|
||||
6. HY2XS acceptance: Gecko TCP/UDP/DNS, failures, reconnect и reboot.
|
||||
|
||||
## Unit tests
|
||||
|
||||
На Linux:
|
||||
|
||||
```bash
|
||||
make check
|
||||
```
|
||||
|
||||
Тест с реальным бинарником включается явно:
|
||||
На Windows с isolated Python:
|
||||
|
||||
```bash
|
||||
SING_BOX_1_13_19=/usr/bin/sing-box make test
|
||||
```powershell
|
||||
E:\python-31312\python.exe -c "import sys,unittest; sys.path[:0]=[r'F:\projects\singbox_glue',r'F:\projects\singbox_glue\src']; s=unittest.defaultTestLoader.discover('tests',top_level_dir='.'); r=unittest.TextTestRunner(verbosity=2).run(s); raise SystemExit(not r.wasSuccessful())"
|
||||
```
|
||||
|
||||
Он предварительно проверяет exact version, `with_quic` и `with_gvisor`.
|
||||
Windows-бинарник не может создать Linux auto-redirect и поэтому выполняет
|
||||
`format` полной схемы; обязательный `check` остаётся в Linux CI/Incus.
|
||||
## Real binary
|
||||
|
||||
## Privileged acceptance
|
||||
```bash
|
||||
SING_BOX_1_14_0=/usr/bin/sing-box make test
|
||||
```
|
||||
|
||||
В disposable Incus-контейнере с двумя NIC:
|
||||
Тест сначала проверяет exact version/tags. На Linux выполняется `check`; на
|
||||
Windows — schema decoding через `format`, поскольку Windows binary не может
|
||||
создать Linux auto-redirect.
|
||||
|
||||
1. установить sing-box 1.13.19 и пакет;
|
||||
2. применить test URI;
|
||||
3. проверить таблицу 2022 и marks;
|
||||
4. подтвердить, что `eth1 -> eth0` отклоняется без sing-box;
|
||||
5. подтвердить TCP/UDP/DNS через TUN при рабочем HY2;
|
||||
6. сломать credential и проверить автоматический rollback;
|
||||
7. изменить A-запись endpoint, не меняя URI/config;
|
||||
8. перезагрузить контейнер и повторить doctor.
|
||||
## Privileged Debian acceptance
|
||||
|
||||
Отдельный dependency failure test выполняется только в disposable Incus:
|
||||
В disposable Incus/VM с двумя NIC проверить:
|
||||
|
||||
1. остановить sing-box и guard;
|
||||
2. временно задать в test policy отсутствующий upstream interface;
|
||||
3. убедиться, что `systemctl start sing-box.service` завершается ошибкой из-за
|
||||
неуспешного guard;
|
||||
4. восстановить policy и подтвердить успешный совместный запуск;
|
||||
5. проверить drop-in командой `systemd-analyze verify` и содержимое собранного
|
||||
Debian-пакета через `dpkg-deb -c`.
|
||||
1. чистую установку и отказ in-place upgrade;
|
||||
2. Gecko config и отсутствие last-good после первого apply;
|
||||
3. table 2022, rule 9000/32768, marks и NFQUEUE 100;
|
||||
4. bootstrap DNS через `eth0`, DoH через `hy2-out`;
|
||||
5. TCP/UDP/DNS с workload за `eth1`;
|
||||
6. отсутствие прямого WAN при остановленном sing-box;
|
||||
7. credential failure и same-release rollback;
|
||||
8. отказ legacy/mismatched metadata;
|
||||
9. A-record change и reboot recovery.
|
||||
|
||||
Локальный HTTPS healthcheck не заменяет запросы DNS/TCP/UDP с реального workload
|
||||
за `eth1`. При остановленном sing-box такой workload не должен получить прямой
|
||||
доступ через `eth0`.
|
||||
|
||||
Production A-запись не используется для эксперимента: нужен staging hostname.
|
||||
Server-side Gecko E2E выполняет владелец HY2XS. Salamander проверяется только на
|
||||
disposable test server и не добавляется в production server configuration.
|
||||
|
||||
Reference in New Issue
Block a user