Reference System.Drawing.Common for all targets by Shane32 · Pull Request #639 · Shane32/QRCoder (original) (raw)
📝 Walkthrough
Walkthrough
Adjusts project target frameworks and System.Drawing package conditions, updates Directory.Build.targets constants, adds explicit solution build steps to CI workflows, and replaces/updates large approved API snapshots for net6.0 and net60-windows test artifacts. No source-code public API signatures were intentionally modified in library sources.
Changes
| Cohort / File(s) | Summary |
|---|---|
| Project filesQRCoder/QRCoder.csproj, QRCoderTests/QRCoderTests.csproj, Directory.Build.targets | Modify TFMs and conditional compilation: remove explicit net5.0-windows/net6.0-windows from some csproj(s), introduce/normalize net6.0 targets, add/adjust Windows-specific TFMs in test project, change SYSTEM_DRAWING DefineConstants logic to exclude only netstandard1.3, and broaden System.Drawing.Common PackageReference condition to include net6.0 (retain 5.0.3 for older TFMs). |
| CI workflows.github/workflows/wf-build-release-ci.yml, .github/workflows/wf-build-test.yml | Add new synchronous "Build solution" dotnet build -c Release steps into test/additional-tests jobs (runs before API approval and after publish respectively) to validate a full solution build in CI. |
| API approval / test artifactsQRCoderApiTests/net60-windows/QRCoder.approved.txt, QRCoderApiTests/net60/QRCoder.approved.txt | Replace large approved API snapshots: one file removes the net60-windows public API surface entirely (deleting many public types), the other adds/updates numerous Windows-specific public types and overloads (ArtQRCode, QRCode, helpers, new overloads, and platform attributes). These files reflect major API-surface diffs in test expectations. |
Sequence Diagram(s)
sequenceDiagram participant CI as GitHub Actions runner participant Build as dotnet build participant Test as API approval / test steps
Note over CI: Existing workflow job CI->>+Build: dotnet publish (existing) CI->>+Build: dotnet build -c Release (NEW) Build-->>-CI: build result CI->>+Test: api-approval / tests Test-->>-CI: test result rect #e6ffed note right of CI: New explicit solution build step inserted before tests end
Loading
Estimated code review effort
🎯 5 (Critical) | ⏱️ ~120 minutes
Possibly related PRs
- Enable nullable reference types and improve null handling across multiple files #630 — Alters project build configuration and Directory.Build.*; closely related changes to csproj and build props.
- Update testing to only test .NET Standard and LTS versions #614 — Modifies CI/workflow and test project TFMs; overlaps with workflow and test-target changes.
- Cleanup project files; configure Directory.Build.props #628 — Adjusts SYSTEM_DRAWING MSBuild constant logic for net6.0; directly related to Directory.Build.targets edits.
Suggested labels
enhancement
Suggested reviewers
- codebude
- gfoidl
Pre-merge checks and finishing touches
✅ Passed checks (3 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Docstring Coverage | ✅ Passed | No functions found in the changes. Docstring coverage check skipped. |
| Title Check | ✅ Passed | The title concisely reflects the primary change of updating the System.Drawing.Common package reference across the project’s target frameworks, matching the modifications to the csproj and Directory.Build.targets to include drawing support on all platforms without unnecessary detail. |
✨ Finishing touches
- 📝 Generate docstrings 🧪 Generate unit tests (beta)
- Create PR with unit tests
- Post copyable unit tests in a comment
- Commit unit tests in branch
ref_drawing_net6
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
❤️ Share
Comment @coderabbitai help to get the list of available commands and usage tips.