diff --git a/HISTORY/2026-09-30_dev_release_2_0_1.md b/HISTORY/2026-09-30_dev_release_2_0_1.md new file mode 100644 index 0000000..acee516 --- /dev/null +++ b/HISTORY/2026-09-30_dev_release_2_0_1.md @@ -0,0 +1,37 @@ +# Релиз dev-провайдера 2.0.1 (2026-09-30) + +**Стенд:** dev. **Namespace:** `nubes-dev/nubes`. **Версия:** `2.0.1`. +**Команда:** `./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/dev` +(цикл: `01` YAML из API → `02` Go-ресурсы + доки → сборка 3 платформ → SHA256SUMS → +GPG → заливка 5 объектов в S3). + +## Что вошло (правки сессии по итогам анализа и ревью) + +| Правка | Файл | +|---|---| +| Транзиентный 401 ретраится для GET | `core/http.go` | +| Partial state при ошибке после создания инстанса (Q5) | `core/instance_create.go`, `templates/instance.go` | +| Idempotency pre-check по live без схемы операции | `core/modifier_compare.go`, `core/operation_run_bycode.go` | +| ImportState модификаторов заполняет Required | `resources_core/{nsxt_snat,org_ip_allocation}_resource.go` | +| Страж хардкодов покрыл `provider/` | `TOOLS/scripts/check_hardcoded_service_ids.sh` | + +Документация: `TOOLS/ARCHITECTURE.md` (разделы «API Resilience», «Modifier Idempotency», +«Lifecycle Vocabulary»), `HISTORY/2026-09-30_core_and_modifiers_remediation.md`. + +## Проверки после заливки + +| Проверка | Результат | +|---|---| +| sha256 локальной сборки vs `SHA256SUMS` (linux/amd64) | ✅ совпадает (`868518880edafccdf723806e6a136d083ee433a1d1d0ffb06737995810a68e8d`) | +| Локальный размер linux-архива | 13 172 824 B | +| `GET /v1/providers/nubes-dev/nubes/versions` | ✅ содержит `2.0.1` (+ `2.0.0`, `2.0.21`–`2.0.24`) | +| `GET /v1/providers/nubes-dev/nubes/2.0.1/download/linux/amd64` | ✅ HTTP 200 (302 на presigned S3) | +| Объекты в S3 | 5 шт. (3 zip + `SHA256SUMS` + `SHA256SUMS.sig`), загрузка 37.92 MiB | + +## ⚠️ Примечания + +- Версия `2.0.1` создана **заново** — ранее она входила в диапазон `2.0.0`–`2.0.20`, + физически удалённый из dev-реестра (см. `HISTORY/2026-09-30_dev_registry_prune_versions.md`). +- `VERSION` в `TOOLS/config/dev/profile.env`: `2.0.0` → `2.0.1`. +- `test` и `prod` **не перезаливались** — правки ядра в них не включены (по указанию владельца). +- Версия `2.0.0` в реестре осталась от предыдущей заливки (там правок нет). diff --git a/TOOLS/config/dev/profile.env b/TOOLS/config/dev/profile.env index 4e41d29..a611445 100644 --- a/TOOLS/config/dev/profile.env +++ b/TOOLS/config/dev/profile.env @@ -4,7 +4,7 @@ TOKEN_FILE="secrets/dev.token" # Release versions # Version -VERSION="2.0.0" +VERSION="2.0.1" NAMESPACE="nubes-dev" PROVIDER_NAME="nubes" diff --git a/VERSIONS.md b/VERSIONS.md index 2dff663..320e57d 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -5,12 +5,14 @@ | Стенд | Namespace | Версия | Дата заливки | Примечание | |---|---|---|---|---| | PROD | `nubes` | `1.0.0` | 2026-09-30 | **перезалит свежей сборкой** (перегенерация YAML + сборка из текущего кода) | -| DEV | `nubes-dev` | `2.0.0` | 2026-09-30 | **перезалит свежей сборкой**; в реестре также остаются `2.0.21`–`2.0.24` | -| TEST | `nubes-test` | `3.0.0` | 2026-09-30 | **перезалит свежей сборкой** | +| DEV | `nubes-dev` | `2.0.1` | 2026-09-30 | свежая сборка с правками ядра: 401 в ретрае GET, partial state при ошибке create (Q5), idempotency pre-check по live, ImportState модификаторов; в реестре также `2.0.0`, `2.0.21`–`2.0.24` | +| TEST | `nubes-test` | `3.0.0` | 2026-09-30 | **перезалит свежей сборкой** (правки ядра НЕ включены) | > ⚠️ **Хранение в реестре (2026-09-30):** в dev-реестре (`nubes-dev/nubes`) оставлены только > `2.0.21`–`2.0.24`; версии `2.0.0`–`2.0.20` удалены физически (бакет un-versioned). -> Подробности и проверки: `HISTORY/2026-09-30_dev_registry_prune_versions.md`. +> Версия `2.0.1` создана заново 2026-09-30 (ранее входила в удалённый диапазон). +> Подробности и проверки: `HISTORY/2026-09-30_dev_registry_prune_versions.md`, +> `HISTORY/2026-09-30_dev_release_2_0_1.md`. ## Как проверить