deno.json is the single source of truth for the version number. The src/version.ts module
imports it via a JSON import, so there is nothing to keep in sync manually.
deno.json --(JSON import)--> src/version.ts --> CLI --version output
-
Set the version in
deno.json:deno task version 0.23.0
This updates only
deno.json. No git operations are performed. -
Create the git tag (commits
deno.jsonif changed, createsv0.23.0tag):deno task tag
-
Push the tag to trigger the release workflow:
deno task release
This pushes commits and the tag to
origin. TheBuild and ReleaseGitHub Action runs automatically on tag push.
You can also trigger a release from the GitHub Actions UI:
- Go to Actions > Build and Release > Run workflow
- Enter the version number (e.g.,
0.23.0) - The workflow runs
sync-version.tsto updatedeno.jsonbefore building
For tag-triggered releases, deno.json already has the correct version from the tagging step, so
the sync is skipped.
| Task | Purpose |
|---|---|
deno task version <ver> |
Updates deno.json version field. No git operations. |
deno task tag |
Reads version from deno.json, commits if needed, creates git tag. |
deno task release |
Reads version from deno.json, pushes commits and tag to origin. |