Closed vincent-herlemont closed 2 years ago
There are a few reasons, but the one that makes it entirely necessary is dependency versioning. The engines contain a lot of dependencies sourced from GitHub that aren't locked to specific commits, instead they point to the main branch or some other branch. For example, quaint
is a crate maintained by Prisma but is not locked to a specific version. This works for Prisma since they know what they're doing, but for Prisma Client Rust we're usually behind by a few versions. I really don't want breaking changes to quaint
stopping the engines from compiling just because the engines version being used is older - I'm pretty sure if I hadn't locked the version of quaint
this issue would have already happened.
Additionally, features like sqlite-create-many
are only possible because of modifications I've made to the engines.
Yes I'm afraid of making too many changes such that it would be hard to merge updates, but I'm willing to put in the work to make sure Prisma Client Rust is more stable and has plenty of features.
Oh also cloning prisma/prisma-engines is 400mb, whereas brendonovich/prisma-engines is more like 40mb.
Thank you for your answer @Brendonovich .
Why didn't you submit your changes directly to the official repository?
Do you plan to do this?
You're assuming that Prisma want to merge in my changes - at the moment all focus is on the needs of the JS client. I've spoken with Prisma and tried to merge some changes, but they just aren't interested. Plus even if they did accept the changes the repo would still be a way larger download size.
NOTE: I try to understand in more detail the motivations around forking the official repo.
I see here Cargo.toml#L31-L37 that a fork of prisma/prisma-engines is used.
Here are some questions about that:
There is another project polytope-labs/prisma-client-rs that uses the official repo, did you have some input on it?