-
Notifications
You must be signed in to change notification settings - Fork 426
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
Custom scalar integration policy / decide what (if anything) to do about smaller crate integrations #235
Comments
I would like to see most types supported in Diesel also supported in Juniper. E.g. BigDecimal. As Diesel is a very likely crate that people will use with Juniper, I think maintaining a close parity make sense. |
Also see #232. |
The biggest challenge is the maintenance burden of version upgrades of dependencies. We need a solid strategy for dealing with this, especially when Juniper approaches a 1.0. With Uuid and chrono we have been able to get a way with having a version range, since the API surface we need is usually very shallow and rarely changes. I'd propose to remain very conservative with adding integrations. I currently don't see (m)any crates that would fit this definition. Making newtypes easierUsing the newtype pattern and defining wrapper types is admittedly pretty annoying, no doubt about that. We can make using wrapper types quite a bit easier though! If we then have a good documentation page in the book for this pattern, it should be enough for most use cases where we feel uncomfortable with adding the dependency. |
See #165 (comment).
There will always be a push and pull of wanting to put integrations in juniper vs keeping them out.
I think this will come up more and more as Juniper gets popular, especially once we go full async and show some benchmarks compared to other languages 😜 . We should probably have some "official" policy of what gets added or not.
Thinking out loud, perhaps we should have an
unstable-integrations
flag that we can put less popular crates behind. We would have no contract for keeping them release-to-release and deleting them would not impact semver but people can opt into using them at their own risk. Users would be acutely aware that if we delete the integration they need to copy the code into their own project and/or create their own integration crate.The text was updated successfully, but these errors were encountered: