Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

docs: `foundryup` recommendation can install a version different from the repository-pinned Foundry toolchain

Aperta Adatta ai principianti
#403 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
1-3 ore
Idoneità per principianti
86/100
Tipo di issue
Documentazione
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
solidity

Direzione di ricerca

Leggi le istruzioni di configurazione e ripristino interessate in README.md insieme alla versione fissata di Foundry in .mise.toml. Verifica che i comandi documentati utilizzino la toolchain fissata dal repository e preservino il workflow semver-lock esistente. Il lavoro è completato quando README.md non indirizza più i contributors verso un percorso foundryup non fissato e le relative istruzioni di configurazione corrispondono alla definizione autorevole della versione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

The repository pins Foundry to a specific version in .mise.toml for deterministic builds, ABI/storage snapshots, and semver-lock hashes.

However, the README currently recommends running:

foundryup

when semver-lock fails because of a Foundry version mismatch.

foundryup normally updates Foundry independently of the repository's .mise.toml pin. This can leave contributors on a different Foundry version from the one explicitly required by the repository and CI.

The recovery instruction can therefore make the original version-mismatch problem worse rather than resolving it.

Affected Files

  • README.md
  • .mise.toml

Current Behavior

.mise.toml explicitly states that the repository pins tooling so contributors and CI execute builds, tests, snapshots, and semver-lock generation with byte-identical tooling.

The current pin is:

[tools]
foundry = "1.5.1"

The README, however, says that if semver-lock still fails because of a Foundry version mismatch, contributors should run:

foundryup
just semver-lock

This does not guarantee installation of Foundry 1.5.1.

Why This Is a Problem

A contributor can follow the README exactly and still end up using a toolchain different from CI.

Example flow:

  1. Contributor clones the repository.
  2. Contributor has an older or newer Foundry version.
  3. just semver-lock fails.
  4. Contributor follows the documented recovery instructions.
  5. foundryup installs the current Foundry release.
  6. The installed version is not necessarily the repository-pinned 1.5.1.
  7. Generated semver-lock hashes or snapshots can still differ from CI.

This contradicts the reproducibility requirement documented in .mise.toml.

Expected Behavior

The README should direct contributors to install the exact repository-pinned toolchain.

For example:

mise install
mise exec -- just semver-lock

or otherwise explicitly install the same Foundry version used by CI.

Suggested Fix

Replace:

If CI still rejects it (Foundry version mismatch), update your local Foundry first:

```bash
foundryup
just semver-lock

with something similar to:

```markdown
If CI still rejects it because of a Foundry version mismatch, install the repository-pinned toolchain:

```bash
mise install
mise exec -- just semver-lock

The Foundry version is pinned in .mise.toml and should match CI.


## Additional Improvement

The setup section currently also says:

```bash
just install-foundry

Consider making mise install the canonical setup path if .mise.toml is intended to be the authoritative source of tool versions.

Alternatively, just install-foundry could explicitly install the version defined by .mise.toml.

Impact

This is primarily a developer-experience and build-reproducibility issue.

It can cause:

  • unnecessary CI failures;
  • semver-lock hash mismatches;
  • snapshot differences;
  • contributors regenerating artifacts with unsupported tooling;
  • confusion when following the documented remediation steps.

Environment

Repository:

base/contracts

Branch:

main

Affected documentation:

README.md

Toolchain definition:

.mise.toml

Lingua principale
Solidity
Stelle
327
Fork
245
Merge medio
1g 4h
PR unite (30g)
13

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di base/contracts

Tutte le issue di base/contracts

Issue simili

Altre issue su Build System

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.