-
Notifications
You must be signed in to change notification settings - Fork 0
V10.0.1/service update #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughThis pull request performs a comprehensive maintenance update including Docker image bumps, copyright year transitions to 2026, NuGet dependency upgrades, CI/CD pipeline restructuring with expanded OS matrix and CodeQL enablement, solution file modernization from .sln to .slnx, version 10.0.1 release documentation, and build property reorganization. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request delivers a service update for version 10.0.1, focusing on dependency upgrades, CI/CD improvements, and project modernization. The changes ensure compatibility with the latest .NET frameworks and tooling while improving maintainability.
Changes:
- Updated package dependencies to latest compatible versions (xunit.v3, MinVer, Cuemon.Core, Codebelt.Extensions.Xunit.App)
- Migrated solution format from
.slnto.slnxfor modern Visual Studio support - Enhanced CI pipeline with CodeQL security analysis and expanded test matrix (with runner compatibility issues)
- Added comprehensive developer guidance through new Copilot instructions and benchmark prompts
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| Directory.Packages.props | Updated package versions for xunit.v3 (3.1.0→3.2.2), MinVer (6.0.0→7.0.0), Cuemon.Core (10.0.0→10.1.2), and Codebelt.Extensions.Xunit.App (11.0.0→11.0.4) |
| testenvironments.json | Updated Docker test runner image to net8.0.417-9.0.309-10.0.102 |
| Directory.Build.props | Added PackageReleaseNotesFile property and updated copyright year to 2026 |
| Directory.Build.targets | Removed PackageReleaseNotesFile property definition (moved to props file) |
| Codebelt.Unitify.slnx | Added new modern solution format file |
| Codebelt.Unitify.sln | Removed legacy solution file |
| .github/workflows/ci-pipeline.yml | Renamed workflow, expanded test matrix with new OS/architectures, re-enabled CodeQL, and added CodeQL dependency to deployment |
| .github/prompts/benchmark.prompt.md | Added comprehensive benchmarking guidelines for BenchmarkDotNet usage |
| .github/copilot-instructions.md | Added extensive developer guidance for unit tests, performance tests, and XML documentation |
| CHANGELOG.md | Added version 10.0.1 entry dated 2026-01-22 |
| .nuget/Codebelt.Unitify/PackageReleaseNotes.txt | Added release notes for version 10.0.1 documenting dependency upgrades |
| .docfx/includes/availability-default.md | Removed availability statement file |
| .docfx/docfx.json | Updated footer copyright to 2024-2026 |
| .docfx/Dockerfile.docfx | Updated NGINX base image from 1.29.3-alpine to 1.29.4-alpine |
Comments suppressed due to low confidence (1)
.github/workflows/ci-pipeline.yml:48
- The test matrix includes runner labels that may not exist in GitHub Actions. As of early 2025, GitHub Actions hosted runners do not include 'windows-2025', 'ubuntu-24.04-arm', or 'windows-11-arm'. The available hosted runners include 'ubuntu-24.04', 'windows-2022', 'windows-2019', 'macos-latest', etc. These non-existent runner labels will cause the workflow to fail when it attempts to find matching runners.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #15 +/- ##
=======================================
Coverage 83.33% 83.33%
=======================================
Files 19 19
Lines 666 666
Branches 51 51
=======================================
Hits 555 555
Misses 110 110
Partials 1 1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @.github/workflows/ci-pipeline.yml:
- Line 1: The file contains CRLF line endings (visible at the "name: Unitify CI
Pipeline" line) which must be converted to Unix-style LF endings; open the
.github/workflows/ci-pipeline.yml and change its line endings to LF (ensure your
editor or git core.autocrlf/ .gitattributes enforces LF), save the file with LF
endings and commit the change so YAMLlint and cross-platform tools accept the
workflow.
🧹 Nitpick comments (6)
.github/copilot-instructions.md (5)
184-184: Use consistent ATX-style headings.The headings at lines 184 and 278 use setext style (underlined with
---), while other headings in the document use ATX style (#). For consistency, convert these to ATX-style headings.♻️ Proposed fix
-Writing Performance Tests -description: 'Writing Performance Tests' +--- +description: 'Writing Performance Tests'-Writing XML documentation -description: 'Writing XML documentation' +--- +description: 'Writing XML documentation'Also applies to: 278-278
59-59: Simplify wording."exact same namespace" can be shortened to "same namespace" for conciseness.
♻️ Proposed fix
- then the corresponding unit test class must use the exact same namespace: + then the corresponding unit test class must use the same namespace:
71-74: Fix list indentation for consistency.These list items have inconsistent indentation (1 space) compared to the parent list structure. Remove the leading space to align with the list at line 50.
♻️ Proposed fix
- - The unit tests for the YourProject.Foo assembly live in the YourProject.Foo.Tests assembly. - - The functional tests for the YourProject.Foo assembly live in the YourProject.Foo.FunctionalTests assembly. - - Test class names end with Test and live in the same namespace as the class being tested, e.g., the unit tests for the Boo class that resides in the YourProject.Foo assembly would be named BooTest and placed in the YourProject.Foo namespace in the YourProject.Foo.Tests assembly. - - Modify the associated .csproj file to override the root namespace so the compiled namespace matches the SUT. Example: +- The unit tests for the YourProject.Foo assembly live in the YourProject.Foo.Tests assembly. +- The functional tests for the YourProject.Foo assembly live in the YourProject.Foo.FunctionalTests assembly. +- Test class names end with Test and live in the same namespace as the class being tested, e.g., the unit tests for the Boo class that resides in the YourProject.Foo assembly would be named BooTest and placed in the YourProject.Foo namespace in the YourProject.Foo.Tests assembly. +- Modify the associated .csproj file to override the root namespace so the compiled namespace matches the SUT. Example:
197-203: Add language specification to code fence.The fenced code block is missing a language identifier, which prevents proper syntax highlighting.
♻️ Proposed fix
- ``` + ```csharp namespace YourProject.Security.Cryptography { public class Sha512256Benchmark { /* ... */ } }</details> --- `211-215`: **Adjust nested list indentation.** The nested list items use 4-space indentation instead of the standard 2-space indentation expected by markdown linters. <details> <summary>♻️ Proposed fix</summary> ```diff - Use `BenchmarkDotNet` attributes to express intent and collect relevant metrics: - - `[MemoryDiagnoser]` to capture memory allocations. - - `[GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)]` to group related benchmarks. - - `[Params]` for input sizes or variations to exercise multiple scenarios. - - `[GlobalSetup]` for one-time initialization that's not part of measured work. - - `[Benchmark]` on methods representing measured operations; consider `Baseline = true` and `Description` to improve report clarity. + - `[MemoryDiagnoser]` to capture memory allocations. + - `[GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)]` to group related benchmarks. + - `[Params]` for input sizes or variations to exercise multiple scenarios. + - `[GlobalSetup]` for one-time initialization that's not part of measured work. + - `[Benchmark]` on methods representing measured operations; consider `Baseline = true` and `Description` to improve report clarity..github/prompts/benchmark.prompt.md (1)
49-66: Consider documenting[BenchmarkCategory]for grouping.Since
[GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)]is recommended, consider mentioning the[BenchmarkCategory("...")]attribute, which is used to assign benchmarks to logical categories for grouping in the output report.📝 Suggested addition to attributes section
* `[Params(...)]` — define small, medium, large input sizes. * `[GlobalSetup]` — deterministic initialization of benchmark data. * `[Benchmark(Description = "...")]` — always add descriptions. * `[Benchmark(Baseline = true)]` — when comparing two implementations. +* `[BenchmarkCategory("...")]` — group related benchmarks by category when using `GroupBenchmarksBy`.
| @@ -1,12 +1,7 @@ | |||
| name: Unitify CI/CD Pipeline | |||
| name: Unitify CI Pipeline | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix line ending characters.
Static analysis indicates the file uses CRLF line endings instead of LF. For cross-platform consistency and to satisfy YAMLlint, convert line endings to Unix-style (LF).
🧰 Tools
🪛 YAMLlint (1.38.0)
[error] 1-1: wrong new line character: expected \n
(new-lines)
🤖 Prompt for AI Agents
In @.github/workflows/ci-pipeline.yml at line 1, The file contains CRLF line
endings (visible at the "name: Unitify CI Pipeline" line) which must be
converted to Unix-style LF endings; open the .github/workflows/ci-pipeline.yml
and change its line endings to LF (ensure your editor or git core.autocrlf/
.gitattributes enforces LF), save the file with LF endings and commit the change
so YAMLlint and cross-platform tools accept the workflow.



This pull request delivers a service update focused on refreshing dependencies, updating CI infrastructure, and making minor documentation and metadata improvements. The primary goal is to ensure compatibility with the latest frameworks and tools, as well as to improve maintainability and clarity across the project.
Dependency and Compatibility Updates
Directory.Packages.propsand documented this in the release notes and changelog. [1] [2] [3]testenvironments.jsonfor improved .NET compatibility..docfx/Dockerfile.docfxfor security and stability.CI/CD and Build Process Improvements
ci-pipeline.yml, expanded test matrix to include new OS versions/architectures, and re-enabled the CodeQL security analysis step. Deployment now depends on CodeQL as well. [1] [2] [3]Directory.Build.propsandDirectory.Build.targets, improving maintainability of NuGet metadata. [1] [2]Project Structure and Metadata
.slnto.slnxfor a more modern and simplified project structure. [1] [2]Documentation and Guidelines
These changes collectively ensure the project remains up-to-date, secure, and easier to maintain, while also improving developer guidance and CI reliability.
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.