release: prepare v0.6.1 AppImage for new Gitea host

This commit is contained in:
2026-11-01 02:43:15 +03:00
parent 3377f4726b
commit a369bba4ec
7 changed files with 252 additions and 19 deletions
+80 -3
View File
@@ -1,8 +1,9 @@
# Gitea releases for this fork
The release destination is
https://server2.sorokin-oleg-edu.xyz/replicated/learnharness.
Version **0.6.0 targets Linux x64 and Windows x64**, with each platform built
https://git.sorokin-oleg-edu.xyz/replicated/learnharness.
Version **0.6.1 is Linux x64 AppImage-only**; follow the dedicated procedure below.
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`
and `electron-builder.yml`.
@@ -11,13 +12,89 @@ Official fork packages use `electron-builder.gitea.yml`, which inherits the
upstream packaging and replaces its update origin with:
```
https://server2.sorokin-oleg-edu.xyz/replicated/learnharness/releases/download/latest
https://git.sorokin-oleg-edu.xyz/replicated/learnharness/releases/download/latest
```
Gitea's `latest` alias resolves the most recent published, non-prerelease release.
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
This release has exactly three attachments:
- `LearnHarness-0.6.1-x86_64.AppImage`
- `latest-linux.yml`
- `SHA256SUMS`
No Windows, macOS, Debian (`.deb`), or RPM packages belong in this release.
Use `docs/release-0.6.1.md` for the release notes. The procedures below this
section retain the historical 0.6.0/full-release instructions; do not use their
Debian/Windows asset inventory for 0.6.1.
Stage only the three listed files for upload. Before upload, generate and verify
checksums using the existing helper's explicit offline AppImage-only mode:
```sh
node scripts/gitea-release.mjs checksums dist --appimage-only
node scripts/gitea-release.mjs verify dist --appimage-only
```
Run these commands from the 0.6.1 source checkout. They validate the AppImage,
feed version, filename, size, SHA-512, and SHA-256 manifest. `SHA256SUMS` must
cover only the AppImage and `latest-linux.yml`. The offline verifier checks the
expected files, not the absence of unrelated files: separately check that the
upload selection contains exactly the three names above. Confirm the packaged
`resources/app-update.yml` has the generic provider and the current update URL
shown above before uploading.
The unchanged `desktop:release:linux` script still builds AppImage and Debian
packages, so do not use it or the historical manual Actions workflow for this
AppImage-only release. Package explicitly with:
```sh
electron-builder --config electron-builder.gitea.yml --linux AppImage --x64 --publish never
```
After building and verifying the copied server/runtime, verify the embedded
updater with `node scripts/gitea-release.mjs verify-package dist/linux-unpacked`.
The helper uses the current host and accepts `--appimage-only` for `checksums`,
`verify`, `upload`, and `verify-remote`; omitting this flag retains the historical
AppImage-plus-Debian inventory. Supply `GITEA_TOKEN` privately for API operations:
```sh
node scripts/gitea-release.mjs upload dist --appimage-only
node scripts/gitea-release.mjs verify-remote dist --appimage-only
```
The uploader creates or reuses a draft and verifies downloaded attachment bytes;
it does not publish the release. Publication is a separate explicitly authorized
API action after these checks pass.
After the release tag `v0.6.1` exists at the intended source commit in the current
Gitea repository, create or review a draft for that tag on
`git.sorokin-oleg-edu.xyz`. Set its notes from `docs/release-0.6.1.md` and explicitly
upload only the three listed files. Before publication:
1. Confirm the draft tag is `v0.6.1` and its attachment inventory is exactly the
three names above, with sizes matching the locally verified files.
2. Download those three draft attachments into a separate directory and run
`node scripts/gitea-release.mjs verify /path/to/downloaded-assets --appimage-only`
from the 0.6.1 source checkout. Compare the downloaded `SHA256SUMS` byte-for-byte
with the locally verified manifest; stop on any mismatch.
3. Review the notes and asset exclusions. Publication is a separate,
explicitly authorized action; a draft does not update installed clients.
After authorized publication, confirm the current host's public
`releases/download/latest/latest-linux.yml` resolves to version `0.6.1` and
references `LearnHarness-0.6.1-x86_64.AppImage` with the verified size and SHA-512.
## Historical 0.6.0 / full-release instructions
The following commands and asset inventories are retained for reference. Their
upload tooling still defaults to the old host; they are not the current 0.6.1
upload procedure.
## Preparing Linux packages
Use Node **26**, matching upstream's release gates. Build from a clean checkout