Skip to content

Commit 8137fd7

Browse files
authored
Merge branch 'main' into agent/add-html-parsing-guide
2 parents 718a4cc + ab203a5 commit 8137fd7

2 files changed

Lines changed: 108 additions & 29 deletions

File tree

runtime/fundamentals/stability_and_releases.md

Lines changed: 69 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
last_modified: 2026-07-06
2+
last_modified: 2026-07-16
33
title: "Stability and releases"
44
description: "Guide to Deno's stability guarantees and release process. Covering release channels, long-term support (LTS), unstable features, versioning policy, and how Deno maintains backward compatibility."
55
oldUrl:
@@ -21,46 +21,87 @@ released.
2121

2222
### Release channels
2323

24-
Deno offers 3 release channels
24+
Deno is distributed on four release channels. Each channel is an independent
25+
track with its own "latest" version and its own download location, so moving
26+
along one track never moves you along another:
2527

26-
- `stable` - a semver minor/patch release, as described above. This is **the
27-
default** distribution channel that is recommended for most users.
28+
- `stable` - semver minor/patch releases, as described above. This is **the
29+
default** channel and is recommended for most users. Stable builds are
30+
downloaded from [GitHub releases](https://github.com/denoland/deno/releases).
31+
- `lts` - long term support: a single stable minor line that receives only
32+
backwards-compatible bug fixes, recommended for enterprise users who prefer
33+
not to upgrade so often. See [Long Term Support](#long-term-support-(lts)).
2834
- `rc` - a release candidate for the upcoming semver minor release.
29-
- `canary` - an unstable release that changes multiple times per day, allows to
30-
try out latest bug fixes and new features that might end up in the `stable`
31-
channel.
32-
33-
An `lts` (long term support) channel was previously offered, but it has been
34-
discontinued. See below for details.
35-
36-
### Long Term Support (LTS) - discontinued
37-
38-
:::warning
39-
40-
LTS support was discontinued on April 30, 2026. There are no LTS releases or
41-
maintenance beyond that date. If you are still using an LTS release, upgrade to
42-
the latest `stable` release.
43-
44-
:::
45-
46-
From February 2025 to April 2026, Deno offered an LTS (long-term support)
47-
channel: a minor semver version maintained with only backwards-compatible bug
48-
fixes. The final LTS release was v2.5, which reached end of life on April 30,
49-
2026.
35+
- `canary` - an unstable build that changes multiple times per day, so you can
36+
try the latest bug fixes and features before they reach `stable`.
37+
38+
During a major-version prerelease cycle (such as 3.0), Deno also publishes
39+
`alpha` and `beta` channels. Every channel except `stable` is served from Deno's
40+
download server at `dl.deno.land`.
41+
42+
### Choosing a channel
43+
44+
Your installed Deno belongs to exactly one channel, and that channel is baked
45+
into the binary when it is built. `deno upgrade` reads your current binary's
46+
channel to decide what "latest" means, and the update notice you occasionally
47+
see is based on the same thing. An LTS binary, for example, prints
48+
`A new LTS release of Deno is available` and tells you to run
49+
`deno upgrade lts`.
50+
51+
A version number does not, by itself, identify a channel. The same version can
52+
ship as two byte-different builds: `2.9.3`, for instance, exists both as a
53+
stable release and as an LTS release. They are built from the same source and
54+
carry the same version string, and differ only in an embedded channel marker and
55+
where they are downloaded from. There is no way to ask for "the LTS build of
56+
2.9.3" by version number, because the version string is identical for both. You
57+
select a build by channel, not by version, and a bare version number always
58+
resolves to the **stable** build.
59+
60+
| Command | Resolves to | Resulting build |
61+
| ------------------------- | --------------------------------------- | --------------- |
62+
| `deno upgrade` | latest **stable** release | stable |
63+
| `deno upgrade 2.9.3` | version 2.9.3 on the **stable** channel | stable |
64+
| `deno upgrade lts` | latest **lts** release | lts |
65+
| `deno upgrade rc` | latest **rc** release | rc |
66+
| `deno upgrade canary` | latest canary build | canary |
67+
| `deno upgrade <git-hash>` | that specific canary build | canary |
68+
69+
To switch channels on purpose, pass the channel name, for example
70+
`deno upgrade lts` or `deno upgrade stable`. Because a plain version number
71+
always selects the stable build, a user on LTS who runs `deno upgrade 2.9.3`
72+
downloads the stable build and moves off the `lts` channel onto `stable`. To
73+
stay on LTS, upgrade with `deno upgrade lts`.
74+
75+
A channel name always resolves to that channel's newest build, so
76+
`deno upgrade lts` installs the latest LTS release and there is no
77+
`deno upgrade` form that pins an older LTS patch version. A version number only
78+
ever selects a stable (or `rc`, `alpha`, `beta`) build, never an LTS one. See
79+
[`deno upgrade`](/runtime/reference/cli/upgrade/) for more.
80+
81+
### Long Term Support (LTS)
82+
83+
Deno offers an LTS (long-term support) channel: a single stable minor line that
84+
we maintain with only backwards-compatible bug fixes. It is aimed at enterprise
85+
users who prefer to stay on one release line without absorbing new features or
86+
breaking changes. Install or update it with `deno upgrade lts`.
87+
88+
The LTS channel is active on the Deno 2.9 line, starting with **v2.9.3**, and is
89+
maintained until January 31st, 2027.
5090

5191
| LTS release version | LTS maintenance start | LTS maintenance end |
5292
| ------------------- | --------------------- | ------------------- |
5393
| v2.1 | Feb 1st, 2025 | Apr 30th, 2025 |
5494
| v2.2 | May 1st, 2025 | Oct 31st, 2025 |
5595
| v2.5 | Nov 1st, 2025 | Apr 30th, 2026 |
96+
| v2.9 | Jul 1st, 2026 | Jan 31st, 2027 |
5697

57-
LTS backports included:
98+
LTS backports include:
5899

59100
- Security patches
60101
- Critical bug fixes (e.g., crashes, incorrect computations)
61-
- **Critical** performance improvements, backported based on severity
102+
- **Critical** performance improvements _may_ be backported based on severity.
62103

63-
API changes and major new features were not backported.
104+
**API changes and major new features will not be backported.**
64105

65106
## Unstable APIs
66107

runtime/reference/cli/upgrade.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
last_modified: 2026-05-20
2+
last_modified: 2026-07-15
33
title: "deno upgrade"
44
oldUrl: /runtime/manual/tools/upgrade/
55
command: upgrade
@@ -51,6 +51,44 @@ Version has been found
5151
Would upgrade to version 1.38.5
5252
```
5353

54+
## Channels
55+
56+
`deno upgrade` works one channel at a time. With no argument it upgrades to the
57+
latest **stable** release. Pass a channel name to move to that channel's latest
58+
build instead:
59+
60+
```sh
61+
# Latest stable release (the default)
62+
deno upgrade
63+
64+
# Latest long term support (LTS) release
65+
deno upgrade lts
66+
67+
# Latest release candidate
68+
deno upgrade rc
69+
70+
# Latest canary build
71+
deno upgrade canary
72+
```
73+
74+
A bare version number is always a **stable** coordinate. `deno upgrade 2.9.3`
75+
installs the stable build of 2.9.3, even when the same version number also ships
76+
on another channel:
77+
78+
```sh
79+
deno upgrade 2.9.3
80+
```
81+
82+
Because of this, if you are on the LTS channel and run `deno upgrade 2.9.3`, you
83+
download the stable build and move off LTS onto stable. To stay on LTS, upgrade
84+
with `deno upgrade lts`.
85+
86+
Note that `deno upgrade lts` always installs the latest LTS release. There is no
87+
version-number form that selects a specific LTS build, since a version number
88+
always resolves to the stable channel. For the full mental model of channels and
89+
how the same version number can be two different builds, see
90+
[Stability and releases](/runtime/fundamentals/stability_and_releases/#choosing-a-channel).
91+
5492
## --quiet flag
5593

5694
The `--quiet` flag suppresses diagnostic output during the upgrade process. When

0 commit comments

Comments
 (0)