Skip to content

Conversation

@gimlichael
Copy link
Member

@gimlichael gimlichael commented Oct 5, 2024

PR Classification

Deprecation and migration of AWS Signature Version 4 related code.

PR Summary

The pull request removes the Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4 package and migrates several projects to the Codebelt repository.

  • index.md updated to note the migration of AWS Signature Version 4 project,
  • README.md and CHANGELOG.md updated to reflect the removal and migration of multiple projects,
  • Cuemon.sln and related project files updated to remove AWS Signature Version 4 implementation and tests.

Summary by CodeRabbit

  • New Features

    • Added new extension methods: AddProblemDetailsConverter and AddHeaderDictionaryConverter for JsonConverter and XmlConverter.
    • Introduced additional methods: AddFailureConverter, RemoveAllOf, and Clone for JsonConverter and JsonSerializerOptions.
  • Documentation

    • Updated API documentation to reflect the rebranding and relocation of various APIs to their own repositories.
    • Enhanced README files for multiple projects, including expanded sections on related packages and project descriptions.
  • Bug Fixes

    • Removed outdated package references from related packages sections across several README files.

@gimlichael gimlichael self-assigned this Oct 5, 2024
@coderabbitai
Copy link

coderabbitai bot commented Oct 5, 2024

Walkthrough

This pull request introduces significant documentation updates for various APIs related to the Cuemon for .NET framework. It clarifies that several APIs, including xUnit, Json.NET, Asp.Versioning, Swashbuckle.AspNetCore, YamlDotNet, and AWS Signature, are no longer maintained within the Cuemon assembly family and have been moved to separate repositories under the "Extensions for [API Name] by Codebelt." Additionally, new extension methods have been added to several namespaces, enhancing their functionality.

Changes

File Path Change Summary
.docfx/api/extensions/index.md Updated API sections to indicate projects are now separate repositories; added links to new repos.
.docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Text.Json.Converters.md Added methods: AddProblemDetailsConverter, AddHeaderDictionaryConverter.
.docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Xml.Converters.md Added method: AddProblemDetailsConverter.
.docfx/api/namespaces/Cuemon.Extensions.Text.Json.Converters.md Added methods: AddFailureConverter, RemoveAllOf, RemoveAllOf{T}.
.docfx/api/namespaces/Cuemon.Extensions.Text.Json.md Added method: Clone in JsonSerializerOptions.
.docfx/api/namespaces/Cuemon.Extensions.Xml.Serialization.Converters.md Added method: AddFailureConverter in IList{XmlConverter}.
.nuget/Cuemon.AspNetCore.App/README.md Removed package reference for Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4; expanded "Related Packages" section.
.nuget/Cuemon.AspNetCore.Authentication/README.md Expanded introduction; clarified functionality and types supported; restructured sections.
.nuget/Cuemon.AspNetCore.Mvc/README.md Updated introduction; removed package reference for Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.
.nuget/Cuemon.AspNetCore.Razor.TagHelpers/README.md Restructured introduction; removed package reference for Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.
.nuget/Cuemon.AspNetCore/README.md Removed package reference for Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.
.nuget/Cuemon.Core.App/PackageReleaseNotes.txt Updated compatibility to include support for .NET Standard 2.0; removed support for .NET 6.
.nuget/Cuemon.Core.App/README.md Added "Related Packages" section; removed package reference for Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.
.nuget/Cuemon.Core/README.md Removed package reference for Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.

Possibly related PRs

🐇 In the meadow, changes bloom,
Documentation's new, dispelling gloom.
Extensions now have their own space,
With links to follow, a clearer place.
Methods added, knowledge to share,
In the world of Cuemon, we show we care! 🌼


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@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: 1

🧹 Outside diff range and nitpick comments (5)
.docfx/api/namespaces/Cuemon.Extensions.Text.Json.md (1)

17-17: LGTM! Consider a minor clarification.

The addition of the Clone method to the list of extension methods for JsonSerializerOptions is correct and consistent with the changes described in the AI-generated summary.

For improved clarity, consider separating the methods with commas instead of "and":

-|JsonSerializerOptions|⬇️|`SetPropertyName` and `Clone`|
+|JsonSerializerOptions|⬇️|`SetPropertyName`, `Clone`|

This format would be more consistent with how multiple methods are listed in other rows of the table.

.docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Xml.Converters.md (1)

Line range hint 1-15: Consider adding a brief description of the new AddProblemDetailsConverter method.

While the addition of the new method is correct, it might be beneficial to provide a brief description of what AddProblemDetailsConverter does and when it should be used. This would enhance the documentation and make it more informative for developers using this namespace.

Consider adding a short description like this:

The `AddProblemDetailsConverter` method allows for the conversion of ProblemDetails objects to XML format, which is useful when working with APIs that need to represent error responses in XML.

This additional context would make the documentation more comprehensive and user-friendly.

.docfx/api/namespaces/Cuemon.Extensions.Xml.Serialization.Converters.md (1)

15-15: LGTM! Consider reordering methods alphabetically.

The addition of AddFailureConverter to the list of extension methods for IList{XmlConverter} is correct and consistent with the existing style. This update aligns well with the PR objectives by keeping the documentation in sync with the codebase changes.

As a minor suggestion, consider reordering the methods alphabetically for easier reference. This would place AddFailureConverter between AddExceptionConverter and AddStringConverter.

.nuget/Cuemon.Core.App/PackageReleaseNotes.txt (2)

5-7: ALM changes look good, with a minor suggestion.

The ALM changes align well with the PR objectives:

  1. Updating dependencies is crucial for security and performance.
  2. Removing .NET 6 support while adding .NET Standard 2.0 support is a strategic move to broaden compatibility.

Consider rephrasing line 5 for conciseness:

- CHANGED Dependencies to latest and greatest with respect to TFMs
+ UPDATED Dependencies to latest versions for all Target Framework Monikers (TFMs)
🧰 Tools
🪛 LanguageTool

[style] ~5-~5: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...GED Dependencies to latest and greatest with respect to TFMs - REMOVED Support for TFM .NET 6 (...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


9-38: Comprehensive reference list, with a suggestion for improved readability.

The extensive list of references provides a clear overview of the package's dependencies and related components, which is excellent for documentation purposes.

To enhance readability, consider grouping the references into categories. For example:

# References
+ ## Core Libraries
- Cuemon.Core
- Cuemon.Data
- Cuemon.IO
- Cuemon.Net
- Cuemon.Xml
+ ## Extension Libraries
- Cuemon.Extensions.Collections.Generic
- Cuemon.Extensions.Collections.Specialized
- Cuemon.Extensions.Core
  ...
+ ## Specialized Libraries
- Cuemon.Data.Integrity
- Cuemon.Data.SqlClient
- Cuemon.Diagnostics
  ...

This grouping would make it easier for users to understand the structure and purpose of different components within the Cuemon ecosystem.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 958a856 and f660cef.

📒 Files selected for processing (63)
  • .docfx/api/extensions/index.md (1 hunks)
  • .docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.md (0 hunks)
  • .docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Text.Json.Converters.md (1 hunks)
  • .docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Xml.Converters.md (1 hunks)
  • .docfx/api/namespaces/Cuemon.Extensions.Text.Json.Converters.md (1 hunks)
  • .docfx/api/namespaces/Cuemon.Extensions.Text.Json.md (1 hunks)
  • .docfx/api/namespaces/Cuemon.Extensions.Xml.Serialization.Converters.md (1 hunks)
  • .nuget/Cuemon.AspNetCore.App/README.md (0 hunks)
  • .nuget/Cuemon.AspNetCore.Authentication/README.md (0 hunks)
  • .nuget/Cuemon.AspNetCore.Mvc/README.md (0 hunks)
  • .nuget/Cuemon.AspNetCore.Razor.TagHelpers/README.md (0 hunks)
  • .nuget/Cuemon.AspNetCore/README.md (0 hunks)
  • .nuget/Cuemon.Core.App/PackageReleaseNotes.txt (1 hunks)
  • .nuget/Cuemon.Core.App/README.md (0 hunks)
  • .nuget/Cuemon.Core/README.md (0 hunks)
  • .nuget/Cuemon.Data.Integrity/README.md (0 hunks)
  • .nuget/Cuemon.Data.SqlClient/README.md (0 hunks)
  • .nuget/Cuemon.Data/README.md (0 hunks)
  • .nuget/Cuemon.Diagnostics/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/PackageReleaseNotes.txt (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Authentication/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Text.Json/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore.Xml/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.AspNetCore/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Collections.Generic/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Collections.Specialized/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Core/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Data.Integrity/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Data/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.DependencyInjection/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Diagnostics/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Globalization/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Hosting/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.IO/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Net/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Reflection/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Runtime.Caching/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Text.Json/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Text/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Threading/README.md (0 hunks)
  • .nuget/Cuemon.Extensions.Xml/README.md (0 hunks)
  • .nuget/Cuemon.IO/README.md (0 hunks)
  • .nuget/Cuemon.Net/README.md (0 hunks)
  • .nuget/Cuemon.Resilience/README.md (0 hunks)
  • .nuget/Cuemon.Runtime.Caching/README.md (0 hunks)
  • .nuget/Cuemon.Security.Cryptography/README.md (0 hunks)
  • .nuget/Cuemon.Threading/README.md (0 hunks)
  • .nuget/Cuemon.Xml/README.md (0 hunks)
  • CHANGELOG.md (1 hunks)
  • Cuemon.sln (0 hunks)
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Aws4HmacAuthorizationHeader.cs (0 hunks)
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Aws4HmacAuthorizationHeaderBuilder.cs (0 hunks)
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Aws4HmacFields.cs (0 hunks)
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.csproj (0 hunks)
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/DateTimeExtensions.cs (0 hunks)
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Properties/AssemblyInfo.cs (0 hunks)
  • test/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.Tests/Aws4HmacAuthorizationHeaderBuilderTest.cs (0 hunks)
  • test/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.Tests/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.Tests.csproj (0 hunks)
💤 Files with no reviewable changes (55)
  • .docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.md
  • .nuget/Cuemon.AspNetCore.App/README.md
  • .nuget/Cuemon.AspNetCore.Authentication/README.md
  • .nuget/Cuemon.AspNetCore.Mvc/README.md
  • .nuget/Cuemon.AspNetCore.Razor.TagHelpers/README.md
  • .nuget/Cuemon.AspNetCore/README.md
  • .nuget/Cuemon.Core.App/README.md
  • .nuget/Cuemon.Core/README.md
  • .nuget/Cuemon.Data.Integrity/README.md
  • .nuget/Cuemon.Data.SqlClient/README.md
  • .nuget/Cuemon.Data/README.md
  • .nuget/Cuemon.Diagnostics/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/PackageReleaseNotes.txt
  • .nuget/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Authentication/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Mvc/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Text.Json/README.md
  • .nuget/Cuemon.Extensions.AspNetCore.Xml/README.md
  • .nuget/Cuemon.Extensions.AspNetCore/README.md
  • .nuget/Cuemon.Extensions.Collections.Generic/README.md
  • .nuget/Cuemon.Extensions.Collections.Specialized/README.md
  • .nuget/Cuemon.Extensions.Core/README.md
  • .nuget/Cuemon.Extensions.Data.Integrity/README.md
  • .nuget/Cuemon.Extensions.Data/README.md
  • .nuget/Cuemon.Extensions.DependencyInjection/README.md
  • .nuget/Cuemon.Extensions.Diagnostics/README.md
  • .nuget/Cuemon.Extensions.Globalization/README.md
  • .nuget/Cuemon.Extensions.Hosting/README.md
  • .nuget/Cuemon.Extensions.IO/README.md
  • .nuget/Cuemon.Extensions.Net/README.md
  • .nuget/Cuemon.Extensions.Reflection/README.md
  • .nuget/Cuemon.Extensions.Runtime.Caching/README.md
  • .nuget/Cuemon.Extensions.Text.Json/README.md
  • .nuget/Cuemon.Extensions.Text/README.md
  • .nuget/Cuemon.Extensions.Threading/README.md
  • .nuget/Cuemon.Extensions.Xml/README.md
  • .nuget/Cuemon.IO/README.md
  • .nuget/Cuemon.Net/README.md
  • .nuget/Cuemon.Resilience/README.md
  • .nuget/Cuemon.Runtime.Caching/README.md
  • .nuget/Cuemon.Security.Cryptography/README.md
  • .nuget/Cuemon.Threading/README.md
  • .nuget/Cuemon.Xml/README.md
  • Cuemon.sln
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Aws4HmacAuthorizationHeader.cs
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Aws4HmacAuthorizationHeaderBuilder.cs
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Aws4HmacFields.cs
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.csproj
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/DateTimeExtensions.cs
  • src/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4/Properties/AssemblyInfo.cs
  • test/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.Tests/Aws4HmacAuthorizationHeaderBuilderTest.cs
  • test/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.Tests/Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4.Tests.csproj
🧰 Additional context used
🪛 LanguageTool
.nuget/Cuemon.Core.App/PackageReleaseNotes.txt

[style] ~5-~5: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...GED Dependencies to latest and greatest with respect to TFMs - REMOVED Support for TFM .NET 6 (...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)

🔇 Additional comments (9)
.docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Text.Json.Converters.md (1)

15-15: LGTM! Documentation updated correctly.

The changes to the extension methods table accurately reflect the addition of AddProblemDetailsConverter and AddHeaderDictionaryConverter methods for the JsonConverter type. This update aligns with the AI summary and contributes to the overall objectives of the pull request by keeping the documentation up-to-date with the codebase changes.

.docfx/api/namespaces/Cuemon.Extensions.Text.Json.Converters.md (2)

15-15: LGTM! New extension methods added.

The changes look good. Three new extension methods have been added to the JsonConverter type:

  1. AddFailureConverter
  2. RemoveAllOf
  3. RemoveAllOf{T}

These additions enhance the functionality of the namespace by providing more options for JSON conversion.


15-15: Clarification needed: Relationship to PR objectives

While these changes improve the documentation by adding new extension methods, they don't seem to be directly related to the main objectives of the PR (removal of AWS Signature Version 4 and project migrations). Could you please clarify how these additions fit into the broader context of the PR objectives?

.docfx/api/namespaces/Cuemon.Extensions.AspNetCore.Xml.Converters.md (1)

15-15: LGTM: New method AddProblemDetailsConverter added correctly.

The addition of AddProblemDetailsConverter to the list of methods for the XmlConverter type is consistent with the AI-generated summary and appears to be correctly formatted and placed in the documentation.

However, to ensure completeness:

Let's verify if this new method is implemented in the codebase:

This will help confirm that the documentation accurately reflects the codebase.

✅ Verification successful

LGTM: AddProblemDetailsConverter is correctly documented and implemented.

The AddProblemDetailsConverter method is present in the XmlConverterExtensions.cs, ensuring that the documentation accurately reflects the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for the implementation of AddProblemDetailsConverter method
rg --type csharp "public static .+ AddProblemDetailsConverter"

Length of output: 455

.nuget/Cuemon.Core.App/PackageReleaseNotes.txt (1)

2-2: Excellent addition of .NET Standard 2.0 support!

The inclusion of .NET Standard 2.0 in the availability list significantly broadens the compatibility of the Cuemon.Core.App package. This change aligns well with the PR objectives and will allow the package to be used in a wider range of projects.

.docfx/api/extensions/index.md (1)

73-76: LGTM! Verify the new repository link.

The addition of the note about the AWS Signature API project migration is consistent with the PR objectives and the format of other API notes in this file. This change effectively communicates the project's new status to users.

Please run the following script to verify the new repository link:

Ensure that the curl command returns a successful status code (200 OK) to confirm that the repository link is valid and accessible.

✅ Verification successful

The new repository link is accessible.

This verifies the review comment.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the accessibility of the new AWS Signature Version 4 API repository link.

# Test: Check if the repository URL is accessible
curl -I https://github.com/codebeltnet/aws-signature-v4

Length of output: 4912

CHANGELOG.md (3)

26-41: Significant enhancements with new classes and features

This update introduces numerous new classes, enums, and interfaces that expand the library's capabilities:

  1. Enhanced error handling with the introduction of Failure record and related converters.
  2. Improved ASP.NET Core integration with support for both FaultDetails and ProblemDetails.
  3. New extension methods across various namespaces, enhancing functionality for HttpClient, IServiceProvider, and IServiceCollection interfaces.
  4. Addition of several utility classes like PreferredFaultDescriptor enum and ServiceProviderExtensions class.

These additions should provide developers with more tools and flexibility in areas such as error handling, serialization, and ASP.NET Core development. Consider exploring these new features to improve your application's robustness and maintainability.

🧰 Tools
🪛 Markdownlint

38-38: null
Bare URL used

(MD034, no-bare-urls)


Line range hint 43-47: Significant improvements to existing classes

Several key classes have been enhanced in this update:

  1. The Validator class has been greatly expanded with numerous new methods, providing more comprehensive validation capabilities throughout the library.
  2. YamlFormatter now offers more control over serialization by supporting the exclusion of non-essential properties.
  3. HttpExceptionDescriptor has been updated with new properties, likely improving error handling and debugging capabilities.

These changes should offer developers more powerful and flexible tools for validation, serialization, and error handling. However, be aware that these modifications might require updates to existing code that uses these classes.

To assess the impact of these changes on existing codebases, run the following script:

#!/bin/bash
# Check for usage of modified classes
echo "Checking for usage of Validator class:"
rg -i -t cs "Validator\."
echo "Checking for usage of YamlFormatter class:"
rg -i -t cs "YamlFormatter"
echo "Checking for usage of HttpExceptionDescriptor class:"
rg -i -t cs "HttpExceptionDescriptor"
🧰 Tools
🪛 Markdownlint

38-38: null
Bare URL used

(MD034, no-bare-urls)


Line range hint 49-52: Significant removals and potential breaking changes

This update includes numerous removals that may impact existing projects:

  1. Support for older target framework monikers, including net6.0, has been removed. This change aligns with the focus on newer .NET versions but may require updates to projects using these older frameworks.
  2. Many classes and interfaces related to YAML processing and various extensions have been removed. This could significantly affect projects that rely on these components.
  3. The transition to .NET 9 has prompted the removal of support for older target framework monikers.

These removals represent a major cleanup of the codebase but also introduce potential breaking changes. Projects using the removed components or older framework versions will need to be updated or find alternative solutions.

To assess the impact of these removals on existing codebases, run the following script:

#!/bin/bash
# Check for usage of removed components and older framework versions
echo "Checking for usage of removed YAML-related components:"
rg -i -t cs "Cuemon\..*\.Yaml"
echo "Checking for projects targeting removed framework versions:"
rg -i "net6\.0" *.csproj
🧰 Tools
🪛 Markdownlint

38-38: null
Bare URL used

(MD034, no-bare-urls)

Comment on lines +11 to 24
> [!IMPORTANT]
> The following projects has been removed with this release and migrated to [Codebelt](https://github.com/codebeltnet):
>
> - Cuemon.Extensions.Xunit, Cuemon.Extensions.Xunit.Hosting and Cuemon.Extensions.Xunit.Hosting.AspNetCore was removed from the solution and migrated to [Codebelt.Extensions.Xunit](https://github.com/codebeltnet/xunit)
> - Cuemon.Extensions.YamlDotNet was removed from the solution and migrated to [Codebelt.Extensions.YamlDotNet](https://github.com/codebeltnet/yamldotnet)
> - Cuemon.Extensions.AspNetCore, Cuemon.Extensions.AspNetCore.Mvc and Cuemon.Extensions.Diagnostics was inflicted with a breaking change as a result of this migration due to removal of YAML related code
> - Cuemon.Extensions.Asp.Versioning was removed from the solution and migrated to [Codebelt.Extensions.Asp.Versioning](https://github.com/codebeltnet/asp-versioning)
> - Cuemon.Extensions.Swashbuckle.AspNetCore was removed from the solution and migrated to [Codebelt.Extensions.Swashbuckle.AspNetCore](https://github.com/codebeltnet/swashbuckle-aspnetcore)
> - Cuemon.Extensions.Newtonsoft.Json was removed from the solution and migrated to [Codebelt.Extensions.Newtonsoft.Json](https://github.com/codebeltnet/newtonsoft-json)
> - Cuemon.Extensions.AspNetCore.Authentication.AwsSignature4 was removed from the solution and migrated to [Codebelt.Extensions.AwsSignature4](https://github.com/codebeltnet/aws-signature-v4)
This major release is first and foremost focused on ironing out any wrinkles that have been introduced with .NET 9 preview releases so the final release is production ready together with the official launch from Microsoft.

Next focus point will be ensuring a consistent developer experience while ironing out some of the more stale legacy code in the project.
Copy link

Choose a reason for hiding this comment

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

💡 Codebase verification

⚠️ Potential issue

Remaining usages of affected namespaces detected

The migration has been partially completed. Multiple usages of the affected namespaces still exist in the codebase:

  • Cuemon.Extensions.AspNetCore
  • Cuemon.Extensions.AspNetCore.Mvc
  • Cuemon.Extensions.Diagnostics

Developers should update these references to point to their new locations under the Codebelt organization to ensure full migration and compatibility.

🔗 Analysis chain

Major version update with significant changes and migrations

This update to version 9.0.0 introduces substantial changes to the project structure and dependencies:

  1. Several projects have been migrated to the Codebelt organization, which may require updates to project references and namespaces in existing codebases.
  2. Breaking changes have been introduced, particularly affecting Cuemon.Extensions.AspNetCore, Cuemon.Extensions.AspNetCore.Mvc, and Cuemon.Extensions.Diagnostics.
  3. The release focuses on improvements for .NET 9 preview releases, indicating a forward-looking approach.
  4. Support for older target framework monikers has been removed, which may impact compatibility with older projects.

Developers should carefully review these changes and plan for a potentially significant migration effort when updating to this version.

To assess the impact of the migrations and breaking changes, run the following script:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for usage of migrated projects and affected namespaces
echo "Checking for usage of migrated projects and affected namespaces:"
rg -i -t cs "Cuemon\.Extensions\.(Xunit|YamlDotNet|Asp\.Versioning|Swashbuckle\.AspNetCore|Newtonsoft\.Json|AspNetCore\.Authentication\.AwsSignature4)"
echo "Checking for usage of affected namespaces:"
rg -i -t cs "Cuemon\.Extensions\.(AspNetCore|AspNetCore\.Mvc|Diagnostics)"

Length of output: 26572


Script:

#!/bin/bash
# Corrected script to check for usage of migrated projects and affected namespaces

echo "Checking for usage of migrated projects and affected namespaces:"
rg -i -t cs "Cuemon\.Extensions\.(Xunit|YamlDotNet|Asp\.Versioning|Swashbuckle\.AspNetCore|Newtonsoft\.Json|AspNetCore\.Authentication\.AwsSignature4)"

echo "Checking for usage of affected namespaces:"
rg -i -t cs "Cuemon\.Extensions\.(AspNetCore|AspNetCore\.Mvc|Diagnostics)"

echo "Checking for projects targeting removed framework versions:"
rg -i 'net6\.0' --glob '*.csproj' .

Length of output: 26571

@codecov
Copy link

codecov bot commented Oct 5, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.14%. Comparing base (958a856) to head (f660cef).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #92      +/-   ##
==========================================
- Coverage   80.23%   80.14%   -0.09%     
==========================================
  Files         617      614       -3     
  Lines       19020    18934      -86     
  Branches     1915     1913       -2     
==========================================
- Hits        15260    15174      -86     
  Misses       3710     3710              
  Partials       50       50              

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

@sonarqubecloud
Copy link

sonarqubecloud bot commented Oct 5, 2024

@gimlichael gimlichael merged commit 1cdaa63 into main Oct 5, 2024
@gimlichael gimlichael deleted the v9.0.0/remove-extensions-aws4 branch October 5, 2024 16:56
@coderabbitai coderabbitai bot mentioned this pull request Oct 9, 2024
This was referenced Nov 11, 2024
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.

2 participants