-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(fw): add eest utils and improve user repo init experience #461
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really like this idea - added a few quick thoughts!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks awesome! Just a couple of comments.
As highlighted by @danceratopz: we should be careful when fully deprecating all other solc versions, pointing out from version 0.8.22:
Hence I have added the installation of both The optimal solution moving forward in my opinion is to always support solc 0.8.21, and the latest version. For forks that are |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More suggestions :)
Co-authored-by: danceratopz <danceratopz@gmail.com>
Co-authored-by: danceratopz <danceratopz@gmail.com>
Co-authored-by: danceratopz <danceratopz@gmail.com>
9949d8d
to
bce9797
Compare
c8b7ff5
to
6ebe1a8
Compare
This is getting messy so setting this to WIP. I'm planning to split this into 2 PRs now:
|
It would be really nice to add something like a wizard to create a new test. It could ask questions like:
|
🗒️ Description
Initializes an EEST utils entry point that provides common eest related commands:
eest init
: Initializes the repo by installing all the relevant packages.eest clean
: Cleans up all generated folders and files.eest reset
: Perfoms a clean and initialization.Ideally in the future we can add more flags/commands for commonly run local workflows.
Removes solc as an installation dependency
Additionally, this PR adds
solc-select
to the install requires part ofsetup.cfg
and thetox.ini
file. Solc select is a python command line utility used to install and switch between stable solc versions easily: https://github.com/crytic/solc-select, it's similar to pyenv.As we aim to always stay up to date with the latest stable solidity compiler, solc-select allows us to do this using:
Unfortunately we can't fully rely on the latest version, as from the 0.8.22 release notes:
Hence we in the future we should additionally always support a solc version below
0.8.22
for filling tests that are older than Constantinople. Ideally this is something we enforce within the framework. This PR additionally installs version0.8.21
within the venv, but it is not used within the framework.Replaces Windows with WSL
Its unlikely that users of this repo use Windows, given that most open source contributors develop on unix based systems.
As
solc-select
doesn't fully support Windows, and other PRs including: #453 only work for unix based systems - it made sense to replace the support of Windows for WSL within EEST. Due to this the documentation has been updated to support the latter, making it easy for users to get set up with WSL on there Windows machine for all EEST related development.Updates to workflows
Since solc is removed as a dependency, the github workflows are updated to account for this. Now all workflows run with the latest stable solc binary. Additional changes:
fixtures.yaml
.test.yaml
totox.yaml
to better align with what the workflow does.Remaining Todos
Future Todos
fill --version-info
.🔗 Related Issues
None
✅ Checklist
mkdocs serve
locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.