Releasing
Releases are automated via GitHub Actions. Each component has its own independent release process with a dedicated tag pattern.
Components
| Component | Tag pattern | Bump script | Destination |
|---|---|---|---|
| Infr (compiler + crate) | infr-v* | ./scripts/bump-infr-version.sh | GitHub Releases, crates.io |
| VS Code extension | vscode-v* | ./scripts/bump-vscode-version.sh | VS Code Marketplace |
| Documentation | docs-v* | ./scripts/bump-docs-version.sh | infrlang.org |
Each component is versioned independently — you can release the extension or docs without releasing a new compiler version.
Releasing Infr (compiler + crate)
-
Bump the version:
./scripts/bump-infr-version.sh 0.3.0This updates
Cargo.tomlandCargo.lock. -
Commit and tag:
git add -A && git commit -m "Bump infr version to 0.3.0"
git tag infr-v0.3.0 -
Push:
git push origin main --tags
This builds binaries for all platforms, publishes to crates.io, and creates a GitHub Release.
Releasing the VS Code extension
-
Bump the version:
./scripts/bump-vscode-version.sh 0.3.0This updates
editors/vscode/package.json. -
Commit and tag:
git add -A && git commit -m "Bump VS Code extension version to 0.3.0"
git tag vscode-v0.3.0 -
Push:
git push origin main --tags
This publishes the extension to the VS Code Marketplace.
Releasing the documentation
-
Bump the version:
./scripts/bump-docs-version.sh 0.3.0This updates
docs/package.json. -
Commit and tag:
git add -A && git commit -m "Bump docs version to 0.3.0"
git tag docs-v0.3.0 -
Push:
git push origin main --tags
This builds and deploys the documentation to Cloudflare Pages.
Required secrets
The following GitHub Actions secrets must be configured in the repository:
| Secret | Purpose |
|---|---|
CARGO_REGISTRY_TOKEN | Publishing to crates.io |
VSCE_PAT | Publishing to VS Code Marketplace |
CLOUDFLARE_API_TOKEN | Deploying docs to Cloudflare Pages |
CLOUDFLARE_ACCOUNT_ID | Cloudflare account identifier |
Re-running failed jobs
Each release workflow's jobs run independently of each other. If one fails, you can re-run just that job from the GitHub Actions UI without re-triggering the entire workflow.