isar-community / isar

Extremely fast, easy to use, and fully async NoSQL database for Flutter
https://isar-community.dev
Apache License 2.0
126 stars 14 forks source link

Add a lock file to allow reproducible builds of binaries #84

Open casimir opened 3 months ago

casimir commented 3 months ago

Is your feature request related to a problem? Please describe.

I am in the process of publishing a flutter app on the F-Droid repo. With the F-Droid team, we are trying to setup reproducible builds In short it implies to be able to rebuild identical binaries between different build runs.

Such requirements prevent to use the pre-built binaries since the build conditions are unknown. To avoid that I have set up a build script with isar as a submodule and it worked as intended for a few days. Indeed a few days later, cargo resolved different dependencies versions, creating a diff in binaries between the build runs.

Describe the solution you'd like

There is always some debates around versionning Cargo.lock in Git but I think in this case it should be. (IMHO it should be versionned for binaries and not versionned for libraries.)

Describe alternatives you've considered

I am experimenting with an arguably dirty hack to keep a versionned lock file in my own repo that should work in the end: https://github.com/casimir/frigoligo/pull/189. But well...