Skip to content

feat: prepare store releases for VS Code, Open VSX and Zed - #2

Merged
soulbah merged 4 commits into
devfrom
feat/store-release
Oct 6, 2026
Merged

soulbah merged 4 commits into
devfrom
feat/store-release

Conversation

@soulbah

@soulbah soulbah commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

The extensions were not ready for the stores. The VS Code manifest had no icon, gallery metadata or user-facing README, and the Zed crate declared Rust 1.93.1 while the Zed extension registry packages extensions with Rust 1.90, so a registry build would fail.

Changes

  • Zed builds with the registry toolchain: rust-version and rust-toolchain.toml pin Rust 1.90, and CI installs the same toolchain.
  • bun run verify fails when vscode/package.json, zed/extension.toml and zed/Cargo.toml disagree on version, name or description.
  • Store listings: shared description, 256 px icon rendered from the Rootform site icon, gallery banner, Free pricing, homepage, issue link, keywords, Formatters category, changelog, and user-facing READMEs for both editors.
  • release.yml runs on vX.Y.Z tags. It checks the tag against the manifests, runs verify, packages one VSIX with SHA256SUMS, creates the GitHub release and publishes that same file to Open VSX (bootstrap token creates the namespace, then trusted publishing) and to the Visual Studio Marketplace once an Entra ID identity is configured.
  • docs/releasing.md documents versioning, the one-time store setup and the manual Zed registry update.

The extensions remain thin clients of a local rootform lsp: the VSIX contains no binary and downloads nothing.

Validation

  • bun run verify passes; actionlint passes on both workflows.
  • VS Code 1.140 extension-host suite (full, reopen, standalone) passes against Rootform 0.1.0 pre-release builds.
  • The packaged VSIX, installed in an isolated profile next to the HashiCorp Terraform and HCL extensions, passes the same suite, and TextMate tokens resolve to source.rootform.
  • Zed 1.22 with the dev extension built on Rust 1.90 and the Terraform extension installed: .rf.hcl opens as Rootform and .tf stays Terraform. Highlighting, live diagnostics on unsaved buffers, completion, hover, go to definition (including from a policy pack) and formatting work through rootform lsp.

The Zed extension registry packages extensions with Rust 1.90, and Cargo refused the declared rust-version 1.93.1 there. Pin development, CI and rust-version to 1.90, and make verify fail when the editor manifests disagree on version, description or name.
Add the Rootform icon, gallery metadata, keywords, a changelog and user-facing READMEs for the Visual Studio Marketplace, Open VSX and Zed. Both manifests share one description; development notes move to the repository README.
A v* tag verifies the tree, packages one VSIX, attaches it with SHA256SUMS to a GitHub release and publishes the same file to Open VSX (trusted publishing, bootstrap token while set) and the Visual Studio Marketplace (Entra ID, once configured). docs/releasing.md covers store setup and the manual Zed registry update.
@soulbah
soulbah merged commit 0bc647c into dev Oct 6, 2026
4 checks passed
@soulbah
soulbah deleted the feat/store-release branch October 6, 2026 20:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant