Skip to main content

The stabilization process of the Standard Library has begun

We are excited to announce a significant milestone for the Deno Standard Library: The packages of the Deno Standard Library are going to be stabilized to version 1.0 shortly. This means that any code working with a stabilized v1 version will continue to work, adhering to semantic versioning. Users can import these packages using the @1 version selector (for example: jsr:@std/bytes@1) to automatically receive bug fixes as they are released. The process aims to be completed in July.

Stabilization process

As we described in the previous post, the Deno Standard Library is now a collection of 38 packages.

We’re going to stabilize on a package-by-package basis, instead of stabilizing the entire Standard Library at once. We chose this strategy to minimize the risk of errors and oversights and maximize the opportunity for the community to give another look at the design of each package at the last moment.

To be more specific, each package goes through the following process:

  • The documentation coverage of the package reaches 100%
  • The test coverage of the package reaches a reasonably high number (usually 100%, but there are some exceptions)
  • Publish 1.0.0-rc.1 (Release Candidate) when the main maintainers agree on the design.
  • Wait one month for feedback from the community.
  • The maintainers handle and address feedback from the community.
  • Publish 1.0.0 if there are no issues remaining after the waiting period.
    • If there is an unresolved issue, the waiting period is extended and the process repeated.

Stabilization schedule

Now one package is already stabilized, and there are nine packages in RC (Release Candidate) versions. The table below describes the current status and future plan for each package.

Package Stabilized Stabilization Date RC Planned Date Stabilization Planned Date
bytes 2024-06-06
collections 2024-06-20
media-types 2024-06-21
crypto 2024-06-30
encoding 2024-06-30
uuid 2024-06-30
assert 2024-07-03
path 2024-07-04
html 2024-07-05
toml 2024-07-06
url 2024-07-07
data-structures 2024-06-10 2024-07-10
ulid 2024-06-11 2024-07-11
regexp 2024-06-12 2024-07-12
text 2024-06-13 2024-07-13
msgpack 2024-06-14 2024-07-14
async 2024-06-17 2024-07-17
cli 2024-06-18 2024-07-18
io 2024-06-19 2024-07-19
streams 2024-06-20 2024-07-20
fmt 2024-06-21 2024-07-21
net 2024-06-24 2024-07-24
http 2024-06-25 2024-07-25
fs 2024-06-26 2024-07-26
json 2024-06-27 2024-07-27
testing 2024-06-28 2024-07-28
jsonc 2024-07-01 2024-07-22
csv 2024-07-02 2024-07-23
semver 2024-07-03 2024-07-24
expect 2024-07-04 2024-07-25
yaml 2024-07-05 2024-07-26
front-matter 2024-07-08 2024-07-29
ini 2024-07-09 2024-07-30
dotenv 2024-07-10 2024-07-31

(Note: The waiting period will become three weeks after July to shorten the schedule.)

Excluded packages

We decided to exclude the following four packages from this iteration of stabilization:

Package Note
datetime This package will be re-designed after Temporal is shipped.
webgpu This package is excluded because WebGPU is not yet stable.
archive This package is excluded because it’s in the process of a re-design.
log The design of this package is not ready yet.

Give us feedback

We look forward to your feedback on the RC versions of the packages. If you currently use the Standard Library, please try the RC versions and tell us what you think!