Skip to content

Latest commit

 

History

History
52 lines (44 loc) · 5.55 KB

File metadata and controls

52 lines (44 loc) · 5.55 KB

🤖 Промпт: создание новой версии проекта

Контекст

  • Репозиторий: b24-ai-starter
  • Цель: подготовить новую «ветку» разработки (например, v2, v3) без затрагивания текущей версии
  • Инструмент: скрипт scripts/create-version.sh, который полностью копирует рабочую папку в versions/<имя> и обновляет APP_VERSION в .env

Когда вызывать этот промпт

  • Перед крупными изменениями, которые могут нарушить стабильную версию
  • Для подготовки новой продуктовой линии приложения (V2, V3, …)
  • Когда нужно показать заказчику несколько вариантов реализации одновременно

Последовательность действий

  1. Проверка чистоты рабочей копии
    • git status
    • Если есть незакоммиченные изменения — зафиксируй или убедись, что их можно копировать
  2. Запуск скрипта
    • Выполни ./scripts/create-version.sh (можно передать имя версии аргументом: ./scripts/create-version.sh v3)
    • Введи новое имя версии без пробелов (v2, release-2025q1, и т.д.)
  3. Что делает скрипт
    • Создаёт versions/<имя> и копирует туда текущий проект (frontend, backends, инфраструктуру, .env и т.п.)
    • Пропускает .git, уже существующие versions/, тяжёлые папки (node_modules, .nuxt, vendor, .venv, logs)
    • Добавляет/обновляет строку APP_VERSION=<имя> в .env
  4. Пост-операции
    • Перейди в созданную папку: 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

Используй этот промпт, когда нужно безопасно подготовить новую итерацию приложения на базе стартера. Агенты должны следовать шагам строго по порядку и подтверждать каждый пункт чеклиста.