Skip to content

Target net10.0 as well as net8.0 - #5

Merged
zacala1 merged 4 commits into
mainfrom
feature/net10
Oct 22, 2026
Merged

zacala1 merged 4 commits into
mainfrom
feature/net10

Conversation

@zacala1

@zacala1 zacala1 commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Summary

.NET 8 support ends on 2026-11-10. The library and its tests now target net8.0;net10.0; the package contains both builds. Benchmarks and the test worker stay on net8.0.

  • InterprocessMemory.csproj, InterprocessMemory.Tests.csproj: TargetFrameworks net8.0;net10.0.
  • CI installs the 8.0 and 10.0 SDKs, runs the blocking tests once per framework (the net10.0 step runs even if the net8.0 one failed) and packs on Linux, which now builds both frameworks. TRX files are named per framework.
  • The cross-process tests start the net8.0 worker, so a net10.0 test run also has a net10.0 and a net8.0 process share one region (a layout and fingerprint check across runtimes).
  • README documents the SDK/runtime requirements and dotnet test --framework; CHANGELOG starts a 4.1.0 section (the version number itself is bumped when releasing).

Verification

Not built locally: this environment has only the .NET 8 SDK and no NuGet access, so the first CI run of this branch is the verification. If it shows a net10.0-only problem it will be fixed on this branch.

Stacking: independent of #4 (the 4.0.0 date); both touch the top of CHANGELOG.md, so whichever merges second needs a trivial conflict resolution.


Generated by Claude Code

.NET 8 support ends on 2026-11-10. The library and its tests are multi-targeted
(net8.0;net10.0), and CI installs both SDKs, runs the blocking tests once per
framework (a failure of the first does not hide the second) and builds the
package, which then contains both builds. The test worker stays on net8.0, so
a net10.0 test run also has a net10.0 and a net8.0 process share a region.
Benchmarks stay on net8.0.
…een runs

The net8.0 test worker was copied next to the tests of every framework. Next to
the net10.0 tests it found the net10.0 build of the library, which a net8.0
runtime cannot load (System.Runtime 10.0.0.0), so every cross-process test of
the net10.0 run failed. It now lives in a "worker" folder of the test output
with the net8.0 build of the library.

On Linux a region outlives its creator and a number of tests use fixed region
names, so the net10.0 run found what the net8.0 run had left in /dev/shm and
several tests saw old data. CI removes the files between the two runs.
The runner image keeps a root-owned file there (libpod_lock) that find cannot
delete, so the cleanup step exited with 1 and failed the job although both test
runs had passed. The tests create their regions as the runner user, so only
that user's files are removed.
@zacala1
zacala1 merged commit 5b5dc23 into main Oct 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants