Skip to content

docs: Updated README files#326

Merged
samtrion merged 2 commits intomainfrom
docs/updated-readme
Nov 26, 2025
Merged

docs: Updated README files#326
samtrion merged 2 commits intomainfrom
docs/updated-readme

Conversation

@samtrion
Copy link
Copy Markdown
Contributor

@samtrion samtrion commented Nov 26, 2025

Summary by CodeRabbit

  • Documentation
    • Major README overhaul with badges, richer project description, and detailed Features list.
    • Expanded Quick Start, installation guidance, and multiple usage patterns with concrete examples.
    • New sections for configuration options, accessing/asserting logged messages, advanced scenarios, time-dependent testing, integration testing, best practices, troubleshooting, target frameworks, and licensing.

✏️ Tip: You can customize this high-level summary in your review settings.

@samtrion samtrion self-assigned this Nov 26, 2025
@samtrion samtrion requested a review from a team as a code owner November 26, 2025 11:59
@samtrion samtrion requested review from Hnogared and removed request for a team November 26, 2025 11:59
@samtrion samtrion added state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:chore Indicates some housework that needs to be done. labels Nov 26, 2025
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Nov 26, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Both README files were substantially expanded: the root README now includes badges and a detailed project description with features, and the package README was rewritten into a full, example-driven guide covering installation, usage patterns, configuration, advanced scenarios, and troubleshooting.

Changes

Cohort / File(s) Summary
Root README
README.md
Replaced the previous one-line description with an enriched introduction including badges, detailed capability description, and a comprehensive Features list (logging capture, inspection, assertions, integration, configuration, scopes, TimeProvider, xUnit v3, generic logger support).
Package README (detailed docs)
src/NetEvolve.Logging.XUnit/README.md
Full rewrite and reorganization: added NuGet/license badges, expanded features, Installation and Quick Start, multiple Usage Patterns (direct CreateLogger, DI via ILoggingBuilder.AddXUnit, IMessageSink for xUnit v3), Configuration Options, examples for accessing logged messages, Advanced Scenarios (scopes, TimeProvider, integration testing with WebApplicationFactory), Troubleshooting, Target Frameworks, License, Contributing, and links. Many concrete code examples and configuration snippets were added.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Focus review on accuracy of code examples and API names in src/NetEvolve.Logging.XUnit/README.md.
  • Verify installation snippets (NuGet commands) and configuration option names match library surface.
  • Check mentions of xUnit v3 patterns (IMessageSink) and DI integration calls (AddXUnit) for correctness.

Poem

🐇
I hopped through docs both short and long,
Wrote badges bright and examples strong.
Scopes and timestamps now clear to see —
Logs dance neatly, thanks to me! 🎉

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'docs: Updated README files' is vague and generic, using non-descriptive language that doesn't convey what specific improvements or changes were made to the README files. Consider a more specific title that highlights the main changes, such as 'docs: Expand README with comprehensive examples and features list' or 'docs: Add badges, features, and usage patterns to README files'.
✅ Passed checks (2 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 changed files to evaluate docstring coverage. Skipping docstring coverage check.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 20710a6 and dee3022.

📒 Files selected for processing (1)
  • src/NetEvolve.Logging.XUnit/README.md (2 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov Bot commented Nov 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.31%. Comparing base (126fb32) to head (dee3022).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #326   +/-   ##
=======================================
  Coverage   95.31%   95.31%           
=======================================
  Files           5        5           
  Lines         256      256           
  Branches       35       35           
=======================================
  Hits          244      244           
  Misses          4        4           
  Partials        8        8           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a 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

🧹 Nitpick comments (1)
src/NetEvolve.Logging.XUnit/README.md (1)

393-393: Consider more direct phrasing in Contributing section.

The phrase "Please feel free to submit" is generic and could be more direct. Consider: "Contributions are welcome. Submit a Pull Request" for a more professional tone.

Apply this diff for more direct phrasing:

-Contributions are welcome! Please feel free to submit a Pull Request.
+Contributions are welcome! Submit a Pull Request to propose changes.

Based on LanguageTool style guidance (FEEL_FREE_TO_STYLE_ME).

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 126fb32 and 20710a6.

📒 Files selected for processing (2)
  • README.md (1 hunks)
  • src/NetEvolve.Logging.XUnit/README.md (2 hunks)
🧰 Additional context used
🪛 LanguageTool
src/NetEvolve.Logging.XUnit/README.md

[style] ~379-~379: This phrase is redundant. Consider using “outside”.
Context: ... trying to write to ITestOutputHelper outside of test execution. Ensure logging only hap...

(OUTSIDE_OF)


[style] ~393-~393: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ...ontributing Contributions are welcome! Please feel free to submit a Pull Request. ## Links - [Nu...

(FEEL_FREE_TO_STYLE_ME)

🪛 markdownlint-cli2 (0.18.1)
src/NetEvolve.Logging.XUnit/README.md

200-200: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


207-207: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


212-212: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build & Tests / Run Tests / Testing .NET solution
🔇 Additional comments (15)
README.md (2)

3-4: Badge links are clear and informative.

The NuGet and License badges provide useful project metadata and direct users to key resources. Ensure these links remain valid as the project evolves.


6-17: Comprehensive introduction and feature list.

The rewritten description effectively communicates the library's value proposition, and the features list is well-structured and aligned with the expanded documentation in the package README. The emphasis on logging capture, inspection, and assertion provides clear context for potential users.

src/NetEvolve.Logging.XUnit/README.md (13)

35-70: Basic usage example is clear and demonstrates core features.

The example correctly demonstrates logger creation, logging at different levels, message interpolation, and assertion on LoggedMessages. The code is well-commented and easy to follow.


78-96: Direct logger creation patterns are comprehensive.

The four patterns (generic typed, non-generic, with options, with TimeProvider) provide good coverage of the library's creation APIs. Examples are consistent and demonstrate progressive feature usage.


102-142: Dependency injection example is well-structured.

The example correctly demonstrates ServiceCollection, AddLogging, and AddXUnit integration. The pattern is idiomatic for .NET DI containers and provides a realistic test scenario.


144-169: xUnit v3 IMessageSink integration is properly documented.

The example clearly shows how to use the library with IMessageSink for xUnit v3 scenarios where ITestOutputHelper isn't available. The code is concise and demonstrates the key difference.


175-215: Configuration options are well-documented with concrete examples.

The XUnitLoggerOptions example covers all major configuration properties (timestamp format, disable flags), and the output format examples effectively illustrate how these options affect log output. This helps developers understand when and how to customize behavior.


220-248: Logged messages inspection and assertions are comprehensive.

The example demonstrates accessing and asserting on multiple message properties: count, log level, message content, timestamps, and exceptions. This provides excellent guidance for testing logging behavior.


254-276: Scopes example effectively demonstrates nested scope handling.

The code shows proper use of BeginScope with nested scopes and verification via LoggedMessages, which is essential for context-aware logging scenarios.


281-300: Time-dependent logging example is practical and well-explained.

Using FakeTimeProvider to advance time and verify timestamp differences demonstrates testing of time-sensitive logging behavior, which is a valuable use case for the library.


305-339: Integration testing example demonstrates realistic WebApplicationFactory pattern.

The example shows proper configuration of xUnit logging within an integration test context, which helps developers understand how to apply the library in real-world application testing scenarios.


341-349: Best practices section provides actionable guidance.

The six practices (generic loggers, assertions, log levels, scopes, LoggedMessages inspection, disabling optional features) are well-prioritized and reinforce key library features.


356-375: Troubleshooting section addresses the most common pitfall correctly.

The example emphasizes proper constructor injection of ITestOutputHelper and explains why this matters, which is essential guidance for developers new to xUnit patterns.


381-386: Target frameworks section is concise and accurate.

Specifies .NET 6.0+, extensions logging abstractions, and xUnit v3 compatibility, which aligns with the documented features.


387-395: License, Contributing, and Links sections are well-organized.

Proper references to LICENSE file and external resources. The Contributing section is welcoming and encourages participation.

Verify that the file paths and external links (NuGet, GitHub, xUnit, and Microsoft documentation links on lines 397-400) are valid and current.

Comment thread src/NetEvolve.Logging.XUnit/README.md
Comment thread src/NetEvolve.Logging.XUnit/README.md Outdated
@samtrion samtrion merged commit e3fff2d into main Nov 26, 2025
5 of 6 checks passed
@samtrion samtrion deleted the docs/updated-readme branch November 26, 2025 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:chore Indicates some housework that needs to be done.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant