Skip to content

Add .NET 10 support, cross-platform tests and CI - #100

Merged
webgio merged 4 commits into
masterfrom
net10-support
Oct 8, 2026
Merged

webgio merged 4 commits into
masterfrom
net10-support

Conversation

@webgio

@webgio webgio commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • .NET 10 target. The library now also targets net10.0. No source changes were needed: the conditional code already uses NET6_0_OR_GREATER / NET5_0_OR_GREATER. The per-framework FrameworkReference blocks are merged into one, so future versions only need a new entry in <TargetFrameworks>. Version bumped to 1.5.0.
  • netstandard2.0 security fix. Microsoft.AspNetCore.Mvc goes from 2.2.0 to 2.3.13, which resolves patched versions of Newtonsoft.Json (13.0.1), System.Text.Encodings.Web (8.0.0) and System.Security.Cryptography.Xml (8.0.4). That clears the NuGet audit warnings (one critical, one high, one moderate).
  • Tests and demo app on .NET 10. Test packages are updated, and the tests now run on Windows, macOS and Linux. Chrome is configurable through environment variables and closes after each test.
  • CI. A GitHub Actions workflow builds the library for every target framework and runs the full suite in a Linux container.
  • README. Mentions .NET 10 support and the non-Windows wkhtmltopdf binary names, and explains how to run the tests.

Things to note

  • ASP.NET Core 2.3 is built from the 2.1 code, not 2.2, so a few 2.2-only APIs aren't in it. The library builds against it unchanged. .NET Framework apps that also reference ASP.NET Core 2.2 packages will be moved up to 2.3.13, which is Microsoft's recommended upgrade; worth mentioning in the release notes.
  • The macOS wkhtmltopdf build puts tabs between words in the PDF text, so PdfContains now compares on normalized whitespace.
  • The image tests check PNG/JPEG signature bytes instead of using System.Drawing, which only works on Windows. This confirms the file type but doesn't decode the whole image.
  • Test configuration: ROTATIVA_DEMO_URL (default https://localhost:56246), ROTATIVA_TESTS_HEADLESS (automatic when CI=true), ROTATIVA_CHROME_BINARY.

Test plan

  • Library builds for all 7 target frameworks, with 0 errors, on macOS and in a clean Linux amd64 container with only the .NET 10 SDK.
  • Package contains lib/net10.0/Rotativa.AspNetCore.dll.
  • Full suite (5 unit + 5 integration tests) passes against the .NET 10 demo app on macOS (wkhtmltopdf 0.12.6 under Rosetta), Linux arm64 and Linux amd64 (Docker).
  • Workflow passes on this PR.
  • Optional: run the suite on Windows with the bundled .exe binaries.

🤖 Generated with Claude Code

webgio and others added 4 commits October 8, 2026 16:24
- Target net10.0 alongside the existing frameworks.
- Merge the per-framework FrameworkReference blocks into one that covers
  every target except netstandard2.0.
- Bump Microsoft.AspNetCore.Mvc for netstandard2.0 from 2.2.0 to 2.3.13,
  which resolves patched Newtonsoft.Json, System.Text.Encodings.Web and
  System.Security.Cryptography.Xml (NuGet audit NU1902-NU1904).
- Version 1.5.0 and updated package metadata.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- DemoApp and test project target net10.0; test packages updated, and the
  redundant Microsoft.AspNetCore.Mvc.ViewFeatures 2.2.0 reference removed.
- PdfContains compares on normalized whitespace (macOS wkhtmltopdf emits
  tabs between words).
- Image tests check PNG/JPEG signatures instead of System.Drawing, which
  is Windows-only.
- Integration tests read ROTATIVA_DEMO_URL, ROTATIVA_TESTS_HEADLESS (or
  CI) and ROTATIVA_CHROME_BINARY, and now quit Chrome after each test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Dockerfile (Debian 12, .NET 10, Chromium, wkhtmltopdf 0.12.6.1) and
  run-tests.sh that starts the demo app and runs the full suite.
- Workflow builds the library for all target frameworks and runs the
  tests in the container on pushes to master and pull requests.
- Ignore local non-Windows wkhtmltopdf/wkhtmltoimage binaries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@webgio webgio left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All seems good to go into master

@webgio
webgio merged commit 0e6d0a2 into master Oct 8, 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.

1 participant