- Зачем: - требовалось подтвердить нижнюю версию Python и исключить переполнение /tmp тестовыми данными. - Что: - добавлен полный прогон под системным Python и CPython 3.8 через uv. - исправлены переносимость тестового Xray, уборка временных файлов и документация задачи 05. - добавлен список локальных навыков, исключаемых из Git. - Проверка: - bash tests/test_xray_proxy_full.sh.
5.9 KiB
05 — Доставка пакета и итоговая приёмка
What to build: Поставка xray-proxy проверена целиком: корневой обзор
соответствует готовым возможностям, автоматические проверки воспроизводимы, а
ручная приёмка на доступных системах подготовлена для пользователя.
Blocked by: 03 — безопасный жизненный цикл; 04 — проверяемая установка.
Status: ready-for-human
Границы задачи
Тикеты 03/04/06 уже доставили CLI, Bash-модуль, установку и жизненный цикл. Задача 05 их проверяет, но не переписывает. Источники истины:
-
xray-proxy/README.md— пользовательские команды, настройка и ограничения; -
исходный дизайн — границы и принятые решения.
-
Корневой
README.mdкратко описывает внешний Hiddify и управляемый Xray, показываетstow xray-proxyи ссылается на полную инструкцию. -
Пакет подключается через stow, ручные ссылки или копирование; общий установщик использует тот же пакет.
-
Инструкция покрывает две семьи VLESS, Xray 26.3.27, отсутствие systemd, автозапуска и автоматического перехода между прокси.
-
Тест
ManagedXrayCliTest.test_exact_boolean_version_alpn_and_extra_branchesподтверждает, что устаревшиеallowInsecure/insecureне попадают в TLS-конфиг, а истинное значение даёт предупреждение.
Секретные данные
- В отслеживаемых файлах, тестовых данных, аргументах, выводе и отчёте нет
настоящих VLESS-ссылок, UUID, ключей,
shortIdиpath. Автоматические тесты используют только вымышленные контрольные значения. Настоящий профиль и сгенерированный JSON остаются в закрытых пользовательских файлах и не копируются в отчёт.
Автоматическая проверка
tests/test_xray_proxy_full.shзапускает весь Python-набор под системнымpython3и CPython 3.8 черезuv, затем Bash-тесты и проверку установки.- Тестовый Xray остаётся отдельным исполняемым файлом и получает доступ к
библиотекам исходного Python. Это устраняет ложные падения переносимой сборки
uv, не ослабляя проверки личности процесса. tests/test_install.shсобирает небольшие тестовые деревья только из отслеживаемых Git-файлов и удаляет общий временный каталог при выходе.
Приёмка пользователем
Исполнитель готовит команды и останавливается. Результат отмечает пользователь; недоступная система остаётся неподтверждённой.
- Ubuntu с Python 3.10: установка, жизненный цикл,
xray run -test, HTTP и SOCKS через один локальный вход Xray 26.3.27. - РЕД ОС, Astra Linux или Alt Linux по доступности: тот же сценарий после проверки фактической версии Python.
После приёмки
- Статус исходного дизайна и заявления о поддержке приведены в соответствие только с фактически выполненными прогонами.
Comments
2026-07-21 — автоматическая проверка
bash tests/test_xray_proxy_full.sh завершился с кодом 0:
- системный Python 3.14: 79 тестов,
OK, 57,276 с; - Bash-интеграция: 8 проверок,
PASS;shellcheckотсутствует и явно пропущен; - установка:
All install tests passed; в/tmpне осталось каталоговdotfiles-install-test.*; - CPython 3.8.20 через
uv: 79 тестов,OK, 51,412 с.
2026-07-21 — команды ручной приёмки
В первой панели tmux, после подготовки закрытого default.url и машинного
конфига с type = xray:
python3 --version
cd ~/dotfiles
stow xray-proxy
source ~/.config/xray-proxy/shell.bash
xray-proxy install
xray-proxy start
Во второй панели, пока start работает:
xray-proxy status
xray run -test -c "${XDG_STATE_HOME:-$HOME/.local/state}/xray-proxy/client.json"
curl --proxy http://127.0.0.1:12334 https://api.ipify.org
curl --proxy socks5h://127.0.0.1:12334 https://api.ipify.org
xray-proxy stop
Если настроен другой локальный адрес или порт, те же значения подставляются в
обе команды curl. В отчёт записываются только версии, коды возврата и итог
проверки HTTP/SOCKS.