You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Standard library is currently tagged independently of Deno version. This will change once the library is stabilized.
To check compatibility of different version of standard library with Deno CLI see this list.
I interpret this to mean that the intention is to version std with the same version numbers as the CLI after stabilization, being released in-step. Is that interpretation accurate? Should the original statement be modified or removed?
I'm mainly referring to #687. We should move to a single-file-per utility structure as well as making OS an optional argument. I would probably do both in the same PR.
I'll try to triage all of the issues I see remaining into a big list of what we should resolve before 1.0 and what are just bug fixes / additions that we could do whenever.
Here's the triage I promised. I will be splitting these into three categories:
breaking - need to decide pre 1.0 (as it fundamentally changes the structure of the project)
non-breaking - would be a nice addition, would not require breaking changes to behavior, nice to fix
not sure - not sure what the issue is / not sure what the impact of the changes it would entail are
If an issue isn't included, it's in the "non-breaking" category, and I had no comment to make about it (and I didn't include it to avoid unnecessarily pinging an issue). Hope this is helpful to move the standard library forward! I'll be taking a look at the APIs we provide in the near future to see if there's anything we should deprecate.
Modernize std/archive/tar #1658 - This is stuck on upstream, which is super unlucky. I'd hate to stabilize any API that relies on readers.
log: should expose global state #1826 - Looks like this is just a deeper sign that the logging we have right now is bad, we need to really think about this API imo.
Add GraphQL Server #2211 - would definitely be a "nice-to-have", though you could argue that it's out of scope. According to some good friends of mine, there aren't really any great graphQL options for Deno
Also std/flags is in my opinion not worth standardizing on when taking into account existing external libs. I would imagine a standard library should give a lot of value for 80% of uses, and when it comes to flags I feel it's half baked.
We are planning to stabilize the following 20 sub modules in std as first pass:
assert
async
bytes
csv
collections *
crypto *
encoding
fmt
front_matter *
fs
http *
json
jsonc
media_types *
path *
streams *
testing
toml
uuid
yaml
Note: * means we consider that some clean-ups are needed for stabilizing them. See issues for details. (clean-up issues for http, crypto, testing, media_types will be created soon)
We are planning to keep the below as unstable modules:
archive
console
dotenv (updated)
flags
html
log
msgpack
regexp
semver
url
wasi
Notes:
console, html, msgpack, regexp, and url are unstable because they are very new modules.
archive, dotenv (updated), flags, log, and semver are unstable because we are not sure if the design is good enough for stabilization.
wasi is unstable because we don't know if it's good idea to provide it as std module.
I think the dotenv module is useful on its own and don't think this is a strong reason for deprecating it. I've written a couple of CLI scripts in Deno that parse and/or generate content based on the dotenv format. Programmatic usage was key for this.
In almost all cases, the dev will just want to load a dotenv file into their process. Why then, would they import a dependency to load a dotenv file into their process when such functionality is built into the runtime?
It seems you may be using dotenv files for something other than it's main use case. Perhaps, something more natural like JSON might be what you're after.
It seems you may be using dotenv files for something other than it's main use case. Perhaps, something more natural like JSON might be what you're after.
I'd rather not hijack this issue, but happy to converse more in a specific issue on the proposal to deprecate dotenv.
@iuioiua Claims like that need to be quantitatively substantiated. By source bytes/LOC/API surface/exports/etc., almost all of dotenv concerns programmatic usage.
I'd rather not hijack this issue, but happy to converse more in a specific issue on the proposal to deprecate dotenv.
@andrewthauer Agree; will you please link it here when you create/discover it?
Edit: I guess @cknight took care of that while I was writing this comment.
As discussed with Yoshiya, this issue is complete. I'm closing this in favour of #3805, which continues to build upon the work done here. Thank you to every who's helped so far!
Activity
lino-levan commentedon Jul 12, 2023
We should go over every api we offer to make sure we're not accidentally stabilizing an API that really shouldn't exist.
jsejcksn commentedon Jul 14, 2023
Re: version
1.0:The readme document currently includes this:
I interpret this to mean that the intention is to version
stdwith the same version numbers as the CLI after stabilization, being released in-step. Is that interpretation accurate? Should the original statement be modified or removed?boywithkeyboard commentedon Jul 14, 2023
I agree with @jsejcksn that the std library should follow the versioning of Deno as shared by various Deno staff members before.
lino-levan commentedon Jul 31, 2023
We really need to re-write
std/pathbefore1.0. That would be a blunder to leave the way it is.kt3k commentedon Jul 31, 2023
@lino-levan
Can you create an independent issue for it with more details?
lino-levan commentedon Jul 31, 2023
I'm mainly referring to #687. We should move to a single-file-per utility structure as well as making OS an optional argument. I would probably do both in the same PR.
iuioiua commentedon Aug 8, 2023
What list of things needs to be completed for v1? Also, it might be worth pinning this issue.
lino-levan commentedon Aug 8, 2023
I'll try to triage all of the issues I see remaining into a big list of what we should resolve before 1.0 and what are just bug fixes / additions that we could do whenever.
lino-levan commentedon Aug 14, 2023
Here's the triage I promised. I will be splitting these into three categories:
If an issue isn't included, it's in the "non-breaking" category, and I had no comment to make about it (and I didn't include it to avoid unnecessarily pinging an issue). Hope this is helpful to move the standard library forward! I'll be taking a look at the APIs we provide in the near future to see if there's anything we should deprecate.
Breaking
.notin order to test opposite assertion. #816 - Probably just needs a "no we're not doing this"readableStreamFromReaderand point to better alternatives #3018 - APIs need to be deprecated / removedexamplesdirectory #3463 - I'm in favor of just dropping the entire folderstd/archive/tar#1658 - This is stuck on upstream, which is super unlucky. I'd hate to stabilize any API that relies on readers.std/archive/tar#1658normalize()remove trailing slashes? #2441 - Probably need to come up with a decision on this onestd/flagstostd/cli#3526 - Sentiment seems mixed, we could always drop thisgetLoggershould be "WARNING" #3508 - Another logging complaintunzipfunction in favor of thezipfunction #3407fs.walk()should return relative paths, not absolute paths. #3456 - Probably a breaking changeNot sure
load.tsandmod.tswhen used together withrun --watch=#2490abortableAsyncIterable()should call.return()on the generator once aborted #3518Non-Breaking
transportfromaddrs#2984 - probably stale?npm:tmp-promise@3.0.3doesn't work when use--trace-ops#2841 - pretty sure this should be transferred over to deno repoX509Certificatewithin hash module #981 - slightly out of date, probably needs some lovelookPathfunction to find the path of an executable #1056 - I'm gonna pick this one upRecorddo not work withinterface#1126 - This should just be closed imostd/http/middleware#1295 - Probably just a "no"getAvailablePort()#3279 - needs to be broken down into separate issueskt3k commentedon Aug 21, 2023
I agree with this. Current logging module doesn't look good to me. We probably don't include
std/login the first groups of stabilization.guy-borderless commentedon Aug 29, 2023
I also feel the logging module can be simplified to be less prescriptive, making it more intuitive while giving the same functionality.
guy-borderless commentedon Aug 29, 2023
Also
std/flagsis in my opinion not worth standardizing on when taking into account existing external libs. I would imagine a standard library should give a lot of value for 80% of uses, and when it comes to flags I feel it's half baked.kt3k commentedon Sep 1, 2023
We are planning to stabilize the following 20 sub modules in std as first pass:
Note:
*means we consider that some clean-ups are needed for stabilizing them. See issues for details. (clean-up issues forhttp,,crypto,testingwill be created soon)media_typesWe are planning to keep the below as unstable modules:
Notes:
console,html,msgpack,regexp, andurlare unstable because they are very new modules.archive,dotenv(updated),flags,log, andsemverare unstable because we are not sure if the design is good enough for stabilization.wasiis unstable because we don't know if it's good idea to provide it as std module.We are considering deprecating the below:
Temporalfeatures)dotenv (overlaps with--envoption of Deno CLI)andrewthauer commentedon Sep 1, 2023
I think the
dotenvmodule is useful on its own and don't think this is a strong reason for deprecating it. I've written a couple of CLI scripts in Deno that parse and/or generate content based on the dotenv format. Programmatic usage was key for this.iuioiua commentedon Sep 1, 2023
In almost all cases, the dev will just want to load a dotenv file into their process. Why then, would they import a dependency to load a dotenv file into their process when such functionality is built into the runtime?
It seems you may be using dotenv files for something other than it's main use case. Perhaps, something more natural like JSON might be what you're after.
andrewthauer commentedon Sep 1, 2023
I'd rather not hijack this issue, but happy to converse more in a specific issue on the proposal to deprecate
dotenv.cknight commentedon Sep 1, 2023
I've raised #3604 to continue the discussion on dotenv.
jsejcksn commentedon Sep 1, 2023
@iuioiua Claims like that need to be quantitatively substantiated. By source bytes/LOC/API surface/exports/etc., almost all of
dotenvconcerns programmatic usage.@andrewthauer Agree; will you please link it here when you create/discover it?
Edit: I guess @cknight took care of that while I was writing this comment.
kt3k commentedon Sep 2, 2023
@andrewthauer Thanks for the feedback. Ok, fair enough. I move
dotenvtounstablecategory for now (Updated the above my comment).Let's keep the discussion in #3604
iuioiua commentedon Nov 15, 2023
As discussed with Yoshiya, this issue is complete. I'm closing this in favour of #3805, which continues to build upon the work done here. Thank you to every who's helped so far!