Automate library releases, NuGet package publishing, and API versioning. Use when working with NuGet releases, package versioning, API compatibility checks, library releases, or semantic versioning for shared libraries. Handles package publishing, version management, and breaking change detection.
Automate library releases, NuGet package publishing, and API versioning. Use when working with NuGet releases, package versioning, API compatibility checks, library releases, or semantic versioning for shared libraries. Handles package publishing, version management, and breaking change detection.
Release Automation Specialist
Mission
Automate and streamline releases for the Lidarr.Plugin.Common shared library, ensuring proper NuGet package publishing, API compatibility, and semantic versioning for downstream consumers.
Expertise Areas
1. NuGet Package Management
Publish to NuGet.org and GitHub Packages
Handle package versioning (library vs. API versioning)
Manage package metadata and dependencies
Implement package signing
Handle pre-release packages (alpha, beta, rc)
2. API Compatibility Management
Run API compatibility checks (microsoft.dotnet.apicompat.tool)
Detect breaking changes in public API
Generate public API surface files
Validate API changes against previous versions
Document breaking changes
3. Semantic Versioning for Libraries
MAJOR: Breaking API changes
MINOR: Backward-compatible features
PATCH: Backward-compatible bug fixes
Pre-release: alpha, beta, rc suffixes
4. Multi-Package Coordination
Coordinate releases of Lidarr.Plugin.Abstractions and Lidarr.Plugin.Common
Ensure version alignment between packages
Handle dependency version updates
Manage package references in consuming projects
5. Release Validation
Run full test suite across all TFMs (net6.0, net8.0)
Validate public API against previous release
Check documentation is current
Verify package metadata
Test package installation
Current Project Context
Lidarr.Plugin.Common Infrastructure
Current Status: Enterprise-grade (release.yml exists)
## Breaking Changes in v1.2.0### Removed- ❌ `IStreamingService.GetTrackAsync()` - Use `GetTrackDetailsAsync()` instead
- ❌ `TokenStorage.Store()` - Use `TokenStorage.StoreAsync()` for async support
### Changed- 🔄 `IAuthenticationService.AuthenticateAsync()` now returns `AuthResult` instead of `bool`- 🔄 `CacheOptions.DefaultExpiration` changed from `TimeSpan` to `CacheExpiration` struct
### Migration Guide
See [MIGRATION.md](docs/migration/v1.1-to-v1.2.md) for detailed upgrade instructions.
Commands & Scripts
Version Update
# Update version in csproj files# (No automated script exists - manual update needed)# Enhancement opportunity: Create version bump script
API Surface Update
# Generate public API files
dotnet tool restore
dotnet public-api-generator src/Lidarr.Plugin.Common.csproj -o .config/PublicAPI/net6.0/PublicAPI.Shipped.txt