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!