From 67cc5eafadf4591bb54dacb348c7c4a2ac2858c2 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 23 Oct 2026 17:24:43 -0700 Subject: [PATCH] case 4690 - CLAUDE.md and NET10-PORT: port merged into main; release work continues on main Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 28 +++++++++++++++------------- devdocs/modernization/NET10-PORT.md | 5 +++-- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 6e2f5ea1..6d8a3cc0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,10 +20,10 @@ hardcode these paths: do not move or rename the folders. | Folder | What | Stack | |---|---|---| -| `raven` | **This repo, the master.** Back-end server, customer manual, build and installer scripts | ASP.NET Core 8, C#, EF Core 8, Npgsql, PostgreSQL | +| `raven` | **This repo, the master.** Back-end server, customer manual, build and installer scripts | ASP.NET Core 10, C#, EF Core 10, Npgsql, PostgreSQL | | `raven-client` | Front end, in `ayanova/` | Vue 2.6, Vuetify 2.6, Vuex, Vue Router, plain JavaScript, Node 12.22.9 | -| `raven-test-integration` | API integration tests against a running server | xUnit, .NET 8 | -| `raven-launcher` | Windows standalone launcher | .NET 8, self-contained, trimmed | +| `raven-test-integration` | API integration tests against a running server | xUnit, .NET 10 | +| `raven-launcher` | Windows standalone launcher | .NET 10, self-contained, trimmed | | `ravenqbi` | QuickBooks Desktop integration | .NET Framework 4.8 WinForms, x86, Visual Studio only | | `raven-test` | Cypress E2E suite in `e2e/` (Cypress 9.7.0, targets remote devtest servers); also JMeter (`load/`) and Locust (`loadlocust/`) load tests | Node, Cypress | | `sockeye` | Internal licensing server, a near-copy of this codebase, **already ported to .NET 10** (tag `8.1.0`, baseline tag `net6-baseline`) | same as `raven` | @@ -36,17 +36,19 @@ hardcode these paths: do not move or rename the folders. - `dist/` — packaging assets, Inno Setup scripts, build outputs. - `build-release.bat` — master release build. -## Current work: .NET 10 port, branch `net10-port` +## Current work: release 8.3.0, on `main` -Move the server from .NET 8 to .NET 10 and every back-end package to its current release. -Front end: minimal or no change. +The .NET 10 port (case 4690) is merged into `main` in `raven`, `raven-client`, +`raven-launcher` and `raven-test-integration` (2026-10-23), not yet tagged or released. +Before release: the "next release" cases, each with its own case number and its own +commits on `main` (`case NNNN - …`); then the final build, the final gate, Cypress on the +`devtestn10` droplet, the `8.3.0` tag and the rollout. -**Before any port work, read `devdocs/modernization/NET10-PORT.md`.** It holds the plan, -the checklist and the decisions still open. Update its checklist and log in the same -commit as the change they record. +**Read `devdocs/modernization/NET10-PORT.md` first.** It holds the release checklist +(section 5), the Deferred list (including the cases chosen for this release) and the log. +Update its checklist and log in the same commit as the change they record. -Sockeye went through the same port first. When a port question comes up, look at how -Sockeye solved it: `git -C ..\sockeye log --oneline net6-baseline..8.1.0`. +Sockeye went through the same port first: `git -C ..\sockeye log --oneline net6-baseline..8.1.0`. The rest of the modernization plan: `devdocs/modernization/ROADMAP.md`. @@ -54,8 +56,8 @@ The rest of the modernization plan: `devdocs/modernization/ROADMAP.md`. - No change to production code without John's explicit approval. Propose a plan first for anything beyond a one-line fix. - One concern per commit, so a regression can be found with `git log` and undone with `git revert`. The version bump is always the first commit on a release branch. -- Do not mix refactoring, bug fixes and features. If you spot something worth refactoring during the port, add it to "Deferred" in `NET10-PORT.md` instead of doing it. -- Dependency changes: back-end packages only, and only on `net10-port`. No front-end dependency changes (Node is pinned at 12.22.9 because of `fibers`). +- Do not mix refactoring, bug fixes and features. If you spot something worth refactoring, add it to "Deferred" in `NET10-PORT.md` instead of doing it. +- Dependency changes: back-end packages only, and only with John's approval (the port that updated them all is done). No front-end dependency changes (Node is pinned at 12.22.9 because of `fibers`). - Do not add `[ApiController]` to controllers that lack it. It changes model binding and error responses on routes deployed clients call. - No new features. - Git: keep it simple and explicit. Do not push, tag, merge or rewrite history unless asked. Tags are annotated and pushed by name. diff --git a/devdocs/modernization/NET10-PORT.md b/devdocs/modernization/NET10-PORT.md index 26c24baa..2f2debe7 100644 --- a/devdocs/modernization/NET10-PORT.md +++ b/devdocs/modernization/NET10-PORT.md @@ -147,8 +147,8 @@ suite is waiting on (case 4653, case 4654, the contract issue). - Windows standalone and the launcher are self-contained: no runtime needed on the customer's machine. **But they carry the .NET runtime of the build machine's SDK:** SDK 10.0.103 → runtime 10.0.3 (the Sandbox test logged `.Net Version - 10.0.3`; Linux hosts run 10.0.13). Before the final release build, update the workstation's .NET 10 SDK to the newest release so the standalone package ships the current runtime with its security fixes. 8.2.4 did the same with .NET 8.0.13. **Done 2026-10-23:** SDK 10.0.402 installed with winget (`winget upgrade` did not find the Visual Studio-installed 10.0.103); test publish of the standalone server and the launcher bundles runtime 10.0.13. Standing note added to `devdocs/build/BUILD.md` - [x] Customer manual (`docs/`): system requirements and upgrade instructions for self-hosted customers. Report browser move (section 3): manual already updated in the same commit (`ops-config-report-render-browser-path.md`, `ops-install-linux-server.md`, `ops-upgrade-linux-server.md`, `ops-upgrade-linux-desktop.md`). .NET 10 runtime install and upgrade steps (Windows LAN and IIS, Linux server and desktop), Ubuntu 24.04/26.04, backup password note and the 8.3.0 changelog draft: `111d7922` (2026-10-23). Changelog wording to be finalised by John before release - [ ] Build machines: the workstation has the .NET 10 SDK (10.0.402, plus 10.0.103 from Visual Studio). The backup laptop needs it before it can build 8.3.0 (`winget install --id Microsoft.DotNet.SDK.10 -e --source winget`; the .NET 8 SDK is no longer needed); tracked with the laptop's other catch-up items in `devdocs/build/BUILD.md`. `devdocs/build/DEV-VM-SETUP.md` and `devdocs/build/BUILD.md` updated (2026-10-23). The build VM is deprecated (John, 2026-10-23): n/a -- [ ] Final gate runs on the finished code -- [ ] Merge, per repo: +- [ ] Final gate runs on the finished code (after the "next release" cases, on the release build from `main`) +- [x] Merge, per repo. **Done 2026-10-23, without a tag** (John): port merged before the "next release" cases so the port and each case stay separate in history. `raven` `36633011`, `raven-client` `44d91611`, `raven-launcher` `d296298`, `raven-test-integration` `0384bb8`; before each merge `main` had no commits outside `net10-port`, after it `git diff net10-port main` was empty; pushed. From here: cases as their own commits on `main` with their own case numbers; the tag lines below run at release. An urgent 8.2.x fix would branch from `net8-baseline` (= 8.2.4): ```powershell git switch net10-port; git status; git push; git fetch origin git switch main; git pull @@ -238,3 +238,4 @@ Found during the port, out of scope. One line each. | 2026-10-23 | PostgreSQL link and version for Windows network installs | The PostgreSQL install guide linked from the LAN installer prompt and the LAN/IIS manual pages (`postgresqltutorial.com/install-postgresql/`) now fails (Cloudflare error; the site moved to a database vendor, Neon). Replaced with the official `https://www.postgresql.org/download/windows/` in `lan.iss` and both pages; prompt text "Open the PostgreSQL download page now?". `AYANOVA_BACKUP_PG_DUMP_PATH` in `lan-install-config.json` and the manual examples: PostgreSQL 16 → 18, with a note to change the number to the installed version. Changelog lines added. Docs build clean; LAN installer compiled to `C:\temp\ayanova-sandbox\ayanova-windows-x64-lan-setup-pglink.exe` for the LAN test | | 2026-10-23 | Windows LAN installer in a fresh Windows Sandbox, following `ops-install-windows-lan.md`; installer from this branch with the PostgreSQL link fix (`ayanova-windows-x64-lan-setup-pglink.exe`) | Hosting Bundle prompt opened the .NET 10 page; .NET 10.0.13 Hosting Bundle installed (very slow in the Sandbox, normal there). PostgreSQL prompt opened `postgresql.org/download/windows/`, which links to EDB; PostgreSQL 18.6-5 installed (it installs the Visual C++ runtime itself, no Sandbox crash with vGPU off). `config.json` edited (password, own JWT secret; the Sandbox has no Notepad, edited with PowerShell). AyaNova 8.3.0 boots on .NET 10.0.13, database created at schema 20, no JWT warning, no `Chrome` folders. After licensing (John), an on-demand backup succeeded with the template's `PostgreSQL\18\bin` pg_dump path. Windows Firewall prompt on every start in the Sandbox (fresh Windows each session), expected | | 2026-10-23 | Checklist tidy-up: older unticked items in sections 0–5 checked against current evidence | `main` = `origin/main` = `net8-baseline` in `raven` and `raven-client`; tag on both remotes. Licence gate 730/730 at `181b1e44`. No EF Core warning raised as an error in any log (local dev server, Sandbox, `devtestn10`). `System.Text.Json` 5.0.2 gone from the graph. JwtBearer 10.0.13 done. Report and E2E baselines marked waived (John); Cypress stays open in section 4 and now also covers the UI side of the EF Core screen-by-screen item. Restore manual compared: fine for the default `postgres` setup; dedicated-role note added to Deferred. Stale "still to do" remarks removed. Still open: relative date tokens (section 3, decision needed), Cypress, and the section 5 release steps | +| 2026-10-23 | `net10-port` merged into `main` (`--no-ff`, no tag) in `raven`, `raven-client`, `raven-launcher`, `raven-test-integration` (John) | Pre-checks: all clean and pushed; `main` = `origin/main` with no commits outside `net10-port`. Post-checks: `git diff net10-port main` empty in all four; pushed. `CLAUDE.md` "Current work" now describes the 8.3.0 release on `main`; stack table updated to .NET 10; dependency rule no longer refers to the port branch. `net10-port` branches kept until after release (section 5) |