Skip to content

docs: document release channels and revive LTS on 2.9 line#3418

Open
bartlomieju wants to merge 1 commit into
mainfrom
docs/revive-lts-channel
Open

docs: document release channels and revive LTS on 2.9 line#3418
bartlomieju wants to merge 1 commit into
mainfrom
docs/revive-lts-channel

Conversation

@bartlomieju

Copy link
Copy Markdown
Member

Users get confused about what release "channel" they are on, why the same
version number can behave differently, and what each deno upgrade variant
does. This adds a channel mental model to the stability page and reflects that
the LTS channel is back on the Deno 2.9 line, starting with v2.9.3.

The stability page now describes all four channels (stable, lts, rc, canary,
plus alpha/beta during a major prerelease cycle) as independent tracks, explains
that a binary belongs to exactly one channel baked in at build time, and spells
out the idea that the same version number can be two byte-different builds: a
bare version number always resolves to the stable build, while the LTS build of
the same version is selected by channel. A table maps each deno upgrade
variant to the channel and build it lands on. The deno upgrade reference page
gains a matching Channels section with examples, including deno upgrade lts
and the consequence that running deno upgrade 2.9.3 on LTS silently moves you
back to stable.

Both pages also note a real limitation confirmed against the source: there is no
deno upgrade form that pins a specific LTS patch version. A channel name always
installs that channel's latest build, and a version number only ever infers a
stable, rc, alpha, or beta channel, never lts. So deno upgrade lts 2.9.3
silently ignores the version and installs the latest LTS.

All upgrade behavior above is verified against the Deno source
(cli/tools/upgrade.rs, cli/lib/shared.rs, cli/lib/version.rs): channel
resolution in RequestedVersion::from_upgrade_flags, the per-channel download
sources (stable from GitHub releases, everything else from dl.deno.land), and
the LTS update-notice wording.

One thing needs maintainer confirmation before merge: the exact 2.9 LTS
maintenance window and end-of-life date. I did not invent these. The historical
LTS table (v2.1, v2.2, v2.5) is kept as-is, and the new v2.9 row shows TBD for
the start and end dates. Please fill these in, or tell me the dates and I will.

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