Hi! Welcome to solc-select.
Bug reports and feature suggestions can be submitted to our issue tracker. For bug reports, attaching the contract that caused the bug will help us in debugging and resolving the issue quickly. If you find a security vulnerability, do not open an issue; email [email protected] instead.
Questions can be submitted to the issue tracker, but you may get a faster response if you ask in our chat room (in the #ethereum channel).
solc-select uses the pull request contribution model. Please make an account on Github, fork this repo, and submit code contributions via pull request. For more documentation, look here.
Some pull request guidelines:
- Work from the
dev
branch. We performed extensive tests prior to merging anything tomaster
, working fromdev
will allow us to merge your work faster. - Minimize irrelevant changes (formatting, whitespace, etc) to code that would otherwise not be touched by this patch. Save formatting or style corrections for a separate pull request that does not make any semantic changes.
- When possible, large changes should be split up into smaller focused pull requests.
- Fill out the pull request description with a summary of what your patch does, key changes that have been made, and any further points of discussion, if applicable.
- Title your pull request with a brief description of what it's changing. "Fixes #123" is a good comment to add to the description, but makes for an unclear title on its own.
Several linters and security checkers are run on the PRs.
To run them locally in the root dir of the repository:
pylint solc_select --rcfile pyproject.toml
black . --config pyproject.toml
We use pylint 2.8.2
black 20.8b1
.
These tests can be run locally by using the bash test_{linux | macos | windows}.sh
respective scripts.
These will also run in a github workflow on each platform.
Run make dev
to create your own development environment.
git clone https://github.com/crytic/solc-select.git
cd solc-select
make dev
Update solc-select
by running git pull
from the solc-select/
directory.