Skip to content

docs: fix development setup steps in CONTRIBUTING.md - #3050

Open
Kyenghwan-Hwang wants to merge 1 commit into
crytic:masterfrom
Kyenghwan-Hwang:docs/contributing-setup-fixes
Open

docs: fix development setup steps in CONTRIBUTING.md#3050
Kyenghwan-Hwang wants to merge 1 commit into
crytic:masterfrom
Kyenghwan-Hwang:docs/contributing-setup-fixes

Conversation

@Kyenghwan-Hwang

Copy link
Copy Markdown

Summary

Following CONTRIBUTING.md verbatim on a clean environment fails at three
points. This PR updates the doc to match what actually works. Documentation
only — no code changes.

Environment where these were reproduced: fresh clone, macOS arm64
(Darwin 25.3.0), uv 0.11.6, Python 3.14.4 (uv-managed venv).

1. make dev fails without prek

Running make dev on a fresh clone stops at:

prek install
make: prek: No such file or directory
make: *** [dev] Error 1

Root cause: the dev target runs uv sync --group dev followed by
prek install, but prek is not a dev dependency in pyproject.toml, and the
prek install line under "Pre-commit Hooks (Recommended)" installs the
hooks, not prek itself. Added uv tool install prek to the setup snippet.

2. Full test suite has undocumented external prerequisites

On a clean environment, make test exits non-zero with 18 baseline
failures unrelated to the checkout:

6 failed, 7241 passed, 7 skipped, 14 xfailed, 30 warnings, 12 errors

All 18 trace to two missing tools:

  • vyper (16): FileNotFoundError: [Errno 2] No such file or directory: 'vyper'
    (10 collection errors in tests/e2e/vyper_parsing/, plus 6 Vyper-related
    unit test failures)
  • ganache (2): the tests/tools/read-storage fixture raises
    Exception: ganache was not found in PATH, you can install it with 'npm install -g ganache'

Added one paragraph documenting both prerequisites, matching what CI
installs (vyper v0.3.7, npm install --global ganache in
.github/workflows/test.yml).

3. Bare python/pytest commands don't work in the uv workflow

The testing steps invoke python tests/e2e/detectors/test_detectors.py --compile and bare pytest. With uv-managed dependencies (the setup this
same document prescribes), those run outside the venv and fail unless the
user knows to activate .venv first. Prefixed the commands with uv run,
consistent with how the Makefile invokes them.

I hit this directly with the detector-test commands; the solc_parsing
section's commands were updated the same way for consistency, since the
failure mode (venv not on PATH) is identical.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@CLAassistant

CLAassistant commented Jul 15, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants