Skip to content

feat(zed): publish the Zed extension to a build-gated mirror on release#193

Merged
abdushakoor12 merged 1 commit into
mainfrom
claude/serene-chaum-bfcd39
Jun 26, 2026
Merged

feat(zed): publish the Zed extension to a build-gated mirror on release#193
abdushakoor12 merged 1 commit into
mainfrom
claude/serene-chaum-bfcd39

Conversation

@abdushakoor12

Copy link
Copy Markdown
Collaborator

TLDR

Adds the release path that ships the Basilisk Zed extension by rendering a self-contained, WASM-build-gated mirror to Nimblesite/basilisk-zed on every tag.

What Was Added?

  • scripts/render-zed-mirror.sh — renders the in-repo basilisk-zed/ crate into a tree the zed-industries/extensions registry can build standalone: vendors the zero-dep basilisk-common under vendor/, rewrites the workspace path-dependency to the vendored copy, drops workspace-only [lints] inheritance, and appends an empty [workspace] so the mirror is its own workspace root.
  • scripts/set_toml_version.py — a tomllib-validated version setter the render script uses to stamp the extension Cargo.toml, the vendored crate Cargo.toml, and extension.toml. It parses each file, replaces the single scoped version line, and re-parses to confirm the result is valid TOML (a structured write, not blind sed).
  • publish-zed job in release.yml — on a v* tag it renders the mirror, gates the push on a real cargo build --release --target wasm32-wasip2, then pushes and tags Nimblesite/basilisk-zed using BREW_SCOOP_PAT (same clone-replace-commit-push-tag convention as publish-nvim).

What Was Changed or Deleted?

  • Untracked committed Zed build-artifact driftbasilisk-zed/extension.wasm and the entire basilisk-zed/dist/** tree (a stale packaged copy: another extension.wasm, extension.toml, debug-adapter schema, and tree-sitter .scm queries). All are already .gitignored and regenerated by every build, so they were removed from version control (the files remain on disk).
  • No behaviour in the shipped binaries, LSP, or other editor extensions changed — the diff is limited to the Zed release tooling, docs, and the artifact untracking.

How Do The Automated Tests Prove It Works?

  • make ci passes end to end (lint + full Rust test suite & coverage thresholds + release build).
  • Zed extension job is green: cargo build --release --target wasm32-wasip2, cargo clippy, and 96 unit tests (cargo test -p basilisk-zed) pass.
  • The render path was exercised directly: render-zed-mirror.sh produces a placeholder-free tree whose standalone wasm32-wasip2 build succeeds (basilisk-zed vX.Y.Z → valid .wasm), including with a SemVer pre-release tag, proving set_toml_version.py stamps all three TOML carriers correctly.
  • Lint gate green: ruff format --check, ruff check, cargo fmt --check, and the deslop duplication gate all pass.

Spec / Doc Changes

  • docs/specs/ZED-SPEC.md: new [ZED-MIRROR] section documenting the registry-publish mechanism and the two structural blockers it solves (placeholder version + workspace path-dep), and a fix to the binary-download repo slug in [ZED-DIST] (basilisk-lang/basiliskNimblesite/Basilisk, matching the release::GITHUB_REPO constant the extension actually uses).

Breaking Changes

  • None

The zed-industries/extensions registry builds extensions standalone from a
pinned commit, so shipping Basilisk to Zed needs a self-contained,
version-stamped mirror — this adds that release path, mirroring publish-nvim.

- scripts/render-zed-mirror.sh renders a standalone tree: vendors
  basilisk-common, rewrites the workspace path-dep to the vendored copy, makes
  the mirror its own workspace root, and stamps the version structurally via
  scripts/set_toml_version.py (tomllib-validated, not blind sed)
  — [SWR-VERSION-BUILD-STAMPING].
- release.yml gains a publish-zed job that renders the tree, gates the push on
  a real wasm32-wasip2 build, then pushes and tags the Nimblesite/basilisk-zed
  mirror (BREW_SCOOP_PAT, same write convention as publish-nvim).
- Untrack committed Zed build-artifact drift (extension.wasm, dist/**): both
  are gitignored and regenerated by every build.
- Document the mechanism as [ZED-MIRROR] and fix the binary-download repo slug
  (basilisk-lang -> Nimblesite) in ZED-SPEC.md.
@abdushakoor12 abdushakoor12 merged commit b5d614c into main Jun 26, 2026
22 checks passed
@abdushakoor12 abdushakoor12 deleted the claude/serene-chaum-bfcd39 branch June 26, 2026 09:22
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