babel / babel

🐠 Babel is a compiler for writing next generation JavaScript.
https://babel.dev
MIT License
43.02k stars 5.6k forks source link

Babel 8 Release Plan #10746

Open nicolo-ribaudo opened 4 years ago

nicolo-ribaudo commented 4 years ago

We plan to release a new major version in 2024 (milestone).

This release won't have all the migration pain which there was while migrating from Babel 5 to Babel 6 and then from Babel 6 to Babel 7. We plan to only make a few breaking changes, and provide an easy migration strategy for each of them. Because of this, you won't see ~80 prereleases like we did in for Babel 7.0.0, but we plan to only release a few of them.

Babel 8.0.0 will only contain breaking changes: we will release a minor version the same day, containing all the bug fixes and new features that would otherwise be released in 8.0.0.

This document is still a work in progress, but you can already start by applying the suggested migration strategies to your own codebase.

Note for maintainers: release workflow 1. Locally checkout the `main` branch 2. Run `make new-babel-8-version`, which will: - Compute the new prerelease version, by adding 1 to the prerelease number in `package.json#version_babel8` - Update `package.json#version_babel8`, and commit it to `main` - Create a new `release/${version}` branch - Run `yarn release-tool version ${version} --all` in that branch, to update the version of every package to the new pre-release 3. Push `main`, `release/${version}` and the new `v${release}` tag to `babel/babel` Then, the `release` GH workflow will start running on the new tag and publish it to npm.

Related: https://github.com/babel/babel/issues/10752


Note for contributors

~~We implement Babel 8 breaking changes under the BABEL_8_BREAKING env flag. To test the breaking changes, please duplicate the affected tests with the -babel-7 suffix and add BABEL_8_BREAKING: false to test options. The breaking changes will be merged to the main branch but stripped before publishing. ~~

dlong500 commented 1 year ago

Yes thanks, we are a few years late with this release! 🙃

(If it takes another year we can also drop Node.js 14 👀)

I guess Node 14 support can be dropped...

ClearedFram3 commented 1 year ago

Now that 8 would be released in 2023, could dropping Flow, IE, and pre-ES2015 support be done?

birkskyum commented 10 months ago

Before this is out the gate, Node 16 will be well passed it's EOL as well https://nodejs.org/en/blog/announcements/nodejs16-eol

nicolo-ribaudo commented 10 months ago

Thanks for the reminder :)

nicolo-ribaudo commented 1 month ago

Once https://github.com/babel/babel/pull/16416, https://github.com/babel/babel/issues/16443 and https://github.com/babel/babel/issues/16456 are done I plan to release a Babel 8.0.0-beta.0 version

fisker commented 2 weeks ago

typescript-eslint made some changes to their AST, blog post, do we have a plan to align with it in v8?

MrSuddenJoy commented 2 weeks ago

Whoever may be concerned by this: will Babel 8 see the light of day anytime soon? Pinging @nicolo-ribaudo specifically as he is author of this issue.

SukkaW commented 4 hours ago

@nicolo-ribaudo

Previously, the move of replacing chalk was abandoned years ago: https://github.com/babel/babel/pull/13783

Since you had approved that PR, would you be interested in landing this in Babel 8? I could open a PR for this.