server-monitor-manager/agents/claude/done/2026-08-18-deps-update.md
Ochenstarik d52bb0e515 chore(agents): задания, отчёты и разбор PR #63
Задания и отчёты по актуализации проекта согласно agents/README.md:
синхронизация git-состояния, обновление зависимостей, разбор PR #63.

Правок workflow ветка не несёт: обновления GitHub Actions доставляются
слиянием PR Dependabot #44 и #46, чтобы не применить одно и то же дважды.
PR #45 (cosign-installer) не принят — релизный workflow на pull request
не выполняется, поэтому зелёные проверки его не покрывают.

Также добавлена записка передачи состояния, закоммитить её разрешил
владелец.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 16:29:20 +07:00

151 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчёт: обновление зависимостей GitHub Actions и NuGet
- **Задание:** `../inbox/2026-08-18-deps-update.md`
- **Агент:** `claude`
- **Дата:** 2026-08-18
- **Ветка / коммиты:** `claude/deps-update`. Правок workflow эта ветка не
несёт — см. «Как доставлено».
## Что сделано
Разобрано отставание зависимостей и проверены три открытых PR Dependabot по
GitHub Actions. Проверка была содержательной, а не сводилась к «CI зелёный».
- `actions/download-artifact` v4.1.8 → v8.0.1 (PR #46). Затрагивает одну
точку — `linux-release.yml:256`; это была последняя старая ссылка в дереве,
`linux-platform-matrix.yml` уже использовал v8.0.1 (SHA `3e5f45b2…`).
Обновление приводит репозиторий к одной версии.
- `docker/setup-qemu-action` → v4.2.0 (PR #44). Одна точка,
`linux-control-agent.yml:83`; прежняя ссылка была закреплена по SHA
`c7c53464…` с комментарием `# v3` без минорной версии.
- `sigstore/cosign-installer` v3.5.0 → v4.1.2 (PR #45). **Не принят**,
причина в разделе «Вопросы к приёмке».
Все три правки я предварительно применял локально и построчно сверял с
ветками Dependabot — совпадение полное. Затем правки из ветки сняты, чтобы
не применить одно и то же дважды: доставка идёт слиянием PR Dependabot.
NuGet не обновлялся — см. «Что не сделано».
## Как доставлено
Решением владельца от 2026-08-18: сливаются PR #44 и #46, правки из этой
ветки сняты. В ветке остаются только задания, отчёты и записка передачи
состояния. PR #45 остаётся открытым.
## Как проверено
Сверка применённых правок с ветками Dependabot (до снятия правок):
```
$ git diff -- .github/ | grep -E '^[+-][^+-]' | sort > mine.lines
$ for b in dependabot/github_actions/actions/download-artifact-8.0.1 \
dependabot/github_actions/sigstore/cosign-installer-4.1.2 \
dependabot/github_actions/docker/setup-qemu-action-4.2.0; do
git diff origin/main...origin/$b -- .github/
done | grep -E '^[+-][^+-]' | sort > pr.lines
$ diff pr.lines mine.lines
СОВПАДАЕТ построчно
```
Старых версий после применения в дереве не оставалось:
```
$ grep -rn "download-artifact@fa0a91b8\|cosign-installer@v3\|setup-qemu-action@c7c53464" .github/workflows/
старых версий не осталось
```
YAML всех шести workflow разбирается:
```
$ for f in .github/workflows/*.yml; do python -c "import sys,yaml;yaml.safe_load(open(sys.argv[1],encoding='utf-8'));print('OK',sys.argv[1])" "$f"; done
OK .github/workflows/linux-control-agent.yml
OK .github/workflows/linux-platform-matrix.yml
OK .github/workflows/linux-release.yml
OK .github/workflows/release-verification.yml
OK .github/workflows/windows-build.yml
OK .github/workflows/windows-release.yml
```
Текущее состояние ветки — правок workflow нет:
```
$ git diff 23eb3f5 --stat -- .github/
(пусто)
```
## Что не сделано
**NuGet не обновлён — нет .NET SDK на машине.**
```
$ dotnet --version
bash: dotnet: command not found
PS> Get-Command dotnet
dotnet not found on PATH
```
В `Directory.Build.props` включён `RestorePackagesWithLockFile=true`, в CI
сборка идёт с `-p:RestoreLockedMode=true`, и в дереве семь
`packages.lock.json`. Поднять версию в `Directory.Packages.props` без
пересборки lock-файлов — гарантированно уронить CI. Без SDK пересобрать их
нечем, поэтому файлы не тронуты.
Отставание по данным `api.nuget.org` на 2026-08-18 (запрошены версии,
`dotnet list package --outdated` не запускался):
| Пакет | В репозитории | Актуальная |
|-------|---------------|------------|
| Microsoft.AspNetCore.Authentication.Certificate | 10.0.10 | 10.0.11 |
| Microsoft.AspNetCore.Mvc.Testing | 10.0.10 | 10.0.11 |
| Microsoft.Data.Sqlite | 10.0.10 | 10.0.11 |
| Microsoft.Extensions.Configuration.* (4 пакета) | 10.0.10 | 10.0.11 |
| System.Security.Cryptography.ProtectedData | 10.0.0 | 10.0.11 |
| Microsoft.NET.ILLink.Tasks (`Directory.Build.props`) | 10.0.10 | 10.0.11 |
| Microsoft.Windows.SDK.BuildTools | 10.0.28000.2270 | 10.0.28000.2526 |
| Microsoft.Windows.SDK.BuildTools.WinApp | 0.4.0 | 0.6.0 |
| Microsoft.WindowsAppSDK | 2.2.0 | 2.4.0 |
| Microsoft.NET.Test.Sdk | 18.8.1 | 18.9.0 |
| xunit.v3 | 3.2.2 | 4.0.0 (мажорная) |
| xunit.runner.visualstudio | 3.1.5 | 4.0.0 (мажорная) |
| SQLitePCLRaw.bundle_e_sqlite3 | 3.0.5 | 3.0.5 — актуален |
Открытых PR Dependabot по NuGet нет, хотя в `.github/dependabot.yml`
экосистема `nuget` настроена с недельным интервалом. Причина не определена.
## Замечено рядом
Вне границ задачи; предлагаю отдельными заданиями.
1. **`sigstore/cosign-installer` закреплён тегом, а не SHA.** Все остальные
действия в репозитории закреплены по коммиту с комментарием версии;
cosign-installer — единственное исключение, и это единственное действие,
от которого зависит подпись релиза. Тег подвижен.
2. **`Microsoft.Windows.SDK.BuildTools.WinApp` 0.4.0** — версия ниже 1.0,
мажорных гарантий совместимости нет; переход на 0.6.0 делать отдельно.
3. **xunit 3 → 4 — мажорный переход** для двух пакетов, отдельной задачей
с прогоном тестов.
## Вопросы к приёмке
**PR #45 (`cosign-installer` 3.5.0 → 4.1.2) не принят к слиянию.**
Зелёные проверки на #45 и #46 про релиз ничего не доказывают:
`linux-release.yml` запускается только по `push` тега `v*` и по
`workflow_dispatch` (строки 312), на pull request он не выполняется вовсе.
Мажорная смена installer меняет версию cosign у producer, а
`deploy/ochenstarik-server-monitor-manager.sh:34` фиксирует у consumer
`COSIGN_VERSION="v3.1.3"` с проверкой SHA-256. Какую версию cosign ставит
installer 4.1.2 по умолчанию — не проверял, это не определено.
`docs/release-policy.md` показывает четыре поломки контракта
producer/consumer по cosign: alpha.12, alpha.13, alpha.17, alpha.18.
Предлагаю до слияния #45 прогнать `Release pipeline` через
`workflow_dispatch` на репетиционном теге — с оговоркой из
`agents/claude/notes/2026-08-18-передача-состояния.md`: репетиция идёт по
`refs/heads/main` и пропускает шаги под условием `refs/tags/*`, так был
сожжён alpha.19. Значит проверять нужно ещё и то, что нужные шаги вообще
исполнялись.
Второй вопрос: обновлять ли NuGet отдельным заданием на машине с .NET SDK.