feat: implement comprehensive solution modernization (CPM, KRaft, formatting) - #3
Merged
Conversation
- Add Directory.Packages.props with centralized package versions - Remove version attributes from all PackageReference elements - Organize packages alphabetically in logical sections - Enable solution-wide consistent dependency management
- Add explicit package source configuration at solution level - Support CPM best practices and consistent package resolution
- Standardize indentation for better consistency and readability
There was a problem hiding this comment.
Pull Request Overview
Implements Central Package Management (CPM) by centralizing all NuGet package versions into a single Directory.Packages.props and adding an explicit NuGet.Config, then cleaning up individual project files.
- Added
Directory.Packages.propsfor centralized version definitions and grouping - Added
NuGet.Configfor explicit package source mapping - Removed
Versionattributes from all<PackageReference>entries in 13 projects and updated the solution file
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj | Removed Version attributes from test package references |
| tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj | Removed Version attributes from shared test package references |
| src/**/*.csproj | Removed Version attributes across all production package references |
| NuGet.Config | Added explicit package source mapping |
| Directory.Packages.props | Introduced centralized <PackageVersion> definitions |
| Confluent.Kafka.Core.sln | Added Directory.Packages.props and NuGet.Config to solution items |
Comments suppressed due to low confidence (2)
tests/Confluent.Kafka.Core.Tests/Confluent.Kafka.Core.Tests.csproj:31
- Consider adding PrivateAssets="all" to test-only dependencies (Microsoft.NET.Test.Sdk, Moq, xunit) to prevent them from flowing transitively to consuming projects.
<PackageReference Include="Microsoft.NET.Test.Sdk" />
tests/Confluent.Kafka.Core.Shared.Tests/Confluent.Kafka.Core.Shared.Tests.csproj:29
- Shared tests also reference configuration and test frameworks; add PrivateAssets="all" on PackageReference elements that should not be transitive.
<PackageReference Include="Microsoft.Extensions.Configuration" />
- Standardize indentation across all .csproj and Directory.Packages.props - Fix encoding issues and remove BOM signatures - Ensure consistent UTF-8 formatting throughout solution
- Convert Docker Compose from Zookeeper-based to KRaft mode - Remove Zookeeper service for simplified architecture - Add CLUSTER_ID and update Kafka configuration for KRaft - Fix integration test failures with Schema Registry and Kafka connections - Reduce container count and improve startup performance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎯 Overview
This PR implements Central Package Management (CPM) across the entire Confluent.Kafka.Core solution, centralizing all NuGet package version management into a single
Directory.Packages.propsfile with explicit package source configuration. Additionally, it standardizes code formatting and modernizes the development infrastructure.📋 What Changed
Directory.Packages.propswith centralized package version definitionsNuGet.Configfor explicit package source management and securityVersionattributes from allPackageReferenceelements across 13 projectsManagePackageVersionsCentrallyproperty for solution-wide consistency🏗️ Package Organization
Packages are now organized in alphabetically-sorted sections:
🔒 Package Source Configuration
🎨 Code Formatting Standardization
🐳 Infrastructure Modernization
🚀 Benefits
.csprojfiles🔧 Technical Details
Directory.Packages.props+NuGet.Configfor complete package management✅ Testing
📖 Documentation
Follows Microsoft's Central Package Management guidelines and industry best practices for package source security.
Migration Impact: This comprehensive modernization makes future dependency management significantly easier, more secure, and more reliable across the entire solution while providing a more robust development infrastructure.