Автоматическая подготовка Windows-окружения разработчика.
Сейчас проект умеет поднимать базовый набор инструментов через bootstrap.cmd и PowerShell backend. Целевое направление проекта: Tauri v2 launcher, декларативный каталог пакетов и plan-driven install flow.
- Что проект делает сейчас
- Текущее состояние репозитория
- Быстрый старт
- Стратегия установки
- Архитектура: сейчас и целевая
- Roadmap и треки задач
- Связанные документы
- Как добавить новый пакет сейчас
- Тестирование
На текущем backend-е проект подготавливает Windows-машину к разработке и при необходимости устанавливает:
| Программа | Зачем |
|---|---|
| Git | Система контроля версий |
| Visual Studio Code | Редактор кода |
| Python 3.13 | Интерпретатор Python |
| uv | Быстрый менеджер пакетов Python |
Ключевой пользовательский вход остается простым:
- запустить
bootstrap.cmd - при наличии
dist\WinAppPackLauncher.exeсначала откроется бинарный launcher - если бинарника нет, включится fallback-меню на
cmd+PowerShell
Важно не смешивать текущее состояние и план:
| Слой | Статус | Комментарий |
|---|---|---|
| Пользовательский entrypoint | Текущий | bootstrap.cmd в корне проекта |
| Install / preflight backend | Текущий | onbording/*.ps1 |
Бинарный launcher в dist\ |
Переходный | bootstrap.cmd запускает dist\WinAppPackLauncher.exe, если файл уже собран |
launcher/launcher.py |
Reference / legacy layer | Python-слой для переходного launcher path и проверки backend flow |
Tauri v2 launcher |
Целевой canonical stack | Описан в ROADMAP.md и задачах 017-020, но cutover еще не завершен |
Итоговая трактовка для README:
- рабочий backend сегодня:
PowerShell - переходный launcher path сегодня: Python reference/bundled binary
- основной целевой launcher stack:
Tauri v2
- Клонируй репозиторий или скачай архив.
- Запусти
bootstrap.cmdиз корня проекта. - Если уже существует
dist\WinAppPackLauncher.exe,bootstrap.cmdпередаст управление ему. - Если бинарника нет, откроется fallback-меню:
1- начать установку2- проверить систему без установки3- открытьREADME.md4- открыть стартовую задачу migration-track наTauri v25- выход
- Для install path подтверди UAC, если система запросит повышение прав.
- После установки перезапусти терминал, чтобы обновился
PATH.
Полезные прямые команды:
bootstrap.cmdonbording\bootstrap.cmd --preflightpowershell -ExecutionPolicy Bypass -File onbording\test.ps1Текущий backend автоматически выбирает лучший доступный способ установки:
1. winget -> основной путь
2. choco -> fallback, если winget недоступен
3. direct -> прямое скачивание с официальных источников
Для каждого пакета сохраняется fallback-цепочка:
winget -> choco -> direct
Это позволяет работать и на обычной Windows 11, и на системах, где winget отключен или отсутствует.
win-app-pack/
├── bootstrap.cmd # Главный пользовательский entrypoint
├── dist/
│ └── WinAppPackLauncher.exe # Запускается первым, если уже собран
├── launcher/
│ └── launcher.py # Python reference / transition layer
├── onbording/
│ ├── bootstrap.cmd # Внутренний launcher для backend flow
│ ├── bootstrap.ps1 # Оркестратор install / preflight
│ ├── common.ps1 # Общие функции
│ ├── preflight.ps1 # Диагностика системы
│ ├── install-core-dev-tools.ps1 # Текущий hardcoded install backend
│ └── test.ps1 # Тесты backend-а
├── tasks/ # План выполнения и отдельные задачи
├── ROADMAP.md # Продуктовое направление
└── README.md
План проекта больше не про "скрипт на 4 пакета", а про такую модель:
- декларативный каталог пакетов и профилей
- plan-driven engine вместо hardcoded
$packages Tauri v2launcher как основной binary-first UI- review plan, diagnostics, live logs, summary
- structured logs, resume, export/import
Ожидаемая стартовая структура нового launcher workspace описана в tasks/017-tauri-v2-shell-and-workspace-foundation.md:
tauri/
├── src/
└── src-tauri/
├── src/
├── capabilities/
└── icons/
README синхронизирован с текущим планом из ROADMAP.md:
Phase 1. Declarative FoundationPhase 2. Installer Engine RefactorPhase 3. Rich UI / UX V2 (Tauri v2)Phase 4. Reliability and RecoveryPhase 5. Distribution and Ecosystem
Ближайший приоритет по roadmap:
- Ввести декларативный каталог пакетов и профилей.
- Перевести engine на
plan JSON. - Переделать launcher в
Tauri v2profile/package browser. - Добавить
preflight warningsиreview plan. - Добавить structured logs и
resume.
Треки задач в tasks/ сейчас читаются так:
000- быстрый UI/UX-only трек без смены backend-модели001-016- основной эволюционный трек: каталог, plan builder, engine, профили, recovery, export017-020- отдельный migration-track для новогоTauri v2launcher-а
Логика Tauri v2 migration-track:
017- поднять отдельныйTauri v2workspace и базовую shell-структуру018- перевести diagnostics / preflight в новый UI019- собрать install flow, UAC handoff и live log streaming020- выполнить bootstrap/docs cutover и убрать двусмысленность вокруг старого Python path
- ROADMAP.md - целевая архитектура, фазы и критерии выхода
- tasks/README.md - порядок выполнения задач, правила раздачи и рекомендации по моделям / reasoning
- tasks/000-current-launcher-ui-ux-polish.md - быстрый short-term UI/UX трек
- tasks/017-tauri-v2-shell-and-workspace-foundation.md - старт нового launcher stack
- tasks/018-tauri-v2-preflight-overview-and-state.md - diagnostics / preflight экран
- tasks/019-tauri-v2-install-flow-uac-and-log-streaming.md - install flow, UAC, live logs
- tasks/020-tauri-v2-bootstrap-packaging-and-cutover.md - docs + bootstrap cutover
До выполнения декларативного трека новый пакет добавляется вручную в текущий backend:
@{
Name = "Node.js"
Command = "node"
WingetId = "OpenJS.NodeJS.LTS"
ChocoId = "nodejs-lts"
DirectFn = ${function:Install-NodeDirect}
}Файл для правки:
onbording/install-core-dev-tools.ps1
Нужно:
- Добавить запись в массив
$packages. - Реализовать
Install-NodeDirectпо аналогии с существующими direct installer functions. - Проверить skip-path, verify и fallback behavior.
Это текущий способ. Целевой способ после фаз 001-003: добавление пакета через декларативный каталог без правки install-логики.
Запуск backend-тестов:
powershell -ExecutionPolicy Bypass -File onbording\test.ps1Текущий набор проверяет:
- синтаксис
.ps1файлов - unit-тесты общих функций
- запуск
preflight.ps1 - запуск
install-core-dev-tools.ps1по skip-path - структуру launcher-файлов и компиляцию
launcher.py - корректность
bootstrap.cmdи выбора install strategy
После установки команда не находится в терминале.
Перезапусти терминал: PATH обновится только в новом сеансе.
winget не работает на моей машине.
Backend автоматически попробует Chocolatey, а затем direct install path.
Можно запускать повторно?
Да. Уже найденные инструменты должны пропускаться.