Skip to content

Fix F1 solc version selection on Render - #13

Merged
chokri29 merged 19 commits into
mainfrom
fix/f1-solc-version-selection
Nov 4, 2026
Merged

chokri29 merged 19 commits into
mainfrom
fix/f1-solc-version-selection

Conversation

@chokri29

@chokri29 chokri29 commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Urgent F1 compiler fix

Changes

  • Discover compiler candidates from solc-select inventory, artifact directories, and solc --version on PATH, but only report/select versions that resolve to an executable binary.
  • Select the highest installed compiler compatible with a pragma such as ^0.8.0; use the highest installed compiler for no-pragma sources.
  • Never return a missing requested compiler as if it were installed. Health now reports compilers_ready only when a usable compiler binary is verified and exposes the effective default.
  • Prefer Slither Python API. On solc X not installed / only Y available, retry the Python API exactly once using a verified installed compiler, activate it with solc-select use, and pin the temporary source pragma to that version.
  • Do not fall back to the Slither CLI after a Python API compile error (avoids the known argparse failure path).
  • Align Docker/default guidance to SOLC_VERSION=0.8.38; Docker installs and selects 0.8.38.
  • Remove the duplicate legacy compiler selector from solc_patch.py and delegate to solc_util.py.
  • Add regression tests for verified compiler discovery, caret pragma selection, no-pragma selection, and source pinning.

Validation

  • Source changes and test coverage added.
  • I have not run the GitHub Actions suite or exercised the live Render deployment from this environment. The acceptance test still required after deployment is the Reentrancy sample showing F1 → F2 → F3, at least one Slither signal, and grounded findings.

Render environment

Set SOLC_VERSION=0.8.38 in the Render service environment and remove any SOLC_VERSION=0.8.0 setting. Do not expose or paste API keys.

@chokri29
chokri29 merged commit 01e7385 into main Nov 4, 2026
2 checks passed
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.

1 participant