Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release a stable version 1.0 #3489

Closed
16 tasks done
piscisaureus opened this issue Jul 12, 2023 · 20 comments
Closed
16 tasks done

Release a stable version 1.0 #3489

piscisaureus opened this issue Jul 12, 2023 · 20 comments
Assignees

Comments

@lino-levan
Copy link
Contributor

We should go over every api we offer to make sure we're not accidentally stabilizing an API that really shouldn't exist.

@jsejcksn
Copy link
Contributor

Re: version 1.0:

The readme document currently includes this:

Releases

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?

@boywithkeyboard
Copy link

I agree with @jsejcksn that the std library should follow the versioning of Deno as shared by various Deno staff members before.

@lino-levan
Copy link
Contributor

We really need to re-write std/path before 1.0. That would be a blunder to leave the way it is.

@kt3k
Copy link
Member

kt3k commented Jul 31, 2023

@lino-levan

We really need to re-write std/path before 1.0. That would be a blunder to leave the way it is.

Can you create an independent issue for it with more details?

@lino-levan
Copy link
Contributor

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
Copy link
Collaborator

iuioiua commented Aug 8, 2023

What list of things needs to be completed for v1? Also, it might be worth pinning this issue.

@lino-levan
Copy link
Contributor

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
Copy link
Contributor

lino-levan commented Aug 14, 2023

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.

Breaking

Not sure

Non-Breaking

@kt3k kt3k pinned this issue Aug 15, 2023
@kt3k
Copy link
Member

kt3k commented Aug 21, 2023

#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.

I agree with this. Current logging module doesn't look good to me. We probably don't include std/log in the first groups of stabilization.

@guy-borderless
Copy link

guy-borderless commented Aug 29, 2023

I agree with this. Current logging module doesn't look good to me. We probably don't include std/log in the first groups of stabilization.

I also feel the logging module can be simplified to be less prescriptive, making it more intuitive while giving the same functionality.

@guy-borderless
Copy link

guy-borderless commented Aug 29, 2023

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.

@kt3k
Copy link
Member

kt3k commented Sep 1, 2023

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.

We are considering deprecating the below:

  • datetime (overlaps with Temporal features)
  • dotenv (overlaps with --env option of Deno CLI)
  • io (We deprecate Reader/Writer related APIs)

@andrewthauer
Copy link

andrewthauer commented Sep 1, 2023

dotenv (overlaps with --env option of Deno CLI)

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.

@iuioiua
Copy link
Collaborator

iuioiua commented 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
Copy link

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.

@cknight
Copy link
Contributor

cknight commented Sep 1, 2023

I've raised #3604 to continue the discussion on dotenv.

@jsejcksn
Copy link
Contributor

jsejcksn commented Sep 1, 2023

In almost all cases...

@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.

@kt3k
Copy link
Member

kt3k commented Sep 2, 2023

@andrewthauer Thanks for the feedback. Ok, fair enough. I move dotenv to unstable category for now (Updated the above my comment).

Let's keep the discussion in #3604

@iuioiua
Copy link
Collaborator

iuioiua commented 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!

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

No branches or pull requests

9 participants