Skip to content

Decide long-term silverc strategy: vendor compiler vs pinned bootstrap #2

Description

@trillskillz

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

  1. Keep pinned bootstrap

    • simplest now
    • matches current CI/local flow
    • depends on network + Rust toolchain at setup time
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions