Pin SDK 10.0.401. Isolate Xamarin project.

This commit is contained in:
Andy Howard
2026-09-10 16:21:06 +01:00
parent 8126d10bdc
commit 827c2e2d0f
8 changed files with 52 additions and 11 deletions
+3 -2
View File
@@ -13,8 +13,7 @@ Last updated: 2026-09-10
| Priority | Topic | Date noted | Next step | Notes |
|---|---|---|---|---|
| P1 | Prepare Common libraries for the coordinated .NET 10 migration | 2026-09-10 | Repair and pin the .NET 10 toolchain, then temporarily target `net8.0;net10.0` in applicable shared libraries and validate both targets before migrating downstream consumers. | BusinessMgr still targets .NET 8 and consumes Common through direct project references. Remove the temporary .NET 8 targets only after all in-scope consumers have migrated. The separate MAUI migration is tracked under `SacsMobileMaui/docs/topics.md`. |
| P2 | Decide the disposition of `SacsMobileXamarin` before the .NET 10 migration | 2026-09-10 | Confirm whether to retire it, remove it from the main solution, or plan a separate migration; document the supported consumer path. | The project remains in `SaCommonVS.sln` and references Xamarin.Forms 5. It should not be implicitly included in the normal .NET 10 retargeting. |
| P1 | Prepare Common libraries for the coordinated .NET 10 migration | 2026-09-10 | Temporarily target `net8.0;net10.0` in applicable shared libraries and validate both targets before migrating downstream consumers. | SDK 10.0.401 is pinned. BusinessMgr still targets .NET 8 and consumes Common through direct project references. Remove the temporary .NET 8 targets only after all in-scope consumers have migrated. The separate MAUI migration is tracked under `SacsMobileMaui/docs/topics.md`. |
| P1 | Prevent synchronous and asynchronous execution from overlapping in `SaProcess_Base` | 2026-09-09 | Route `RunProcess()` and `RunAsync()` through one guarded start operation and extend the lifecycle tests. | A synchronous call can currently reuse and dispose the asynchronous worker's task data. |
| P2 | Retain cancellation as a completed process outcome | 2026-09-09 | Store a durable cancellation result until the next process reset and test post-completion state. | `IsInterrupted` currently loses token-based cancellation after task-data cleanup. |
| P2 | Handle `OperationCanceledException` as cancellation | 2026-09-09 | Catch cancellation separately in `RunProcess()` and avoid recording it as an error. | The general exception handler currently consumes cancellation before `RunAsync()` can distinguish it. |
@@ -49,3 +48,5 @@ Last updated: 2026-09-10
| Remove cancellation callbacks from the Process Base lifecycle lock | 2026-09-08 | 2026-09-08 | 2026-09-08 | Cancellation and task-data disposal use separate synchronization; worker cleanup detaches state before disposal. |
| Add Process Base lifecycle tests | 2026-09-08 | 2026-09-08 | 2026-09-08 | Five focused MSTest cases cover completion, duplicate starts, stop timeout retention, cooperative cancellation, and cancellation callback lock behavior. |
| Capture the pre-migration Common build and test baseline | 2026-09-10 | 2026-09-10 | 2026-09-10 | Using SDK 10.0.401, `dotnet restore SaCommonVS.sln` and the full Debug solution build succeeded. The build produced 110 warnings and no errors; most are repeated MAUI API obsolescence warnings across four targets, plus `NETSDK1202` for out-of-support MAUI 9 Android and `NU1902` for the moderate-severity MailKit 4.13.0 vulnerability. `SacsCoreUnitTests` passed 94 of 94 tests. |
| Pin the Common .NET 10 SDK | 2026-09-10 | 2026-09-10 | 2026-09-10 | Added `global.json` for SDK 10.0.401 with `latestPatch` roll-forward and prerelease SDKs disabled. |
| Isolate `SacsMobileXamarin` from the supported Common build | 2026-09-10 | 2026-09-10 | 2026-09-10 | Removed the project from `SaCommonVS.sln` while retaining all source. Added `SaCommonVS.LegacyXamarin.sln` and `docs/legacy-xamarin.md` for reference-only access. The project is outside the supported .NET 10 migration scope. |