-
Notifications
You must be signed in to change notification settings - Fork 0
V0.5.1/service update #18
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 PR executes a v0.5.1 service release, upgrading Docker base images (NGINX 1.29.3→1.29.4, DocFX 2.78.3→2.78.4), bumping eight NuGet package versions, updating copyright year to 2024-2026, converting solution format from .sln to .slnx, adjusting CI workflow triggers, and introducing comprehensive testing/benchmarking documentation guides. 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
Service update for the Shared Kernel project that refreshes dependencies/tooling and updates supporting infrastructure (CI, documentation, solution format, and release notes) for the 0.5.1 release.
Changes:
- Upgraded NuGet package versions and updated runtime/tooling container images used for docs/tests.
- Updated release documentation/metadata (changelog, package release notes, copyright years).
- Adjusted CI workflow matrix and migrated the solution file from
.slnto.slnx.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| testenvironments.json | Bumps the Docker test runner image tag used by the test environment. |
| LICENSE.md | Updates copyright year range. |
| Directory.Packages.props | Central package version upgrades (MinVer, Savvyio, xUnit v3, etc.). |
| Directory.Build.targets | Removes PackageReleaseNotesFile property definition (now set in props). |
| Directory.Build.props | Adds PackageReleaseNotesFile property and updates copyright metadata. |
| Codebelt.SharedKernel.slnx | Introduces new cross-platform solution format. |
| Codebelt.SharedKernel.sln | Removes the legacy Visual Studio solution file. |
| CHANGELOG.md | Adds 0.5.1 entry. |
| .nuget/Codebelt.SharedKernel/PackageReleaseNotes.txt | Adds 0.5.1 package release notes content. |
| .github/workflows/ci-pipeline.yml | Renames workflow and expands OS matrix; removes paths-ignore. |
| .github/prompts/benchmark.prompt.md | Adds Copilot prompt guidance for BenchmarkDotNet benchmarks. |
| .github/copilot-instructions.md | Adds Copilot guidance for unit tests/benchmarks/XML docs. |
| .docfx/docfx.json | Updates doc site footer copyright year range. |
| .docfx/Dockerfile.docfx | Updates nginx/docfx image versions used to build docs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #18 +/- ##
=======================================
Coverage 88.50% 88.50%
=======================================
Files 11 11
Lines 200 200
Branches 8 8
=======================================
Hits 177 177
Misses 23 23 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
|
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. |
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: 2
🤖 Fix all issues with AI agents
In @.docfx/Dockerfile.docfx:
- Around line 1-6: The Dockerfile uses a non-existent image tag
"codebeltnet/docfx:2.78.4" in the FROM line; update that reference to a valid
tag (e.g., "codebeltnet/docfx:latest") or confirm the correct published tag and
replace "codebeltnet/docfx:2.78.4" with it in the FROM instruction so the build
can pull the image successfully.
In @.github/prompts/benchmark.prompt.md:
- Around line 51-78: The markdown has inconsistent list indentation causing
MD005/MD007 failures; fix by normalizing all bullet lists to top-level (no
leading spaces) under the "Each benchmark class should use:" block (the bullets
for [Params(...)], [GlobalSetup], [Benchmark(...)]), and under the "## 3.
Structure and Best Practices" section (the list items beginning with "Measure a
**single logical operation**..." etc); remove extra leading spaces before list
markers, ensure nested lists are intentionally indented only when semantically
nested, and run markdownlint to verify MD005/MD007 are resolved.
🧹 Nitpick comments (1)
Directory.Build.props (1)
7-7: Use$(MSBuildThisFileDirectory)to make the release notes path depth-independent.The
..\..relative path assumes all packable projects are two levels below the repository root. While this works for the current projects (src/Codebelt.SharedKernelandtest/Codebelt.SharedKernel.Tests), it will break if any project is added at a different depth. Anchor the path to$(MSBuildThisFileDirectory)instead for robustness.Suggested fix
- <PackageReleaseNotesFile>..\..\.nuget\$(MSBuildProjectName)\PackageReleaseNotes.txt</PackageReleaseNotesFile> + <PackageReleaseNotesFile>$(MSBuildThisFileDirectory).nuget\$(MSBuildProjectName)\PackageReleaseNotes.txt</PackageReleaseNotesFile>
| Each benchmark class should use: | ||
|
|
||
| ```csharp | ||
| [MemoryDiagnoser] | ||
| [GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)] | ||
| ``` | ||
|
|
||
| Optional but strongly recommended where meaningful: | ||
|
|
||
| * `[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. | ||
|
|
||
| Avoid complex global configs; prefer explicit attributes inside the class. | ||
|
|
||
| --- | ||
|
|
||
| ## 3. Structure and Best Practices | ||
|
|
||
| A benchmark fixture must: | ||
|
|
||
| * Measure a **single logical operation** per benchmark method. | ||
| * Avoid I/O, networking, disk access, logging, or side effects. | ||
| * Avoid expensive setup inside `[Benchmark]` methods. | ||
| * Use deterministic data (e.g., seeded RNG or predefined constants). | ||
| * Use `[GlobalSetup]` to allocate buffers, random payloads, or reusable test data only once. | ||
| * Avoid shared mutable state unless reset per iteration. |
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 list indentation to satisfy markdownlint (MD005/MD007).
Several list items have inconsistent indentation. Normalize bullets to a single top-level list (no leading spaces) to keep lint green.
✏️ Proposed indentation fix
-Optional but strongly recommended where meaningful:
-
-* `[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.
+Optional but strongly recommended where meaningful:
+
+- `[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.-A benchmark fixture must:
-
-* Measure a **single logical operation** per benchmark method.
-* Avoid I/O, networking, disk access, logging, or side effects.
-* Avoid expensive setup inside `[Benchmark]` methods.
-* Use deterministic data (e.g., seeded RNG or predefined constants).
-* Use `[GlobalSetup]` to allocate buffers, random payloads, or reusable test data only once.
-* Avoid shared mutable state unless reset per iteration.
+A benchmark fixture must:
+
+- Measure a **single logical operation** per benchmark method.
+- Avoid I/O, networking, disk access, logging, or side effects.
+- Avoid expensive setup inside `[Benchmark]` methods.
+- Use deterministic data (e.g., seeded RNG or predefined constants).
+- Use `[GlobalSetup]` to allocate buffers, random payloads, or reusable test data only once.
+- Avoid shared mutable state unless reset per iteration.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Each benchmark class should use: | |
| ```csharp | |
| [MemoryDiagnoser] | |
| [GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)] | |
| ``` | |
| Optional but strongly recommended where meaningful: | |
| * `[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. | |
| Avoid complex global configs; prefer explicit attributes inside the class. | |
| --- | |
| ## 3. Structure and Best Practices | |
| A benchmark fixture must: | |
| * Measure a **single logical operation** per benchmark method. | |
| * Avoid I/O, networking, disk access, logging, or side effects. | |
| * Avoid expensive setup inside `[Benchmark]` methods. | |
| * Use deterministic data (e.g., seeded RNG or predefined constants). | |
| * Use `[GlobalSetup]` to allocate buffers, random payloads, or reusable test data only once. | |
| * Avoid shared mutable state unless reset per iteration. | |
| Each benchmark class should use: | |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
52-52: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
66-66: Unordered list indentation
Expected: 2; Actual: 4
(MD007, ul-indent)
71-71: Inconsistent indentation for list items at the same level
Expected: 0; Actual: 1
(MD005, list-indent)
71-71: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
72-72: Inconsistent indentation for list items at the same level
Expected: 0; Actual: 1
(MD005, list-indent)
72-72: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
73-73: Inconsistent indentation for list items at the same level
Expected: 0; Actual: 1
(MD005, list-indent)
73-73: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
74-74: Inconsistent indentation for list items at the same level
Expected: 0; Actual: 1
(MD005, list-indent)
74-74: Unordered list indentation
Expected: 0; Actual: 1
(MD007, ul-indent)
🤖 Prompt for AI Agents
In @.github/prompts/benchmark.prompt.md around lines 51 - 78, The markdown has
inconsistent list indentation causing MD005/MD007 failures; fix by normalizing
all bullet lists to top-level (no leading spaces) under the "Each benchmark
class should use:" block (the bullets for [Params(...)], [GlobalSetup],
[Benchmark(...)]), and under the "## 3. Structure and Best Practices" section
(the list items beginning with "Measure a **single logical operation**..." etc);
remove extra leading spaces before list markers, ensure nested lists are
intentionally indented only when semantically nested, and run markdownlint to
verify MD005/MD007 are resolved.



This pull request focuses on a service update to the Shared Kernel project, primarily upgrading dependencies, updating documentation and metadata, and improving CI pipeline and solution structure. The most important changes are grouped below:
Dependency and Package Management
Directory.Packages.propsand documented inPackageReleaseNotes.txt. [1] [2].docfx/Dockerfile.docfxandtestenvironments.json. [1] [2]Documentation and Metadata Updates
Directory.Build.props,LICENSE.md,.docfx/docfx.json. [1] [2] [3]CHANGELOG.mdandPackageReleaseNotes.txt. [1] [2].github/prompts/benchmark.prompt.md.Build, CI, and Solution Structure
.slnto.slnxfor better cross-platform support. [1] [2]Miscellaneous
Directory.Build.targetstoDirectory.Build.propsfor better build integration. [1] [2]Summary by CodeRabbit
New Features
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.