Процесс релиза¶
EmbrAIon использует versioned framework releases, публикуемые из validated release commits.
Contract¶
- GitHub
main— upstream source of truth. - Stable releases используют immutable
vX.Y.Ztags. - Python distributions публикуются в PyPI через Trusted Publishing.
- GitHub Releases включают source, Codex, Copilot, Claude Code и Portable artifacts.
- Новые проекты bootstrap из published framework version.
- Существующие проекты pin'ят version в
.embraion/project.yaml. - Global launcher разрешает exact published pins в isolated per-version runtimes.
- Project upgrades всегда намеренные и выполняются через
embraion update.
Release gate¶
До разрешённого релизного слияния завершите self-review автора, обязательные тесты/CI и цикл независимого Reviewer внутри хоста. После всех исправлений reviewer явно подтверждает полный текущий SHA исходного HEAD PR. Последующее изменение требует повторного подтверждения. Разрешения пользователя на merge и release остаются отдельными gates; Copilot Review не требуется. Итоговый squash-коммит получает новый SHA и запускает проверки ниже.
Release commit использует точное сообщение:
release: vX.Y.Z
Тело squash-коммита может содержать только trailers Co-authored-by, которые GitHub добавляет, когда в pull request есть коммиты других авторов. Остальное описание по умолчанию очистите перед слиянием: любой другой текст в теле остановит release workflow до создания tag, и ничего не будет опубликовано.
До создания tag CI проверяет:
- Linux, Windows и macOS compatibility;
- minimum и selected latest Python versions;
- framework validation;
- unit/integration tests;
- project resolver E2E;
- packaged reference-project E2E;
- security scanning;
- behavioral eval smoke;
- Core assignment routing и capability-aware regression coverage для Codex, Copilot, Claude Code и Portable;
- generation of host projections;
- strict documentation build.
Только после успешных checks workflow создаёт immutable release tag и запускает tagged build.
Tagged build снова проверяет version/tag contract, строит distributions/release archives, создаёт GitHub Release и публикует Python distributions в PyPI.
Обновление self-host¶
После того как GitHub Release проходит consumer artifact lock smoke, workflow предлагает обновление self-host: на main он запускает embraion update, затем embraion install для хостов Codex (--config-mode merge), Copilot, Claude Code и Portable выпущенным launcher и открывает pull request chore/self-host-vX.Y.Z. Если pin уже равен релизу или новее, pull request не создаётся. Pull requests, открытые workflow token, не запускают pull_request workflows, поэтому job запускает validate и docs для ветки через dispatch. Pull request проходит обычные review и merge gates и никогда не сливается автоматически.
Для создания pull request нужна настройка репозитория, разрешающая GitHub Actions создавать pull requests. Без неё job завершается ошибкой после push ветки. После включения настройки перезапустите job: он откроет pull request из существующей ветки, если она содержит ровно результат запуска, а иначе завершится ошибкой, чтобы ветку проверил человек.
Assignment-routing eval fixtures проверяют grading и regression behavior, но не подтверждают live native execution. Evidence различает prepared arguments, capability limitations, handoffs и действительно применённые settings.
Совместимость pre-1.0¶
Patch releases предназначены для совместимых fixes/improvements. Minor releases могут намеренно развивать framework contracts. Project pinning сохраняет upgrades explicit.
Изменения необязательных capabilities¶
Необязательные inventory, правила структуры и связи knowledge-maintenance версии 0.20 добавляются без изменения поведения существующих overlays. Перед публикацией проверяйте схемы, пути выбранного bundle, ресурсы установленного wheel и все host projections. Проводите настоящую оценку skill при доступном авторизованном native host; явно сообщайте сбои host и недоступные evidence. Детерминированные fixtures и fake-host tests не заменяют live behavioral evidence и не обосновывают заявления об улучшении. Релиз не устанавливает provider login или credentials.