Hey,had a closer look at gauntlet pr: https://github.com/GauntletNetworks/aave-proposals/pull/2/files
generate
generates the proposal/tests/scripts based on a supplied ts https://github.com/GauntletNetworks/aave-proposals/pull/2/files#diff-45b18505dc9d6a005ade2f483af09d6387ad8248437b2a44d902ad0c675e5f78R1. This seems a bit different to what we started with. Instead of having another "config" artifact generating the proposal our appraoch was to have essentially a prompt asking you what you want & generating the proposal based on that.- the advantage of gauntlet approach is that it's easily reproducible/deterministic and you can change the config to then change the proposal & tests. Also if you know the tooling it's faster than ours. The core idea is that you never touch the solidity code and only adjust it via the generator.
- the advantage of our appraoch is that you don't need any knowledge about the system. The core idea is that you initialize via the generator and then adjust on top of that.
Gauntlet approach is legit & useful for teams mostly doing repeating tasks that can be easy generated e2e.
Potentially our system could be improved to spit out a json or similar at the end (and allow as input on the start) so we end up with what gauntlet proposes on top of ours (as our system is very much a prototype and their is working & used in prod already, that just a thought for the future).
upload-ipfs
transforms to json, uploads a file to ipfs (pinata & thegraph)
We don't cover this at all yet, but not sure if it makes sense as part of the cli level, or should better just be on ci? For teams like gauntlet who skip the current aave/aip process definitely useful. Put my thoughts about how i imagine the overall process here: bgd-labs/aave-proposals#85 (comment)
-
test
tests a proposal based on glob date pattern a laforge test --match-contract AaveV3.*Update_${argv.updateDate}_Test -vv
-
deploy
essentially same astest
but fordeploy
-
emit-proposal
essentially same asdeploy
but foremit
I think a glob pattern is useful, although i'm wondering why by date and not topic?
Anyhow both might be legit - that said, i don't see why one would do this in js
and not just put it one the makefile
?
Final thoughts: I think it's fine to merge (after careful review ofc¹) & will definitely add value short-term for teams like gauntlet/chaos/llama.
test
,deploy
andemit
should probably be removed and moved to make.upload-ipfs
we might want to switch to our own tooling eventually
¹ Didn't yet have time to check, but there are some deps idk, so should probably review a bit in detail (namely stream-to-it
and exaca
.