- Репозиторий:
b24-ai-starter - Цель: подготовить новую «ветку» разработки (например,
v2,v3) без затрагивания текущей версии - Инструмент: скрипт
scripts/create-version.sh, который полностью копирует рабочую папку вversions/<имя>и обновляетAPP_VERSIONв.env
- Перед крупными изменениями, которые могут нарушить стабильную версию
- Для подготовки новой продуктовой линии приложения (V2, V3, …)
- Когда нужно показать заказчику несколько вариантов реализации одновременно
- Проверка чистоты рабочей копии
git status- Если есть незакоммиченные изменения — зафиксируй или убедись, что их можно копировать
- Запуск скрипта
- Выполни
./scripts/create-version.sh(можно передать имя версии аргументом:./scripts/create-version.sh v3) - Введи новое имя версии без пробелов (
v2,release-2025q1, и т.д.)
- Выполни
- Что делает скрипт
- Создаёт
versions/<имя>и копирует туда текущий проект (frontend, backends, инфраструктуру, .env и т.п.) - Пропускает
.git, уже существующиеversions/, тяжёлые папки (node_modules,.nuxt,vendor,.venv,logs) - Добавляет/обновляет строку
APP_VERSION=<имя>в.env
- Создаёт
- Пост-операции
- Перейди в созданную папку:
cd versions/<имя> - Запусти нужный стек (
make dev-php,make dev-python,make dev-node) - Проверь
/api/healthи интерфейс, чтобы убедиться, что версия работает автономно - Если пользуешься
make dev-init, скрипт сам предложит выбрать версию или можно запуститьDEV_INIT_VERSION=<имя> make dev-init/./scripts/dev-init.sh --version <имя> - Для удобства можно использовать
make create-version VERSION=<имя>иmake delete-version VERSION=<имя>— они проксируют соответствующие скрипты (безVERSIONвключается интерактив)
- Перейди в созданную папку:
- Папка
versions/<имя>содержит полный проект -
.envв корне обновлён на новую версию (APP_VERSION=<имя>) - Контейнеры/скрипты запускаются из новой папки
- Клиентская и серверная части работают независимо от старой версии
- Добавлена заметка в документацию/трекер задачи о создании версии
- Имя уже существует: удали/переименуй старую копию или выбери другое имя
- rsync отсутствует: установи пакет и повтори запуск (
brew install rsyncна macOS;sudo apt install rsyncдля Debian/Ubuntu;sudo dnf install rsyncдля Fedora/RHEL;sudo pacman -S rsyncдля Arch) - Хотим заново: просто запусти скрипт снова с другим именем — уже созданная папка не перезаписывается
- Нужно вернуться к старой версии: открой папку
versions/<старое имя>или сбросьAPP_VERSIONв.env - Нужно удалить версию: воспользуйся
./scripts/delete-version.sh <имя>— скрипт покажет список доступных версий, запросит подтверждение и при необходимости удалит строкуAPP_VERSIONв.env
versions/по умолчанию попадает в коммиты — если нужна только локальная копия, добавь каталог в.gitignore- Каждая версия — это полноценный проект. Удаляя папку, вы удаляете конкретную версию
- Скрипт копирует актуальное состояние, включая незакоммиченные изменения
scripts/dev-init.shпонимает ключ--version <имя>и переменнуюDEV_INIT_VERSION, поэтому можно сразу запускать нужную копию без ручногоcd
Используй этот промпт, когда нужно безопасно подготовить новую итерацию приложения на базе стартера. Агенты должны следовать шагам строго по порядку и подтверждать каждый пункт чеклиста.