Summary
OpenSilver now has a working shared compiler bootstrap path at scripts/bootstrap-silverc.sh, and CI uses the same script to fetch/build the pinned upstream silverc binary.
That unblocks local dev and CI, but the broader packaging decision is still open:
- keep the current pinned-upstream bootstrap model, or
- vendor/distribute the compiler another way.
Why this matters
This choice affects:
- local onboarding friction
- CI stability and cache behavior
- whether downstream tools can assume
silverc is present
- how OpenSilver eventually ships compile/deploy flows in CLI/MCP/Wizard
Current state
- pinned upstream ref:
kaspanet/silverscript @ 2c46231
- bootstrap entrypoint:
npm run bootstrap:silverc
- CI path:
.github/workflows/ci.yml calls scripts/bootstrap-silverc.sh
Decision options
-
Keep pinned bootstrap
- simplest now
- matches current CI/local flow
- depends on network + Rust toolchain at setup time
-
Vendor compiler artifacts or source more aggressively
- lower setup friction for consumers
- more repo/distribution complexity
- needs a clear update policy for upstream pin bumps
Exit criteria
- pick the long-term strategy
- document it in
README.md / NEXT_SESSION.md
- align CLI/MCP/deploy flows with the chosen assumption
Summary
OpenSilver now has a working shared compiler bootstrap path at
scripts/bootstrap-silverc.sh, and CI uses the same script to fetch/build the pinned upstreamsilvercbinary.That unblocks local dev and CI, but the broader packaging decision is still open:
Why this matters
This choice affects:
silvercis presentCurrent state
kaspanet/silverscript@2c46231npm run bootstrap:silverc.github/workflows/ci.ymlcallsscripts/bootstrap-silverc.shDecision options
Keep pinned bootstrap
Vendor compiler artifacts or source more aggressively
Exit criteria
README.md/NEXT_SESSION.md