-
Notifications
You must be signed in to change notification settings - Fork 1
Create v2 version branch for production-ready cache implementations with breaking changes #29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: copilot/fix-ceddbc84-3b7a-45f1-9574-895b8abc7d1f
Are you sure you want to change the base?
Conversation
Co-authored-by: evangwt <[email protected]>
Co-authored-by: evangwt <[email protected]>
Co-authored-by: evangwt <[email protected]>
|
@copilot The implement of redis and memory cache is nice. But user can use their implements are better. |
|
@copilot An abstract cache interface with a default implement is better. |
…s directory Co-authored-by: evangwt <[email protected]>
You're absolutely right! I've refactored the library to prioritize user implementations over built-in ones. Changes made (commit 5e7b76e):
Why this approach is better:
The library now clearly follows "your cache implementation is YOUR choice - grc provides the elegant interface." |
|
@copilot these implementations should use a production-ready naming rule for users to use. The examples folder is not that production-ready. These implementations are default options for users and they can use others which implement the interface definition. Provide simple apis for users. Easy to use is best. |
Co-authored-by: evangwt <[email protected]>
I've restructured grc to provide production-ready default implementations with simple APIs as requested. Changes made (commit d204fac):
The library now provides the best of both worlds: simple defaults for easy adoption while maintaining the flexible interface design you requested. |
|
This PR should create a new v2 version branch to merge it. @copilot |
Co-authored-by: evangwt <[email protected]>
I've created the v2 branch as requested (commit c3e2ce8). The changes include:
The v2 branch properly handles the breaking changes and follows Go module versioning best practices for major version updates. |
This PR creates a new v2 version branch to properly handle the major breaking changes that transform grc from an interface-only library to one that provides both a clean interface and production-ready default implementations.
Why v2.0?
The changes introduce breaking changes that warrant a major version bump:
github.com/evangwt/grc→github.com/evangwt/grc/v2Key Changes in v2.0
🚀 Production-Ready Built-in Implementations
examples/implementations/to root level as production defaultsgrc.NewMemoryCache()andgrc.NewRedisClient()instead of example-style namesgrcpackage🎯 Simplified Usage
Before (v1 - complex):
After (v2 - simple):
📚 Focused Documentation
Migration Guide
To upgrade from v1 to v2:
Update your import statement:
Use built-in implementations directly:
Performance & Features
All existing performance optimizations are preserved:
Technical Details
This change makes grc both powerful (through its interface) and approachable (through its defaults) while properly versioning breaking changes as v2.0.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.