-
Notifications
You must be signed in to change notification settings - Fork 736
Description
Hi 👋
We have tons of stuff to improve in this library and there wasn't really time for this. Let's do it finally! Let's maintain this issue as a single place to track our work. 💪 cc @domgreen @johanbrandhorst @mwitkow
The plan is to start from scratch in the v2
branch. We will work in the background until it's done.
Work Done
-
Started v2 branch, implemented all while leaving same API. Assignee: @bwplotka
-
Never again use those weird
module_names
🙃 Done Assignee: @bwplotka -
Multi-module architecture, allowing us to avoid dependency hell, but also retaining mono repo. Module structure: Done Assignee: @bwplotka
The key part is to make sure the core is never importing the provider's code. There has to be indirection. This way the lib has minimum dependencies possible, with core literally having core only.If maintaining multi modules will be problematic, we can look into modularise cc @Helcaraxan
TODO (help wanted!) for 2.0:
Blockers:
- Do one more review of all interfaces we expose to check if we can simplify something. Assignee @johanbrandhorst
- Upgrade gRPC and use https://godoc.org/google.golang.org/grpc#ChainUnaryInterceptor Assignee: @bwplotka
- Upgrade golang/protobuf to v2. Same with gogo? Assignee: @bwplotka
- Move to GitHub actions Assignee: @bwplotka
- MIgration docs!
- Start using
gorelease
(https://godoc.org/golang.org/x/exp/cmd/gorelease) - Consider adding whitelist behaviour to auth interceptor: How to enable whitelist auth?
- Add tracing interface and move opentracing to provides. Add opentelemetry providers.
- Use the v2 in Thanos for first hand expierience in upgrading. Assignee: @bwplotka
Can be done in 2.x
- Move https://github.com/grpc-ecosystem/go-grpc-prometheus as another provider. Deprecate repo.
- Add failint to avoid not needed imports (e.g v1 packages)
- Move to more maintained validators
- Review if we can simplify retry internally
- Stale bot
- Dependabot
Any other ideas?