Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

Win App Pack

Автоматическая подготовка Windows-окружения разработчика.

Сейчас проект умеет поднимать базовый набор инструментов через bootstrap.cmd и PowerShell backend. Целевое направление проекта: Tauri v2 launcher, декларативный каталог пакетов и plan-driven install flow.

Навигация

Что проект делает сейчас

На текущем 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

Быстрый старт

  1. Клонируй репозиторий или скачай архив.
  2. Запусти bootstrap.cmd из корня проекта.
  3. Если уже существует dist\WinAppPackLauncher.exe, bootstrap.cmd передаст управление ему.
  4. Если бинарника нет, откроется fallback-меню:
    • 1 - начать установку
    • 2 - проверить систему без установки
    • 3 - открыть README.md
    • 4 - открыть стартовую задачу migration-track на Tauri v2
    • 5 - выход
  5. Для install path подтверди UAC, если система запросит повышение прав.
  6. После установки перезапусти терминал, чтобы обновился PATH.

Полезные прямые команды:

bootstrap.cmd
onbording\bootstrap.cmd --preflight
powershell -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

Целевая архитектура после cutover

План проекта больше не про "скрипт на 4 пакета", а про такую модель:

  • декларативный каталог пакетов и профилей
  • plan-driven engine вместо hardcoded $packages
  • Tauri v2 launcher как основной 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/

Roadmap и треки задач

README синхронизирован с текущим планом из ROADMAP.md:

  1. Phase 1. Declarative Foundation
  2. Phase 2. Installer Engine Refactor
  3. Phase 3. Rich UI / UX V2 (Tauri v2)
  4. Phase 4. Reliability and Recovery
  5. Phase 5. Distribution and Ecosystem

Ближайший приоритет по roadmap:

  1. Ввести декларативный каталог пакетов и профилей.
  2. Перевести engine на plan JSON.
  3. Переделать launcher в Tauri v2 profile/package browser.
  4. Добавить preflight warnings и review plan.
  5. Добавить structured logs и resume.

Треки задач в tasks/ сейчас читаются так:

  • 000 - быстрый UI/UX-only трек без смены backend-модели
  • 001-016 - основной эволюционный трек: каталог, plan builder, engine, профили, recovery, export
  • 017-020 - отдельный migration-track для нового Tauri v2 launcher-а

Логика Tauri v2 migration-track:

  1. 017 - поднять отдельный Tauri v2 workspace и базовую shell-структуру
  2. 018 - перевести diagnostics / preflight в новый UI
  3. 019 - собрать install flow, UAC handoff и live log streaming
  4. 020 - выполнить bootstrap/docs cutover и убрать двусмысленность вокруг старого Python path

Связанные документы

Как добавить новый пакет сейчас

До выполнения декларативного трека новый пакет добавляется вручную в текущий backend:

@{
    Name     = "Node.js"
    Command  = "node"
    WingetId = "OpenJS.NodeJS.LTS"
    ChocoId  = "nodejs-lts"
    DirectFn = ${function:Install-NodeDirect}
}

Файл для правки:

onbording/install-core-dev-tools.ps1

Нужно:

  1. Добавить запись в массив $packages.
  2. Реализовать Install-NodeDirect по аналогии с существующими direct installer functions.
  3. Проверить 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

FAQ

После установки команда не находится в терминале.
Перезапусти терминал: PATH обновится только в новом сеансе.

winget не работает на моей машине.
Backend автоматически попробует Chocolatey, а затем direct install path.

Можно запускать повторно?
Да. Уже найденные инструменты должны пропускаться.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages