Skip to content

Prepare VS Code extension for Marketplace release#1102

Merged
aallan merged 5 commits into
mainfrom
agent/publish-vscode-extension
Jul 17, 2026
Merged

Prepare VS Code extension for Marketplace release#1102
aallan merged 5 commits into
mainfrom
agent/publish-vscode-extension

Conversation

@aallan

@aallan aallan commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

Prepare the existing VS Code extension for its first Visual Studio Marketplace release under the new veralang publisher.

  • change the canonical extension ID from aallan.vera-language to veralang.vera-language
  • replace source-only LSP setup guidance with the PyPI command python -m pip install "veralang[lsp]"
  • add Marketplace installation links and actionable runtime diagnostics
  • pin @vscode/vsce and add repeatable source-check, package-list, and VSIX packaging scripts
  • add a path-filtered GitHub Actions workflow that builds and retains the tested VSIX
  • shorten the manifest description for Marketplace search and result displays

The existing extension version remains 0.2.0: 0.1.0 was the syntax-highlighting release and 0.2.0 added LSP integration. Extension versions are independent of the Vera compiler/PyPI version.

User impact

Users will be able to install veralang.vera-language from the VS Code Marketplace instead of symlinking a repository checkout. Language-server users receive the correct PyPI installation command, while syntax highlighting continues to work without the optional server.

Related Issues

N/A

Type of Change

  • Specification change
  • Compiler implementation
  • Bug fix
  • Tests / CI
  • Documentation
  • Packaging

Validation

  • npm ci — 0 vulnerabilities
  • npm run check
  • npm run package:list
  • npm run package
  • verified packaged identity veralang.vera-language@0.2.0
  • verified the VSIX includes vscode-languageclient and excludes packaging-only dependencies
  • parsed the workflow YAML
  • python scripts/check_changelog_updated.py
  • applicable pre-commit hooks

The generated VSIX is 475 KB. Marketplace upload remains a separate manual release step after this PR merges.

Checklist

  • I have read CONTRIBUTING.md
  • My changes follow the project's coding standards
  • I have added/updated validation as appropriate
  • I have updated relevant documentation
  • Relevant checks pass locally

Summary by CodeRabbit

  • New Features

    • Prepared the Vera VS Code extension for VS Code Marketplace publication under the veralang.vera-language identifier.
    • Improved guidance for configuring the Vera language server executable (vera.lsp.path).
  • Documentation

    • Refreshed the extension README with clearer prerequisites, including Python 3.11+, LSP extra installation, and executable discovery order.
    • Added Marketplace and VSIX install steps, plus links to the Marketplace listing.
  • Bug Fixes

    • Updated error messages and setup guidance when the language-server components are missing or fail to start.
  • Chores

    • Automated VSIX packaging/verification and publishing via a CI workflow.

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.72%. Comparing base (7698b47) to head (f23e97a).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1102   +/-   ##
=======================================
  Coverage   93.72%   93.72%           
=======================================
  Files          96       96           
  Lines       32708    32708           
  Branches      456      456           
=======================================
  Hits        30654    30654           
  Misses       2041     2041           
  Partials       13       13           
Flag Coverage Δ
javascript 78.41% <ø> (ø)
python 95.48% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@aallan

aallan commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

Review — looks good, no blockers (draft)

Reviewed the full diff plus the packaged VSIX contents from the green Package VSIX run. Every stated goal verifies; the findings below are advisory only.

Verified

  • Identity veralang.vera-languagepublisher: veralang + name: vera-language, consistent across package.json, the README (install + Marketplace links), and CHANGELOG.md. Aligns with the PyPI veralang distribution and veralang.dev.
  • Reproducible / locked build@vscode/vsce pinned to exact 3.9.2; package-lock.json committed with all 295 added deps resolving to registry.npmjs.org, each carrying an integrity hash; CI installs with npm ci.
  • VSIX contents — confirmed from the vsce ls --tree step: the package (325 files, 473.5 KB) includes vscode-languageclient, -languageserver-protocol, -languageserver-types and vscode-jsonrpc; the @vscode/vsce / azure-devops / cheerio build tree is correctly pruned (production deps only).
  • PyPI install stringspython -m pip install "veralang[lsp]" everywhere (setting description, extension.js diagnostics, README).
  • Metadataengines.vscode: ^1.82.0 is compatible with vscode-languageclient@9 (vsce packaged clean, which validates the floor); icon images/vera-icon.png present and packaged; categories / keywords / homepage / bugs / repository all set.
  • extension.js — message-only changes; activation and error-handling logic unchanged.

CI workflow — strong security posture

permissions: {} at the top with job-scoped contents: read, persist-credentials: false, no secrets and no publish step (build + retain only), path-filtered to editors/vscode/**. It triggers on pull_request (not pull_request_target), so dependency lifecycle scripts under npm ci run without repo secrets. Trojan-source scan of the added source/config lines is clean (pure 7-bit ASCII).

Before publishing (correctly out of scope for this PR)

  • The veralang publisher must exist and be owned on the Marketplace (verified-publisher setup) before vsce publish — which stays a manual PAT step, rightly kept out of CI.
  • veralang.vera-language is permanent once published — the publisher ID can't be renamed later. It matches PyPI and the domain, so this reads as intentional; just confirming it's the forever-name.

Minor / optional

  • repository could gain "directory": "editors/vscode" so the Marketplace "Repository" link resolves to the extension subdirectory.
  • The workflow pins actions/setup-node@v7 while the rest of the repo is on @v6 — harmless (v7 is newer and Node 24-aligned), but worth aligning the other workflows up for consistency at some point.

Nothing here blocks merge — ready to un-draft once the publisher setup is in place.

@aallan
aallan marked this pull request as ready for review July 17, 2026 16:35
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 46 minutes

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 4fc61762-d0c7-4005-8bcb-0dbfa5b4f23f

📥 Commits

Reviewing files that changed from the base of the PR and between 04b0a64 and f23e97a.

📒 Files selected for processing (1)
  • .github/workflows/vscode-extension.yml
📝 Walkthrough

Walkthrough

The VS Code extension is prepared for Marketplace publication with updated metadata, LSP installation guidance, packaging scripts, and a GitHub Actions workflow that builds and uploads VSIX artefacts.

Changes

VS Code extension release

Layer / File(s) Summary
Extension packaging metadata
editors/vscode/package.json, editors/vscode/.vscodeignore, editors/vscode/CHANGELOG.md
Updates the publisher and description, adds vsce packaging scripts and development dependency, excludes generated packaging files, and records the Marketplace release.
LSP setup and failure guidance
editors/vscode/README.md, editors/vscode/extension.js
Documents Python and PyPI LSP installation, executable discovery, Marketplace or VSIX installation, and revised runtime remediation messages.
Automated VSIX workflow
.github/workflows/vscode-extension.yml
Adds checked, cached Node.js packaging on relevant changes and manual dispatch, then uploads the generated VSIX artefact for 30 days.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • aallan/vera#365: Also updates VS Code extension metadata and installation documentation.
  • aallan/vera#1027: Aligns VS Code LSP guidance with PyPI distribution and lsp extra installation.

Suggested labels: ci, docs

🚥 Pre-merge checks | ✅ 8
✅ Passed checks (8 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Changelog Covers Public-Surface Changes ✅ Passed The PR only changes VS Code extension files and its changelog; no public-surface files under vera/, spec/, or codegen/api.py were touched.
Spec And Implementation Move Together ✅ Passed No files under vera/ or spec/ changed in this PR; only VS Code extension packaging/docs were updated, so there is no spec/implementation drift to check.
Diagnostics Carry An Error Code ✅ Passed No diagnostic objects were added or changed; the touched code only updates log/toast wording and docs/workflow, so the code rule is not triggered.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main change: preparing the VS Code extension for Marketplace release.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/publish-vscode-extension

Comment @coderabbitai help to get the list of available commands.

@aallan

aallan commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

Follow-up on the two review nits:

  • I aligned the new workflow from actions/setup-node@v7 to @v6 in 04b0a64, matching the existing repository workflows. The workflow still installs Node 22 via node-version: "22", so this is a consistency change rather than a build-behaviour change. A future upgrade to v7 can update all workflows together.
  • I did not add repository.directory. It is valid npm monorepo metadata, but @vscode/vsce 3.9.2 does not use that field when generating the VSIX Marketplace repository link; the generated manifest still points to the repository root. Adding it therefore would not produce the proposed Marketplace-link behaviour, so the root repository remains the canonical link.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/vscode-extension.yml:
- Around line 3-14: Add a concurrency configuration to the VSIX workflow near
the top-level trigger settings, using a group keyed by the workflow and ref so
runs for the same ref are grouped, and configure cancellation of in-progress
runs so only the latest run remains active.
- Line 28: Update the workflow steps using actions/checkout, actions/setup-node,
and actions/upload-artifact to reference immutable commit SHAs instead of
mutable v7 tags, preserving each action’s existing version and configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: fcaa5d81-4a7f-4c5b-8613-87bdb94b480b

📥 Commits

Reviewing files that changed from the base of the PR and between 7698b47 and 43f1f3a.

⛔ Files ignored due to path filters (1)
  • editors/vscode/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (6)
  • .github/workflows/vscode-extension.yml
  • editors/vscode/.vscodeignore
  • editors/vscode/CHANGELOG.md
  • editors/vscode/README.md
  • editors/vscode/extension.js
  • editors/vscode/package.json
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • aallan/vera-bench (manual)

Comment thread .github/workflows/vscode-extension.yml
Comment thread .github/workflows/vscode-extension.yml
@aallan
aallan merged commit 350fa0a into main Jul 17, 2026
29 checks passed
@aallan
aallan deleted the agent/publish-vscode-extension branch July 17, 2026 16:56
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