fix(release): hotfix v0.1.0 build failures #13

Merged
slaid098 merged 1 commit from fix/release/hotfix-v0.1.0 into master 2026-08-11 16:23:51 +03:00
Owner

Что сделано

  • python-version 3.12 → 3.13 (sync с requires-python >=3.13)
  • body = [string](Get-Content CHANGELOG.md -Raw -Encoding UTF8) — fix Forgejo API "cannot unmarshal object into string"
  • Asset upload: Invoke-RestMethod -InFile → curl.exe -F (multipart/form-data)

Почему

Тег v0.1.0 запушен, release build упал на 3 багах. Фикс-коммит 3a7d0b5 из PR #12 не попал в squash merge (Forgejo API взял старый HEAD). Первый build дошёл до PyInstaller (exe собран), упал только на Create Forgejo release.

Watch out

После merge нужно передвинуть tag v0.1.0 на новый master (force-push tag) и push → trigger rebuild

Pending

Передвинуть v0.1.0 → push → rebuild

## Что сделано - python-version 3.12 → 3.13 (sync с requires-python >=3.13) - body = [string](Get-Content CHANGELOG.md -Raw -Encoding UTF8) — fix Forgejo API "cannot unmarshal object into string" - Asset upload: Invoke-RestMethod -InFile → curl.exe -F (multipart/form-data) ## Почему Тег v0.1.0 запушен, release build упал на 3 багах. Фикс-коммит 3a7d0b5 из PR #12 не попал в squash merge (Forgejo API взял старый HEAD). Первый build дошёл до PyInstaller (exe собран), упал только на Create Forgejo release. ## Watch out После merge нужно передвинуть tag v0.1.0 на новый master (force-push tag) и push → trigger rebuild ## Pending Передвинуть v0.1.0 → push → rebuild
fix(release): python 3.13, string body, curl asset upload
All checks were successful
CI / typecheck (pull_request) Successful in 1m28s
CI / complexity (pull_request) Successful in 1m28s
CI / lint (pull_request) Successful in 1m29s
CI / test (pull_request) Successful in 3m39s
939b4ad92a
Author
Owner

Code Review Summary

Hotfix — 3 точечных фикса в .github/workflows/release.yml (4 insertions, 3 deletions). Все три бага исправлены корректно, других изменений в PR нет.

Positives

  • release.yml:14 python-version: '3.12''3.13' — корректно, синхрон с requires-python >=3.13 из pyproject.toml.
  • release.yml:75-76 body = [string](Get-Content CHANGELOG.md -Raw -Encoding UTF8) + ConvertTo-Json -Depth 10[string] cast фиксит Forgejo API "cannot unmarshal object into string"; -Encoding UTF8 + -Depth 10 — безопасные улучшения (default Depth=2 хватило бы для плоского hashtable, но 10 не вредит).
  • release.yml:78 Invoke-RestMethod -InFilecurl.exe -L -F "attachment=@dist/voice-assistant.zip;filename=voice-assistant.zip;type=application/zip" — корректный multipart/form-data для Forgejo release assets API. curl.exe (не curl) обходит PowerShell-alias на Invoke-WebRequest. Заголовок auth и $uploadUrl раскрываются в double-quoted строках корректно.
  • PR body: 4 heading'а (Что сделано/Почему/Watch out/Pending) заполнены осмысленно. Watch out про force-push tag v0.1.0 — важное напоминание.
  • Scope дисциплина: изменён ровно один файл, ровно 3 бага, ничего лишнего.

Suggestions (info, not blocking)

  • release.yml:78 curl.exe без явного --fail — при 4xx/5xx Forgejo вернёт HTML error page, exit code может остаться 0, и шаг пройдёт без asset. Для надёжности можно добавить --fail (или -sS --fail), но это не блокер для hotfix — текущий build упадёт на следующем шаге если asset не загрузился.

Verdict: APPROVE

## Code Review Summary Hotfix — 3 точечных фикса в `.github/workflows/release.yml` (4 insertions, 3 deletions). Все три бага исправлены корректно, других изменений в PR нет. ### Positives - **release.yml:14** `python-version: '3.12'` → `'3.13'` — корректно, синхрон с `requires-python >=3.13` из pyproject.toml. - **release.yml:75-76** `body = [string](Get-Content CHANGELOG.md -Raw -Encoding UTF8)` + `ConvertTo-Json -Depth 10` — `[string]` cast фиксит Forgejo API "cannot unmarshal object into string"; `-Encoding UTF8` + `-Depth 10` — безопасные улучшения (default Depth=2 хватило бы для плоского hashtable, но 10 не вредит). - **release.yml:78** `Invoke-RestMethod -InFile` → `curl.exe -L -F "attachment=@dist/voice-assistant.zip;filename=voice-assistant.zip;type=application/zip"` — корректный multipart/form-data для Forgejo release assets API. `curl.exe` (не `curl`) обходит PowerShell-alias на `Invoke-WebRequest`. Заголовок auth и `$uploadUrl` раскрываются в double-quoted строках корректно. - PR body: 4 heading'а (`Что сделано`/`Почему`/`Watch out`/`Pending`) заполнены осмысленно. `Watch out` про force-push tag v0.1.0 — важное напоминание. - Scope дисциплина: изменён ровно один файл, ровно 3 бага, ничего лишнего. ### Suggestions (info, not blocking) - **release.yml:78** `curl.exe` без явного `--fail` — при 4xx/5xx Forgejo вернёт HTML error page, exit code может остаться 0, и шаг пройдёт без asset. Для надёжности можно добавить `--fail` (или `-sS --fail`), но это не блокер для hotfix — текущий build упадёт на следующем шаге если asset не загрузился. ### Verdict: APPROVE
slaid098 merged commit 2745c85239 into master 2026-08-11 16:23:51 +03:00
slaid098 deleted branch fix/release/hotfix-v0.1.0 2026-08-11 16:23:51 +03:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
slaid098/voice_assistant!13
No description provided.