Release ForgeFlow 0.6.0

This commit is contained in:
NuklearRabbit
2026-07-25 05:59:07 +02:00
parent cf1f67a823
commit 9d3933c878
48 changed files with 2208 additions and 466 deletions
+35 -46
View File
@@ -1,60 +1,49 @@
# Updating ForgeFlow on Windows
ForgeFlow stores its local token, server credentials, repository mappings,
preferences, deployment profiles, diagnostics and operation history outside the
source directory.
ForgeFlow stores credentials, repository mappings, preferences, deployment profiles, diagnostics and operation history outside the source directory.
## Manual update to v0.4.0
## Built-in source update
1. Close ForgeFlow.
2. Extract the v0.4.0 update package.
3. Copy the contents of its `ForgeFlow` folder over the existing source folder.
4. Do not create `ForgeFlow\ForgeFlow`.
5. Open PowerShell in the existing folder.
6. Run:
```powershell
Set-ExecutionPolicy -Scope Process Bypass
.\update-windows.ps1
```
The script installs the new `ssh2` dependency, runs the environment doctor,
verifies the source and executes all tests before starting ForgeFlow.
## Built-in updates after v0.4.0
Open **Settings → ForgeFlow updates**.
The default source is:
```text
Gitea instance: the instance already configured in ForgeFlow
Repository: Jens/ForgeFlow
Branch: main
```
The repository must contain a newer semantic version in `package.json`.
Choose:
Open **Settings → ForgeFlow updates** and choose:
1. **Check now**
2. **Download update**
3. **Apply & restart**
The source updater downloads the exact branch commit, records a SHA-256 checksum,
backs up the installed source, applies the archive, runs `npm install` and
`npm run check`, and restarts ForgeFlow. When validation fails it restores the
previous source and starts that version again.
The default update source is the configured Gitea instance, repository `Jens/ForgeFlow`, branch `main`.
The update log is written beneath ForgeFlow's local user-data `updates` folder
and does not contain the Gitea token.
The updater pins the download to the exact remote commit, checks the archive SHA-256, starts an external PowerShell helper and waits for a structured `started` marker. ForgeFlow closes only after that marker exists. The helper then:
The updater deliberately checks the semantic version stored in the remote
`package.json`. Merely pushing a new commit without increasing that version does
not present an update. Publish the complete validated ForgeFlow source to the
configured repository and bump the version for every release.
1. waits for the old process to exit;
2. backs up the current source;
3. extracts and validates the requested semantic version;
4. mirrors the incoming source;
5. runs `npm ci --no-audit --no-fund` when the published release contains `package-lock.json`, otherwise a pinned direct-dependency `npm install`;
6. runs `npm run check`;
7. writes the successful installation result before restart;
8. launches the installed Electron executable directly;
9. persists `success`, `failed` or `rolled-back` state for the next launch.
A failed validation restores the previous source. A successful installation is not rolled back merely because automatic restart fails; start ForgeFlow manually and the persisted result is shown.
## Publishing v0.5.1 from a Downloads folder
Update logs and status files are stored beneath ForgeFlow's local user-data `updates` folder and exclude the Gitea token.
Extract the complete release and run `Publish-ForgeFlow-Release.ps1`. The script validates the source, clones `Jens/ForgeFlow` into a temporary directory, mirrors the verified source, commits it and pushes `main`. Keep the currently running older ForgeFlow source folder untouched; use its **Settings → Updates** screen to test the exact-commit download, validation, rollback and restart path.
## Publishing a release from Downloads
Extract the complete source ZIP so this file exists:
```text
C:\Users\Jens\Downloads\ForgeFlow-<version>\ForgeFlow\package.json
```
Run:
```powershell
cd C:\Users\Jens\Downloads\ForgeFlow-<version>\ForgeFlow
Set-ExecutionPolicy -Scope Process Bypass
.\Publish-ForgeFlow-Release.ps1
```
The script installs dependencies, runs the complete quality gate, clones `git@gitea.itworx.tech:Jens/ForgeFlow.git` into a temporary folder, mirrors the validated source without `.git`, `node_modules`, `dist` or release archives, commits it and pushes `main`. It then compares local `HEAD` with `git ls-remote` and fails if Gitea does not report the exact release commit.
Keep the currently installed older ForgeFlow source folder untouched until the built-in updater test is complete.