release: prepare 0.6.2 Linux and Windows packages

This commit is contained in:
2026-11-03 15:22:40 +03:00
parent d23daa5578
commit c950b9cbfb
7 changed files with 239 additions and 32 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# Desktop builds and releases
For this fork’s Linux and Windows 0.6.0 release on Gitea, see [Gitea releases](gitea-release.md).
For this fork’s Linux and Windows 0.6.2 release on Gitea, see [Gitea releases](gitea-release.md).
The three-platform GitHub process below documents the upstream reference.
## Platforms
+61 -2
View File
@@ -2,7 +2,8 @@
The release destination is
https://git.sorokin-oleg-edu.xyz/sorokin.oleg.edu/learnharness.
Version **0.6.1 is Linux x64 AppImage-only**; follow the dedicated procedure below.
Version **0.6.2 targets Linux x64 AppImage and Windows x64 NSIS**; follow the
dedicated procedure below. Version 0.6.1 was Linux x64 AppImage-only.
The historical **0.6.0 release targets Linux x64 and Windows x64**, with each platform built
and verified on its native operating system. The upstream GitHub workflow and three-platform packaging
configuration remain available as reference in `.github/workflows/release.yml`
@@ -19,7 +20,65 @@ Gitea's `latest` alias resolves the most recent published, non-prerelease releas
Drafts do not become updates. The repository and published downloads must be
public; no API credential is embedded in the application.
## 0.6.1: Linux x64 AppImage-only upload and verification
## 0.6.2: Linux AppImage and Windows installer
Build both platforms from the same release commit with Node 26. Use a clean
checkout on each native operating system so local credentials, environment
files, application data, and older packages cannot enter the standalone payload.
The Windows installer retains the existing unsigned per-user NSIS configuration.
After dependency installation, run the typecheck, deterministic tests, lint,
native renderer tests, and standalone runtime smoke checks. Include
`tests/desktop-logger.test.ts` under each platform's bundled Electron Node to
exercise the broken-pipe and retention regressions in the shipped runtime.
Curate the standalone payload with `node scripts/build-server.mjs`, then package:
```sh
# Native Linux checkout
npx electron-builder --config electron-builder.gitea.yml --linux AppImage --x64 --publish never
# Native Windows checkout
npx electron-builder --config electron-builder.gitea.yml --win --x64 --publish never
```
Verify each packaged updater with `scripts/gitea-release.mjs verify-package` and
run the provider, server, and browser-helper smoke checks against that package's
own standalone tree and executable. Copy only these six assets into a staging
directory (the checksum command creates the final file):
- `LearnHarness-0.6.2-x86_64.AppImage`
- `LearnHarness-0.6.2-x64-setup.exe`
- `LearnHarness-0.6.2-x64-setup.exe.blockmap`
- `latest-linux.yml`
- `latest.yml`
- `SHA256SUMS`
```sh
node scripts/gitea-release.mjs checksums /path/to/staging --appimage-windows
node scripts/gitea-release.mjs verify /path/to/staging --appimage-windows
```
This explicit scope preserves the historical Linux defaults and AppImage-only
mode. It rejects extra staged files, checks both installer headers and updater
feeds against the actual bytes, regenerates the Windows blockmap with the pinned
packager to verify every chunk and full installer coverage, and verifies the
combined SHA-256 manifest. It includes no Debian, RPM, or macOS packages.
Commit and push the release source and its matching annotated `v0.6.2` tag.
Supply the Gitea API token privately, then prepare and verify the draft:
```sh
node scripts/gitea-release.mjs upload /path/to/staging --appimage-windows
node scripts/gitea-release.mjs verify-remote /path/to/staging --appimage-windows
```
The uploader reads notes from `docs/release-0.6.2.md`, requires the remote tag,
keeps the release a stable draft, and downloads all six attachments to compare
their SHA-256 hashes with the validated local files. It refuses published or
ambiguous releases and mismatched existing attachments. Publication follows
human review of the completed draft.
## Historical 0.6.1: Linux x64 AppImage-only upload and verification
This release has exactly three attachments:
+33
View File
@@ -0,0 +1,33 @@
# LearnHarness 0.6.2
## English
This release fixes a critical desktop logging bug that could consume hundreds of
gigabytes of disk space when the application's output pipe closed.
- Stops the repeated `EPIPE` exception loop after a launcher or terminal closes
its output pipe. Uncaught errors are recorded directly to the log file.
- Keeps desktop diagnostics within two files of 5 MiB each, for a maximum of
10 MiB. Existing oversized logs are trimmed on startup, retaining recent data.
- Handles output backpressure, full disks, and log rotation failures without
starting another logging failure loop.
Packages: Linux x64 AppImage and Windows x64 NSIS installer. Both receive updates
from this fork's Gitea releases. The Windows installer remains unsigned.
## Русский
Выпуск исправляет критическую ошибку журналирования: после закрытия канала
вывода приложение могло занять сотни гигабайт на диске.
- Устранён цикл повторных исключений `EPIPE` после закрытия канала вывода
терминалом или программой запуска. Необработанные ошибки записываются
непосредственно в файл журнала.
- Журналы ограничены двумя файлами по 5 МиБ, всего до 10 МиБ. При запуске
прежние слишком большие журналы сокращаются с сохранением последних данных.
- Переполнение канала вывода, заполненный диск и ошибки ротации журналов
больше не вызывают новый цикл ошибок журналирования.
Пакеты: AppImage для Linux x64 и установщик NSIS для Windows x64. Обе версии
получают обновления из выпусков этого форка в Gitea. Установщик Windows
по-прежнему не подписан.