v4.0.0 - Complete Bundle Redesign with Modern Architecture#6
Conversation
- Upgrade to calliostro/php-discogs-api v4.0.0-beta.1 (breaking changes) - Implement Symfony 6.4+ configuration with modern best practices - Add comprehensive integration test system with real API testing - Modernize bundle configuration validation and error handling - Clean up README structure and remove outdated upgrade notices - Complete rewrite for PHP 8.1+ and modern Symfony ecosystem
- Allow exact version constraints for beta/alpha/rc versions - Use --no-check-version flag instead of --strict for pre-release branches - Maintain strict validation for stable releases
- Remove optional OAuth token references from environment setup - Simplify credential requirements to essential secrets only - Focus on the three secrets actually used in CI pipeline
…integration - Implement all 60 Discogs API methods with named parameters - Integrate Symfony Rate Limiter component - Remove legacy throttle system and array parameters
…e credential validation and support for environment variables. Update tests accordingly.
…tency and readability.
…tency and readability.
….5, ensuring stricter validation for Symfony compatibility
…mprove compatibility with Symfony
…iting documentation; refine composer.json dependencies for Symfony 8.0 compatibility; enhance MockOAuthToken class definition.
…ine configuration for Symfony 6.4
…Stan analysis commands and documentation for clarity
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Pull request overview
This PR represents a complete architectural rewrite of the Discogs Bundle for Symfony, introducing v4.0.0 with breaking changes and modern best practices.
Summary
The bundle has been completely redesigned from the ground up, transitioning from a v3.x architecture to a modern, type-safe implementation. This is not an incremental upgrade but a fresh start that prioritizes developer experience, modern PHP 8.1+ features, and simplified configuration.
Key Changes
- Authentication modernization: Added Personal Access Token support and built-in OAuth 1.0a without external dependencies
- API redesign: All 60 methods refactored with consistent verb-first naming and camelCase parameters instead of arrays
- Configuration simplification: Removed complex OAuth and throttle configurations, replaced with modern Symfony Rate Limiter integration
- Testing improvements: Comprehensive unit and integration test suites with proper separation
Reviewed changes
Copilot reviewed 49 out of 49 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| composer.json | Updated dependencies to require calliostro/php-discogs-api ^4.0, moved Symfony deps to require-dev |
| src/CalliostroDiscogsBundle.php | Added getPath() and getContainerExtension() implementations |
| src/DependencyInjection/CalliostroDiscogsExtension.php | Complete rewrite with factory-based client creation and rate limiter integration |
| src/DependencyInjection/Configuration.php | Simplified configuration tree with personal_access_token, consumer credentials, and rate_limiter options |
| src/DependencyInjection/DiscogsClientFactory.php | New factory service for runtime credential validation with helpful error messages |
| src/Middleware/RateLimiterMiddleware.php | New Guzzle middleware integrating Symfony Rate Limiter component |
| src/Resources/config/services.php | New PHP-based service configuration replacing XML |
| tests/Unit/* | Comprehensive unit test suite for bundle integration, configuration, and dependency injection |
| tests/Integration/* | Integration tests for public and authenticated API endpoints |
| tests/Fixtures/TestKernel.php | Enhanced test kernel with better cache management |
| README.md, UPGRADE.md, CHANGELOG.md, DEVELOPMENT.md | Complete documentation overhaul with migration guides |
| phpunit.xml.dist | Updated with separate test suites for Unit and Integration tests |
| .github/workflows/ci.yml | Enhanced CI workflow with Symfony version matrix testing |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…sions (6.4|7.x|8.x)
This release represents a fundamental architectural overhaul, prioritizing developer experience, type safety, and Symfony integration best practices.
Breaking Changes
Migration Required
This is a new installation, not an upgrade from v3.x. All configuration and method calls must be updated. See CHANGELOG.md and UPGRADE.md for detailed migration guide.
Features
Documentation