revise July 2024 release engineering articles
Build and deploy / deploy (push) Successful in 15s

This commit is contained in:
2026-07-31 16:04:34 +03:00
parent 48049ee0ca
commit 78dfdb6015
7 changed files with 952 additions and 1 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# Производство редакционных партий
На 31 июля 2026 года строгий аудит проходит 232 из 358 созданных материалов. Остальные 126 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
На 31 июля 2026 года строгий аудит проходит 235 из 358 созданных материалов. Остальные 123 не считаются «почти готовыми»: их нужно заменить, а не косметически удлинить.
## Одна партия
+46
View File
@@ -0,0 +1,46 @@
# P77 · 2024-07 · Инженерия релиза — три самостоятельных прохода ревью
## Рамка sidecar-пакета
- Archive slugs: <code>editorial-2024-07-practice-release-engineering</code>, <code>editorial-2024-07-mechanism-release-engineering</code>, <code>editorial-2024-07-field-release-engineering</code>.
- Голос: M7, июль 2024. Каждая статья начинает с конкретной версии, artifact, migration plan и rollout card, называет цену расхождения и ведёт по короткой связке «симптом → причина → проверка → действие». Текст не объявляет fixed fixture реальной поставкой, registry, pipeline, CI run, deploy, облаком, журналом доставки или production result.
- Созданы ровно пять sidecar-файлов: этот review, один import-safe script и три локальных SVG. Overlay, README, очередь, <code>articles.json</code>, Git, staging, commit/push и чужие файлы не менялись. Пакет намеренно не интегрирован.
- Fixture хранит только versioned fixed synthetic JS objects в памяти Node: commit, artifact, migration plan, rollout card и rollback candidate. У него нет входа для URL, файлов, environment, clock, реального digest, credential, CI log, deploy target или сети. PASS означает только согласованность embedded teaching records и негативных веток.
## Проход 1 — источники, техника и модель
- Источники сверены 31.07.2026 и намеренно ограничены первичными официальными материалами, доступными к июлю 2024. [SLSA: SLSA v1.0 is now final!](https://slsa.dev/blog/2023/04/slsa-v1-final) датирован 19.04.2023 и фиксирует первый stable SLSA v1.0. В пакет взята узкая дисциплина: artifact, provenance и verification expectations — разные сущности; источник не даёт claim о конкретной сборке или policy команды.
- [GitHub Changelog: Artifact Attestations is generally available](https://github.blog/changelog/2024-06-25-artifact-attestations-is-generally-available/) датирован 25.06.2024. Он показывает, что attestation для build artifact и её verification — отдельные операции. В статьях это служит исторической опорой для разделения artifact, statement и approval, а не заявлением, что sidecar создаёт или проверяет attestation.
- [Kubernetes documentation: Deployments, snapshot 14.03.2024](https://github.com/kubernetes/website/blob/c889d9b2510bba78dbb527a79b8e2099b16f3d67/content/en/docs/concepts/workloads/controllers/deployment.md) — неизменяемый снимок первичной ветки release-1.30, существовавший до конца июля 2024. Из него использована одна граница: Deployment revision и rollback относятся к Pod template. Ни текст, ни fixture не приравнивают такой rollback к отмене migration, data effect или операции в чужой среде.
- Модель задаёт четыре fixed case. <code>fixed-aligned-release</code> связывает release <code>2024.07.0</code>, source commit, artifact digest, compatible migration и proposed rollout card. Три negative cases раздельно показывают artifact, который не binds commit; migration, нацеленную на <code>2024.07.1</code>; и rollout card с другим digest. Они не описывают реальную delivery system.
- <code>inspectSyntheticReleaseEvidence()</code> сравнивает exact relations: version commit/artifact/rollout, <code>artifact.sourceCommitId</code>, migration target и compatibility, requested digest и migration version rollout card, а также versioned return point. False relation ведёт к точному <code>stop-and-reconcile-records</code>, не к retry и не к deploy.
- Input contract закрыт: marker <code>synthetic</code>, exact scope, <code>fixed-memory-only</code> mode и known case id. CI-like/deploy-like extra fields, другой scope, режим чтения registry и unknown case отдельно отклоняются. Во всех report и plan явно записаны <code>not-read</code>, <code>not-run</code> и <code>not-attempted</code> для Git, registry, CI, deploy, cloud, production, delivery logs, filesystem и network.
- План повторно строит canonical report по embedded case и сравнивает весь object. Подмена decision, record или добавление deployment-like field дают отказ. <code>draftSyntheticControlledRollback()</code> выдаёт только versioned return draft для aligned case; чужой action и stop case не проходят. Rollback draft прямо хранит boundary <code>does-not-reverse-data-and-requires-separate-human-review</code>.
- Технические проверки: <code>node --check web/scripts/upgrade-2024-07.mjs</code> — PASS; <code>node web/scripts/upgrade-2024-07.mjs --verify-fixture</code> — PASS, 27/27 assertions. Это проверка модели в памяти, не CI test, deploy validation, artifact verification или production approval.
## Проход 2 — стиль, объём и голос
- Все три ревизии начинают с конкретного сценария и цены. Practice разбирает четыре совпадающие на вид карточки и цену потери source relation. Mechanism показывает, что общий tag скрывает разные objects и превращает retry в ложное действие. Field разбирает aligned case и три разных mismatch, чтобы не называть каждый stop «неудачным релизом».
- В каждом тексте присутствует короткий прагматичный маршрут: symptom — знакомая версия на разных стадиях; cause — свободные связи между records; check — exact predicate commit/artifact/migration/digest; action — stop, reconcile и только потом human review. Нет абстрактного требования «лучше документировать» без owner-а, predicate или следующего шага.
- <code>audit:draft</code> посчитал основной текст без раздела sources: practice — **9 243** знака, mechanism — **10 370** знаков, field — **9 759** знаков. Все три значения внутри обязательного диапазона 5 000–15 000 и целевого коридора 9–11 тыс.
- В каждой статье есть содержательная SVG figure с alt и caption, working table с заголовками, исполнимый Node example, ordered route, ограничения и отдельный следующий проверяемый шаг. Примеры запускают только fixture и прямо называют её synthetic boundary. Они не содержат YAML workflow, real registry path, cloud call, CI log, deploy command или production claim.
- Practice отвечает на вопрос, какие exact links нужны от commit до rollout intent. Mechanism отделяет provenance-like relation, decision draft и controlled rollback boundary. Field учит различать три negative outcomes и направлять вопрос правильному owner-у. Это три разные функции, а не один текст с переставленными заголовками.
- Формулировки вычитаны на M7: version, digest, compatibility, owner, stop condition и rollback появляются только как проверяемые элементы contract. Речь не обещает безопасность, скорость, zero downtime, автоматический data undo, успешный rollout или adoption. «Human deploy review» везде отделён от execution.
- Import-safe gate прошёл внутри <code>npm run audit:draft</code>: CLI <code>--print-revisions</code> и module export совпадают, в ревизиях нет fields <code>date</code> и <code>author</code>, все три stable slug уже существуют в archive, figures/tables/code/routes/sources и local assets найдены.
## Проход 3 — mobile visual, SVG safety и проверки
- <code>release-engineering-2024-delivery-chain.svg</code> показывает направленную цепочку commit → artifact → migration plan → rollout card и явную нижнюю границу human review / rollback draft. <code>release-engineering-2024-rollback-table.svg</code> разделяет code/artifact return point, migration review, rollout intent и evidence gate. <code>release-engineering-2024-evidence-gate.svg</code> ведёт по четырём predicates и показывает, что любое «нет» останавливает разбор.
- У каждого SVG есть собственные <code>title</code> и <code>desc</code>, а в статье — независимые alt и caption. Подписи отделяют static teaching contract от реального CI, registry, cloud, delivery log, production rollout и data recovery. В схемах нет внешнего input или поведенческих элементов.
- <code>xmllint --noout</code> для трёх SVG — PASS. Safety scan — PASS: отсутствуют <code>script</code>, <code>foreignObject</code>, <code>javascript:</code>, <code>data:image</code>, event-handler attributes, <code>image</code>, <code>href</code>, <code>url(...)</code> и внешние URL (кроме обязательного XML namespace).
- Sharp отрендерил все три final SVG на ширине **375 px**: delivery chain — 375×256, rollback table — 375×256, evidence gate — 375×269. Первый mobile review обнаружил clipping слишком длинного заголовка rollback table; заголовок сокращён до «Rollback: версия, artifact и migration», затем XML, safety scan и Sharp-render повторены. После исправления titles, cards, стрелки, stop branches, нижние boundaries и таблица читаются без clipping, overlap или горизонтального overflow.
- Финальный набор: <code>node --check</code> — PASS; <code>--verify-fixture</code> — PASS 27/27; <code>cd web &amp;&amp; npm run audit:draft -- scripts/upgrade-2024-07.mjs</code> — PASS для трёх slug и указанных объёмов; <code>xmllint</code> — PASS; SVG safety — PASS; Sharp 375 px — PASS. npm вывел существующие предупреждения о user config, но audit завершился code 0 и на проверку draft не повлиял.
- Пакет остаётся sidecar: overlay, README, queue, <code>articles.json</code> и Git не обновлялись; staging, commit и push не выполнялись. Реальные evidence collection, authorization, policy, migration rehearsal, CI, registry verification, deploy, rollout observation и data recovery требуют отдельного разрешённого процесса.
## Выпуск после трёх независимых проходов
1. **Факты и техника.** Редактор повторно проверил GitHub Changelog от 25.06.2024: создание и проверка artifact attestation разделены; SLSA v1.0 действительно опубликована как первая stable version 19.04.2023. Для Kubernetes найден технический дефект источника: публичный historical subdomain не проходит TLS-проверку. Ссылка заменена на неизменяемый первичный snapshot `c889d9b` от 14.03.2024 в официальном репозитории Kubernetes; он подтверждает, что revision создаётся при изменении Pod template, а rollback возвращает template, а не data effect. `node --check` и fixture — **PASS 27/27**.
2. **Редактура и голос.** Повторное чтение подтвердило три разные задачи: practice описывает связи релиза, mechanism — критерии и границу controlled rollback, field — диагностирует три вида mismatch. Служебный номер партии в публичный текст не попал. Основной текст проходит диапазон: **9 243**, **10 370** и **9 759** знаков; в каждом материале есть конкретная цена ошибки, таблица, фигура, пример, ограничение и следующий шаг.
3. **Визуал и выпуск.** Все SVG прошли XML и safety scan, затем были отрендерены Sharp и просмотрены на 375 px: подписи и stop-ветви читаемы, clipping отсутствует. После подключения overlay `audit:articles` подтвердил по figure/table/code example на каждый slug; registry содержит **226** уникальных ревизий. `npm run build` завершился успешно: **374** статические страницы.
В выпуск войдут только пять файлов июля, обновления registry/production README и результат этой приёмки. Изменения пользователя, черновики других месяцев и исходный `articles.json` в него не включаются.