memory: record v0.9 release, CI-via-dispatch, Forgejo UI, pwsh
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
d1a387078d
commit
d08cfd3e63
2 changed files with 64 additions and 1 deletions
|
|
@ -7,7 +7,8 @@
|
||||||
- [Communication preferences](feedback_preferences.md) - Czech, discussion first, interactive reviews, phased approach
|
- [Communication preferences](feedback_preferences.md) - Czech, discussion first, interactive reviews, phased approach
|
||||||
|
|
||||||
## Project
|
## Project
|
||||||
- [Xetup project state](project_xetup_state.md) - Current state, architecture decisions, what's next (as of 2026-04-15)
|
- [Xetup v0.9 release and CI/ops findings](project_v0.9_release.md) - bloatware toggles, release-via-dispatch, Forgejo UI, pwsh (as of 2026-06-03)
|
||||||
|
- [Xetup project state](project_xetup_state.md) - Early architecture decisions and planning (as of 2026-04-15, partly superseded)
|
||||||
- [Technical findings](project_technical_findings.md) - Deep code analysis, UCPD issue, Win11 compatibility, tools research
|
- [Technical findings](project_technical_findings.md) - Deep code analysis, UCPD issue, Win11 compatibility, tools research
|
||||||
|
|
||||||
## Reference
|
## Reference
|
||||||
|
|
|
||||||
62
.claude/memory/project_v0.9_release.md
Normal file
62
.claude/memory/project_v0.9_release.md
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
---
|
||||||
|
name: Xetup v0.9 release and CI/ops findings as of 2026-06-03
|
||||||
|
description: What shipped in v0.9 (bloatware toggles), how releases really trigger, Forgejo UI customization, dev tooling
|
||||||
|
type: project
|
||||||
|
---
|
||||||
|
|
||||||
|
## v0.9 shipped (2026-06-03)
|
||||||
|
|
||||||
|
Tag `v0.9`, named non-prerelease, signed `xetup.exe` published. Also on rolling `latest`.
|
||||||
|
|
||||||
|
### Bloatware feature toggles (step 01)
|
||||||
|
The bloatware step now has three independent GUI checkboxes (in `runner.StepFeatures()`
|
||||||
|
under `bloatware`, defaults in `config.go` + `config.json`):
|
||||||
|
- `standardBloatware` (default on) - the bulk AppX/capability/feature list.
|
||||||
|
- `removeNewOutlook` (default on) - the new Outlook for Windows app
|
||||||
|
(`Microsoft.OutlookForWindows`). Classic Outlook from M365 is a Win32 app, never
|
||||||
|
touched - only the bundled UWP new Outlook is.
|
||||||
|
- `removeSnippingTool` (default OFF) - **Snipping Tool is now KEPT by default**.
|
||||||
|
Spans three list entries: `Microsoft.ScreenSketch` (the modern app), the legacy
|
||||||
|
capability `Microsoft.Windows.SnippingTool`, and the optional feature
|
||||||
|
`Microsoft-SnippingTool`. Kept like Calculator (common productivity tool).
|
||||||
|
|
||||||
|
Gating logic is `Test-RemovalAllowed` in `scripts/01-bloatware.ps1`: each item is
|
||||||
|
governed by its own flag, so toggles are independent (a single feature off does not
|
||||||
|
disable the whole step).
|
||||||
|
|
||||||
|
### Latent bug fixed
|
||||||
|
The Go `Config` struct had no `Bloatware` field, so the GUI's runtime-config
|
||||||
|
regeneration silently dropped `bloatware.keepPackages` - the script's keep-list merge
|
||||||
|
was effectively dead when run via xetup.exe. Added the field.
|
||||||
|
|
||||||
|
## CI / release mechanics (important)
|
||||||
|
- `release.yml` triggers on push to `main` ONLY for paths `**.go`, `scripts/**`,
|
||||||
|
`assets/**`, `embed.go`, `app.manifest`, `release.yml`. Docs-only / `web/**` pushes
|
||||||
|
do NOT trigger a build.
|
||||||
|
- **Version tags release via `workflow_dispatch` on the tag ref, NOT a plain tag push.**
|
||||||
|
A `vX.Y` tag usually points at a docs-only "release X.Y" commit, which the `paths`
|
||||||
|
filter blocks - so `git push <tag>` does nothing. Dispatch instead:
|
||||||
|
`POST /api/v1/repos/x9/xetup/actions/workflows/release.yml/dispatches {"ref":"vX.Y"}`.
|
||||||
|
This is how v0.8 and v0.9 were built. `github.ref = refs/tags/vX.Y` -> named release.
|
||||||
|
- Release notes come from the matching `## [X.Y]` section in `CHANGELOG.md`. Move the
|
||||||
|
`[Unreleased]` content into a dated `## [X.Y] - DATE` section before tagging.
|
||||||
|
|
||||||
|
## Forgejo UI customization
|
||||||
|
- Top-left Forgejo brand logo (`#navbar-logo`) is replaced with a back-link to
|
||||||
|
`xetup.x9.cz` via `templates/custom/header.tmpl` (CSS + small JS retargeting href).
|
||||||
|
- Forgejo custom path is `GITEA_CUSTOM=/data/gitea` inside the `xetup-forgejo`
|
||||||
|
container; templates live in the `xetup_forgejo-data` volume (NOT git by itself).
|
||||||
|
- Source is versioned in the repo at `deploy/forgejo/` (mirror + README). Deploy =
|
||||||
|
`docker cp` into the container + `docker restart xetup-forgejo` (templates load at
|
||||||
|
startup). Runner reconnects on its own.
|
||||||
|
|
||||||
|
## Dev tooling
|
||||||
|
- `pwsh` (PowerShell 7.6.2) is installed on the dev box (Debian 12) via the Microsoft
|
||||||
|
apt repo. Use it for PS syntax/parse checks:
|
||||||
|
`[System.Management.Automation.Language.Parser]::ParseFile(...)`. Note: Windows-only
|
||||||
|
cmdlets (Remove-AppxPackage, Get-WindowsCapability...) cannot run here.
|
||||||
|
|
||||||
|
## Still open
|
||||||
|
- v0.9 / `latest` are NOT smoke-tested on real Windows yet. Recommend VM test
|
||||||
|
(snapshot -> run -> revert) before a technician deploys to a client. Revert path:
|
||||||
|
`git revert <sha>` + push (CI rebuilds `latest`).
|
||||||
Loading…
Reference in a new issue