This file defines contributor expectations for building, testing, regression safety, website maintenance, and releases.
extension/contains the VS Code extension, unit tests, integration tests, and VSIX packaging.website/contains the static GitHub Pages website..github/scripts/contains changelog and publishing automation..github/workflows/contains CI, Pages, and release workflows.
Run these commands before opening or updating a pull request:
- Install:
make install - Build:
make build - Type checking and unit tests:
make test - VS Code integration tests:
make integration-test - VSIX packaging and archive smoke test:
make package - Website build:
make website-build - Website content checks:
make website-test
Every feature must include automated coverage. Every bug fix must include a regression test reproducing the prior failure. Keep builds warning-free and test the smallest relevant surface while developing, then run the full suite before handoff.
CHANGELOG.mdmust keep a top## [Unreleased]section.- Every regular commit targeting
mainmust add at least one short, single-line, user-facing bullet underUnreleased. - Documentation, process, policy, dependency, and CI changes are not exempt.
- Release commits named
chore(release): X.Y.Zmay leaveUnreleasedempty. - Every released version section ends with a full-changelog link.
- Run
make verify-changelogbefore committing.
Follow this sequence for every release:
- Run
make release-prepare version=X.Y.Z(or adddryrun=trueto preview). - Push the release commit and tag together with
git push origin main --follow-tags. - Wait for the numeric-tag workflow to build, test, package, and create a draft GitHub release.
- Confirm the draft notes came from
CHANGELOG.mdand that the VSIX is attached. - Publish that existing draft. Do not create a separate release manually.
- The release-published workflow sends the attached VSIX to the VS Code Marketplace and Open VSX.
The repository secrets are VSCE_TOKEN and OPEN_VSX_TOKEN. Tag CI is the source of truth for artifacts; do not publish a locally built VSIX as a release artifact.
- Extension build and type checking pass.
- Unit and VS Code integration tests pass.
- The packaged VSIX passes its archive smoke test.
- Website changes build successfully and remain responsive and accessible.
- New or fixed behavior is covered by tests.
CHANGELOG.mdcontains a conciseUnreleasedbullet.- Documentation reflects any user-visible or architectural change.
Direct commits to main have the same quality bar as pull requests.