docs: `foundryup` recommendation can install a version different from the repository-pinned Foundry toolchain
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 1/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 86/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- solidity
- Lĩnh vực
- build-system, developer-experience, documentation
Hướng nghiên cứu
Đọc các hướng dẫn thiết lập và khôi phục liên quan trong README.md cùng với phiên bản Foundry được ghim trong .mise.toml. Xác minh rằng các lệnh được ghi lại sử dụng toolchain được ghim bởi repository và duy trì workflow semver-lock hiện có. Được xem là hoàn tất khi README.md không còn hướng dẫn contributors đến một đường dẫn foundryup không được ghim và hướng dẫn thiết lập của README.md khớp với định nghĩa phiên bản có thẩm quyền.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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:
- Contributor clones the repository.
- Contributor has an older or newer Foundry version.
just semver-lockfails.- Contributor follows the documented recovery instructions.
foundryupinstalls the current Foundry release.- The installed version is not necessarily the repository-pinned
1.5.1. - 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
- Ngôn ngữ chính
- Solidity
- Star
- 327
- Fork
- 245
- Merge trung bình
- 1 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 13
Chuẩn bị môi trường
Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của base/contracts
-
bug(SuperchainConfig): extend() can re-activate an expired pause, bypassing Stage 1 requirementĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
base/contracts#410 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của base/contracts
Issue tương tự
-
kind/bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 7 ngày
-
[Bug] @deck.gl/arcgis dist import resolves to unpublished @deck.gl/core source path (9.3.11, 9.4.0)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
agent-research-finding agent-research-recommend chore ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
jordansmall/spindrift#4068 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Urigo/accounter-fullstack#4583 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Windows: emptyDir EPERM fallback calls fs.rmdirSync with recursive, which Node.js 26 rejectsĐang mở- P3: minor bug pkg: astro triage: fix pending
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
withastro/astro#18170 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày