Unable to build versions to match deployed contracts
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Domain
- build-system, cli, devops
Research direction
Start by running the reported command and reading scripts/build_image.py alongside builds.json, then review related PR #22 and the Rust version handling. The work is complete when the stellar-cli 23.2.1 and rust 1.86.0 combination can build successfully while accommodating their different compiler requirements.
Written by the indexing model from the issue text.
Description
Related to my recently submitted PR #22 that tries to build docker images to verify many existing mainnet contracts
What version are you using?
I am using the branch on that PR, which only extended the allowed set in builds.json to match the versions found "in the wild" of deployed contracts on Soroban mainnet.
What did you do?
./scripts/build_image.py --stellar-cli-version 23.2.1 --rust-version 1.86.0-slim-bookworm --rust-image-digest sha256:57d
415bbd61ce11e2d5f73de068103c7bd9f3188dc132c97cef4a8f62989e944
What did you expect to see?
I expected this to build, as there are multiple contracts using this combination of stellar-cli and rustc
What did you see instead?
I got a build error:
3.288 error: cannot install package `stellar-cli 23.2.1`, it requires rustc 1.89.0 or newer, while the currently active rustc version is 1.86.0
This proves that the rustc used to compile the contract is in many cases not the same rustc used to compile stellar-cli. This doesn't have to match as any stellar-cli from the same commit (on any compiler) must have the same actions/output. Apparently many people are using pre-compiled binaries from Github rather than compiling from source locally.
Proposal
I would propose either:
- Downloading pre-built stellar binary from github releases or anywhere else that is hosted OR
- Using a different rustc to compile stellar from that in the final image. This means 2 different rustc versions (for build and for the final runtime).
Especially if you are going with 2, I think we need to stop providing so many knobs and hardcode one rustc for each stellar version for the build stage in builds.json and always use that rather than passing in some choice in the build_image.py script
- Dominant language
- Python
- Stars
- 0
- Forks
- 2
- Avg merge
- 6h 22m
- Merged PRs (30d)
- 5
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stellar/stellar-cli-docker
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
stellar/stellar-cli-docker#9 · 3 comments ·
All issues in stellar/stellar-cli-docker
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100