diff --git a/CLAUDE.md b/CLAUDE.md index 4f9aded..e8d4d0d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -141,6 +141,37 @@ When running with docker-compose: - Docker & Docker Compose for containerization - Drone CI/CD on Kubernetes +## NuGet Package Management + +The project uses **Central Package Management (CPM)** with **Package Source Mapping** to manage NuGet dependencies: + +### Package Sources + +- **nuget.org**: All public packages (Microsoft.*, Serilog.*, etc.) +- **musk** (private): Internal `Nocr.*` contract packages + +### Configuration + +The `nuget.config` file in the project root defines package source mapping: +```xml + + + + + + + + +``` + +### How It Works + +1. **Local Development**: Copy `nuget.config` to each submodule root when needed +2. **CI/CD**: Drone automatically copies `nuget.config` to `/root/.nuget/NuGet/NuGet.Config` +3. **Docker Builds**: Kaniko copies `nuget.config` to submodule root before building + +This eliminates NuGet warning NU1507 and ensures consistent package resolution across all environments. + ## CI/CD Pipeline **📖 See [_deploy/README.md](_deploy/README.md) for full CI/CD documentation.**