Closed oskarth closed 5 months ago
One thing we could do is to be less aggressive in asserts here https://github.com/oskarth/mopro/blob/main/mopro-core/build.rs#L95-L105
And instead bubble up to run time, or compile time of user application. So if you try to run init on circuit that doesn't have arkzkey etc you get a panic with instruction to prepare this material. That way default cargo build would work.
(Also this is mopro semantics, so perhaps it is mopro build that should fail, not cargo build)
Problem
Currently if we include mopro-core as an external dependency and try to run
cargo build
we get:This is less than ideal because it breaks a common default workflow.
Notes
Using a config.toml file gets rid of this, but it shouldn't necessarily be a requirement for building whole project.
The default fallback is relative to mopro-core example circuits. Not clear how to deal with this in external dependency.
Can we have some other kind of fallback? Or get rid of that build complexity altogether somehow?
Strictly not necessary as we can just say "don't use cargo build", but would be nice to address.
Acceptance criteria
Make default
cargo build
work without additional work from user when including mopro as a dependency.