Skip to content
This repository has been archived by the owner on Sep 2, 2023. It is now read-only.

unflagging in 12.x LTS #450

Closed
targos opened this issue Dec 2, 2019 · 20 comments
Closed

unflagging in 12.x LTS #450

targos opened this issue Dec 2, 2019 · 20 comments

Comments

@targos
Copy link
Member

targos commented Dec 2, 2019

I'm opening this as one of the releasers working on the 12.x branch.
Unflagging ESM, along with other changes that landed only in 13.x, is a semver-minor change. According to the current plan for the 12.x active LTS release line, the next possible windows to unflag ESM will be 2020-01-21, 2020-04-21 and 2020-07-21.

Is it reasonable to aim for January? Is it a requirement to make ESM completely stable before we unflag it in LTS?
ESM-related PRs are piling up and will be causing more and more conflicts in the 12.x branch until we backport them.

@GeoffreyBooth
Copy link
Member

I think we wanted to settle the dual packages question before backporting, which currently means conditional exports get unflagged if no other solution gains consensus before the end of January. Maybe we should amend that slightly to be mid-January, in time for the 2020-01-21 deadline? Or if there are no other contenders in development, should we perhaps just unflag it now? @weswigham @MylesBorins

@targos
Copy link
Member Author

targos commented Dec 2, 2019

We could make an exception, but per LTS rules, anything that goes into LTS on 2020-01-21 should have landed on 13.x on 2020-01-07.

@MylesBorins
Copy link
Contributor

MylesBorins commented Dec 2, 2019 via email

@GeoffreyBooth
Copy link
Member

April is a long way off. Why not target unflagging in January?

@MylesBorins
Copy link
Contributor

MylesBorins commented Dec 2, 2019 via email

@guybedford
Copy link
Contributor

I don't think we should slow down anymore than we need to though at the same time.

As users start to ship "exports", the implications of the backport may become more breaking in that users might expect "exports" to mean Node.js 13+ and adapt their build process accordingly.

@MylesBorins
Copy link
Contributor

I honestly can't see how things will be stable enough in January to unflag. We can definitely keep the implementations up to date though

@guybedford
Copy link
Contributor

Yes unfortunately the timings don't work out too well here. Feb would have been ideal :) But we absolutely must not let April slip like we did the last target.

@guybedford
Copy link
Contributor

I am seriously concerned about breakage though - packages shipping "exports" may change their behaviour on the upgrade path.

@guybedford
Copy link
Contributor

guybedford commented Dec 3, 2019

One alternative would be to backport the "exports" implementation only for CommonJS, provided we can stabilize "exports" in particular by Jan 7 (sorry for flood, thinking out loud here).

We're in a compatibility zone right now because users haven't shipped "exports" yet. As usage picks up next year I do have concerns that we lose this window entirely to backport.

@GeoffreyBooth
Copy link
Member

@targos Two questions:

  • Is there any possibility of a release between January and April? Like another LTS release in February?
  • Are we sure that we can backport everything that’s landed in 13 related to ESM, including the unflagging?

cc @weswigham

@MylesBorins
Copy link
Contributor

MylesBorins commented Dec 4, 2019 via email

@jkrems
Copy link
Contributor

jkrems commented Dec 4, 2019

Also, I believe that there were technical concerns about require-esm from both myself and @guybedford (maybe others?). I think we should make sure to spell them out very explicitly so that we don't risk that Wes investing a bunch of work only to then hear about concerns we could be voicing right now. @weswigham Would you prefer an issue for tracking them or what would be a good channel?

@targos
Copy link
Member Author

targos commented Dec 4, 2019

  • There will be releases in February and March, but they won't be semver-minor. The unflagging must happen in a semver-minor release. Other changes can land in between.
  • We can backport anything that was not semver-major.

@MylesBorins
Copy link
Contributor

@guybedford and I sat with @jasnell at the collab summit and talked through backports. Current plan was

  • Backport everything to 12.x in Semver Minor in January
    • this requires backporting V8 7.8
  • Keep release lines up to date in Feb / March release
  • Aim to remove flag on 12.x in April Semver Minor

Thoughts?

@ljharb
Copy link
Member

ljharb commented Dec 16, 2019

Would that backport theoretically include unflagging conditional exports in 13 / moving conditional exports under the overarching experimental modules flag in 12?

@MylesBorins
Copy link
Contributor

MylesBorins commented Dec 16, 2019 via email

@targos
Copy link
Member Author

targos commented Dec 16, 2019

V8 backport is ready to land as soon as the next patch release is done

@aduh95
Copy link

aduh95 commented May 7, 2020

Landed on v12.x-staging

Originally posted by @targos in nodejs/node#33055 (comment)

I think we can close this now.

@targos
Copy link
Member Author

targos commented May 7, 2020

Yep. Thanks

@targos targos closed this as completed May 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants