Skip to content

feat: automatic Deno version bumps#2

Open
TomChv wants to merge 1 commit into
mainfrom
feat/add-automatic-deno-version-bump
Open

feat: automatic Deno version bumps#2
TomChv wants to merge 1 commit into
mainfrom
feat/add-automatic-deno-version-bump

Conversation

@TomChv

@TomChv TomChv commented Jul 15, 2026

Copy link
Copy Markdown
Member

Keep the module's pinned default Deno version current, automatically and safely.
Implements designs/auto-version-bump.md.

What

  • .dagger/modules/maintenance — a Maintenance Dang module:
    • latestDenoVersion resolves the newest stable release from denoland/deno's
      git tags natively (git(...).tags + a semver-max helper) — no GitHub API
      auth/rate-limit dance.
    • bumpDenoVersion(ws, version) rewrites the version default in deno.dang
      and the illustrative versions in README.md, returning one Changeset to
      preview/apply. Deliberately not a @generate (a bump is network-dependent
      and non-idempotent, so it never fires on dagger generate).
  • .github/workflows/bump-deno-version.yml — weekly + workflow_dispatch
    job: apply the bump → verify with dagger check (the e2e suite runs on the
    default version, so one gate covers both "the new tag's images are published"
    and "the samples still pass") → open a single rolling PR via
    peter-evans/create-pull-request. No auto-merge; the engine pin is read from
    dagger-module.toml and installed directly via the action's version: input.

Verified

  • dagger check: 15/15 (includes the new module codegenning clean).
  • latest-deno-version2.9.3 (current latest, so a default bump is correctly a
    no-op today); bump-deno-version --version 3.0.0 rewrites deno.dang + the three
    README.md examples and leaves the unrelated 2.5.0 reference intact.
  • Both action input schemas confirmed against their action.yml; actionlint clean;
    the pinned beta CLI is installable via the action's version: (release tarball
    present on dl.dagger.io).

Ops

  • Requires a DAGGER_CLOUD_TOKEN repo secret (Dagger Cloud traces).
  • Workflow permissions: id-token: write so Dagger Cloud can authenticate via
    a GitHub OIDC token, plus contents: write and pull-requests: write so
    create-pull-request can push the bump branch and open the PR. (A permissions
    block defaults everything unlisted to none, so all three are declared explicitly —
    contents must stay write, not read, or the PR step can't push.)
  • The scheduled job's full end-to-end run (dagger-for-github + create-pull-request
    inside a runner) is only truly exercisable once merged / manually dispatched.

@TomChv
TomChv force-pushed the feat/add-deno-module branch 4 times, most recently from 86d4927 to a1270b3 Compare July 16, 2026 15:35
@TomChv
TomChv force-pushed the feat/add-automatic-deno-version-bump branch from 2cd575e to 864c16d Compare July 16, 2026 17:47
@TomChv
TomChv changed the base branch from feat/add-deno-module to main July 16, 2026 17:47
@TomChv
TomChv force-pushed the feat/add-automatic-deno-version-bump branch from 864c16d to 48ea566 Compare July 17, 2026 15:24
@TomChv
TomChv marked this pull request as ready for review July 17, 2026 15:24
@TomChv TomChv changed the title docs: propose automatic Deno version bumps feat: automatic Deno version bumps Jul 17, 2026
Keep the module's pinned default Deno version current without manual toil:
a Dagger-native bump function plus a scheduled workflow that verifies the
result and opens a rolling PR. Implements designs/auto-version-bump.md.

- .dagger/modules/maintenance: a Maintenance module.
  - latestDenoVersion resolves the newest stable release from denoland/deno's
    git tags natively (git(...).tags + a small semver-max helper), so there is
    no GitHub API auth/rate-limit dance.
  - bumpDenoVersion(ws, version) rewrites the `version` default in deno.dang
    (regex-anchored on the literal) and the illustrative versions in README.md,
    returning one Changeset to preview/apply. It is deliberately NOT a
    @generate: a bump is network-dependent and non-idempotent, so it stays an
    explicitly-invoked function rather than firing on every `dagger generate`.
- .github/workflows/bump-deno-version.yml: weekly (and manually dispatchable)
  job that applies the bump, verifies with `dagger check` (the e2e suite runs
  on the default version, so one gate covers both "images published" and "still
  works"), and opens a single rolling PR via peter-evans/create-pull-request.
  No auto-merge; the engine pin is read from dagger-module.toml and installed
  directly via the action's `version:` input. Permissions: id-token (Dagger
  Cloud OIDC) + contents/pull-requests write (create-pull-request).
- Register the maintenance module in dagger.toml.

Signed-off-by: Tom Chauveau <tom@dagger.io>
@TomChv
TomChv force-pushed the feat/add-automatic-deno-version-bump branch from 48ea566 to 0e125f8 Compare July 17, 2026 15:39
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