Release ForgeFlow 0.6.0
This commit is contained in:
+35
-46
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user