@kashbrti @jtriley-eth @TomAFrench
Some suggestions:
It doesn't look like I can create a tasklist, otherwise I'd have neatly made one for the 4 things below:
- Change this template's filing structure to house test binaries which can consume the lib
- Add CI to catch constraint regressions to this template
- Figure out how to measure constraints of each lib function separately
- Add CI to give a constraint diff report in PRs
I've noticed that I and other people tend to follow a pattern like this:
- Put the actual library in a
./lib/ dir.
- Put a test binary - which depends on the library - in a
./examples/ dir (the name can be debated).
- Write a script which compiles the lib and then calls
bb gates
Should we update this template to follow that kind of approach?
Some further suggestions:
Ideally, CI for libraries should catch regressions in constraint counts.
A single main function isn't the best for debugging which of the many functions in your lib might have regressed, constraint-wise. It would be better if we had some way of writing many main functions, each of which we could measure independently as part of CI.
I encountered this problem yesterday, and it was painful to figure out which function had regressed.
aztec-packages CI goes even further, and for every PR outputs a report of increases / decreases in constraint counts and opcodes. Pretty cool.
@kashbrti @jtriley-eth @TomAFrench
Some suggestions:
I've noticed that I and other people tend to follow a pattern like this:
./lib/dir../examples/dir (the name can be debated).bb gatesShould we update this template to follow that kind of approach?
Some further suggestions:
Ideally, CI for libraries should catch regressions in constraint counts.
A single
mainfunction isn't the best for debugging which of the many functions in your lib might have regressed, constraint-wise. It would be better if we had some way of writing manymainfunctions, each of which we could measure independently as part of CI.I encountered this problem yesterday, and it was painful to figure out which function had regressed.
aztec-packages CI goes even further, and for every PR outputs a report of increases / decreases in constraint counts and opcodes. Pretty cool.