diff --git a/docs/features/potential/promoted/2026-07-20-system-reactive-7-packages-config-migration.md b/docs/features/potential/promoted/2026-07-20-system-reactive-7-packages-config-migration.md new file mode 100644 index 00000000..53902386 --- /dev/null +++ b/docs/features/potential/promoted/2026-07-20-system-reactive-7-packages-config-migration.md @@ -0,0 +1,42 @@ +# system-reactive-7-packages-config-migration (Issue #395) + +- Date captured: 2026-07-20 +- Author: Dan Moisan +- Status: Promoted -> docs/features/active/system-reactive-7-packages-config-migration/ (Issue #395) + +- Issue: #395 +- Issue URL: https://github.com/drmoisan/TaskMaster/issues/395 +- Last Updated: 2026-07-21 +## Problem / Why + +The package update merged in PR #391 moved `System.Reactive` to 7.0.0 in five projects (`QuickFiler`, `TaskMaster`, `ToDoModel`, `UtilitiesCS`, `UtilitiesCS.Test`). System.Reactive 7.0 no longer supports `packages.config`-based projects: its `System.Reactive.PackagesConfigCheck.targets` emits an MSBuild warning on every build of each affected project ("The project contains a packages.config file, which is not supported by System.Reactive v7.0 or later. Please migrate to PackageReference."). The repository is running an explicitly unsupported configuration, and the warning repeats five times per build. + +## Proposed Behavior + +Resolve the unsupported System.Reactive 7.0 + packages.config combination in one of two ways (decision required): + +1. Migrate the five affected projects from `packages.config` to `PackageReference`. Note this conflicts with the current analyzer wiring convention, which deliberately keeps legacy non-SDK VSTO projects on `packages.config` with file-based `` items (see `.claude/rules/csharp.md`, Analyzer Stack mechanism). A migration must preserve analyzer wiring, binding redirects, and VSTO build behavior. +2. Alternatively, pin `System.Reactive` back to the last 6.x release in the affected projects, or set the documented `RxUseUnsupportedPackagesConfig=true` escape hatch with an in-repo rationale, accepting the unsupported status explicitly. + +## Acceptance Criteria (early draft) + +- [ ] Builds of all five affected projects produce no `System.Reactive.PackagesConfigCheck` warning. +- [ ] The chosen approach is documented (decision record or rule update), including analyzer-wiring implications for legacy projects. +- [ ] Full C# toolchain (CSharpier, analyzer build, TreatWarningsAsErrors rebuild, MSTest suite) passes with no regressions. + +## Constraints & Risks + +- The affected projects are legacy non-SDK .NET Framework 4.8.1 / VSTO projects; PackageReference migration in such projects is non-trivial and can change restore layout (`packages\` folder disappears), breaking `` and `` items and at least one test fixture that resolves files under `packages\`. +- The long-term direction is to leave VSTO entirely, which may argue for the low-effort pin/escape-hatch option rather than investing in migration. +- Suppressing the warning via `RxUseUnsupportedPackagesConfig=true` leaves the repo on an unsupported package configuration. + +## Test Conditions to Consider + +- [ ] Full solution build with `/p:TreatWarningsAsErrors=true` remains green. +- [ ] MSTest suite passes for all eight solution test assemblies. +- [ ] Rx-dependent runtime paths in QuickFiler/ToDoModel behave unchanged (binding redirects still resolve System.Reactive 7.0.0.0). + +## Next Step + +- [x] Promote to GitHub issue (feature request template) +- [ ] Create `docs/features/active/system-reactive-7-packages-config-migration/` folder from the template diff --git a/docs/features/potential/promoted/2026-07-20-utilitiescs-test-cs2002-duplicate-compile-entry.md b/docs/features/potential/promoted/2026-07-20-utilitiescs-test-cs2002-duplicate-compile-entry.md new file mode 100644 index 00000000..d5149a9c --- /dev/null +++ b/docs/features/potential/promoted/2026-07-20-utilitiescs-test-cs2002-duplicate-compile-entry.md @@ -0,0 +1,63 @@ +# utilitiescs-test-cs2002-duplicate-compile-entry (Issue #394) + +- Date captured: 2026-07-20 +- Author: Dan Moisan +- Status: Promoted -> docs/features/active/utilitiescs-test-cs2002-duplicate-compile-entry/ (Issue #394) + +> Automation note: Keep the section headings below unchanged; the promotion tooling maps each of them into the GitHub bug issue template. + +- Issue: #394 +- Issue URL: https://github.com/drmoisan/TaskMaster/issues/394 +- Last Updated: 2026-07-21 +## Summary + +`UtilitiesCS.Test.csproj` contains two identical `` items (lines 288 and 338), producing compiler warning CS2002 ("Source file ... specified multiple times") on every build of the test project. + +## Environment + +- OS/version: Windows (any); also reproduces on the `windows-latest` CI runner +- Toolchain: MSBuild, TaskMaster.sln, Configuration=Debug, Platform=Any CPU +- Command/flags used: `msbuild TaskMaster.sln /t:Build /p:Configuration=Debug /p:Platform="Any CPU"` +- Data source or fixture: none + +## Steps to Reproduce + +1. Build the solution: `msbuild TaskMaster.sln /t:Build /p:Configuration=Debug /p:Platform="Any CPU"`. +2. Observe the compiler output for `UtilitiesCS.Test.csproj`. + +## Expected Behavior + +The build completes without CS2002; each source file appears exactly once in the project's `` item group. + +## Actual Behavior + +`CSC : warning CS2002: Source file 'C:\...\UtilitiesCS.Test\OutlookObjects\Folder\PercentageFormatterTests.cs' specified multiple times [UtilitiesCS.Test.csproj]` + +## Logs / Screenshots + +- [x] Attached minimal logs or screenshot +- Snippet: observed in local toolchain runs on 2026-07-20 during PR #391 verification (analyzer build and TreatWarningsAsErrors rebuild). + +## Impact / Severity + +- [ ] Blocker +- [ ] High +- [ ] Medium +- [x] Low + +Build warning noise only; the duplicate entry does not currently fail any gate because CS2002 is not promoted to an error in the affected configuration. It risks masking real warnings and could break the build if warning promotion rules change. + +## Suspected Cause / Notes + +Likely a merge artifact: two `` sections in `UtilitiesCS.Test.csproj` each include the same file (lines 288 and 338 as of commit 443a1a52). + +## Proposed Fix / Validation Ideas + +- [ ] Remove one of the duplicate `` items from `UtilitiesCS.Test.csproj`. +- [ ] Rebuild and confirm CS2002 no longer appears. +- [ ] Confirm `PercentageFormatterTests` still runs (test count unchanged) via vstest. + +## Next Step + +- [x] Promote to GitHub issue (bug-report template) +- [ ] Move to active fix folder / branch