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

2017-06-07 Meeting Notes #21

Merged
merged 8 commits into from
Jun 7, 2017
Merged

2017-06-07 Meeting Notes #21

merged 8 commits into from
Jun 7, 2017

Conversation

nathanhammond
Copy link
Contributor

No description provided.

@nathanhammond nathanhammond changed the title Add 2017-06-07 Meeting Agenda 2017-06-07 Meeting Notes Jun 7, 2017
@hzoo
Copy link
Member

hzoo commented Jun 7, 2017

Didn't talk about this (brought it up the last last meeting in the roadmap), I do want to mention @rauschma https://twitter.com/rauschma/status/870730837620404224 again - not really something Babel does but thinking about our recommendation/thoughts on publishing non-ES5 (and beyond) and how we should do it as an ecosystem since it gets brought up a lot and only more so as browsers/node supports ES6.

@rauschma
Copy link

rauschma commented Jun 7, 2017

  • We need better support for the majority’s choice, “Let me see the results!”. ;-)
  • Nice property of requiring untranspiled code to be compatible with preset-env (=stage 4 or older): old code remains compatible/usable forever.
  • Unclear: how is updating source code (e.g. whenever preset-env supports a new feature) best handled? Concern: may break existing code that depends on a given package.


### Other Topics

- [#proposal-opt-chaining](https://babeljs.slack.com/messages/proposal-opt-chaining) on Slack! (a?.b?.c)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we define a team for this?

@hzoo hzoo merged commit 7143b0a into master Jun 7, 2017
- Rob: let's begin thinking through cross-process caching.
- Logan has been doing a lot of caching work (for configs but wanted to apply it to files)
- @rauschma: How should library authors publish untranspiled code?
- This is brought up a lot more recently since more environments support ES6. Babel itself may not need to change but we can help provide a recommendation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Babel does need to change to truly solve this.

First, I think a project needs to be able to declare two things: a list of target environments, and a list of the syntax they want to use (like ES2015 + object spread, or ES latest + class properties, or whatever). Then, both babel (babel-preset-env) and babel-eslint would need to read those, and error out on anything that isn't being transpiled to something safe for all the target envs; and then transpile everything down to those target envs.

Once this exists, then a separate thing would need to exist in package.json, but that'd be out of scope of Babel.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

relevant babel-eslint issue: babel/babel-eslint#434

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Babel does need to change to truly solve this.

Honestly I don't think Babel needs to do anything. I think library authors should just use env based on Node's LTS schedule and ship the output.

Does babel-preset-env have just an LTS setting?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's both hostile to users that can't upgrade that fast; and unrealistic considering that people ship code to browsers, and won't have an easy way of knowing which preset was used for each of the deps in their graph.

Regardless, babel-eslint still needs to change, because currently it allows "everything" and it needs to be warning on things that aren't transpiled and won't be supported by target envs.

Copy link

@jamiebuilds jamiebuilds Jun 8, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's both hostile to users that can't upgrade that fast

It's not really though, LTS schedule is quite long and you shouldn't be updating your dependencies over the node version if you fall out of the LTS schedule. It's not hostile, it's going above and beyond.

and unrealistic considering that people ship code to browsers

This has not appeared to be a problem so far, I don't see why it would start now.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not been a problem because the common best practice is to ship ES5 CJS. Libraries that ship more than that either forces people to transpile node_modules (which drastically increases the risk of breakage and the fractal of varying babel settings); or, to drop support for older browsers (usually unintentionally, which then is hostile to the users of those browsers); or, to just not use that dependency.

In a deep dependency graph like you often get with npm, it's very critical that the leaves, in particular, are maximally compatible - and all it takes is one bad dep to knowingly or unknowingly break a site on various browsers.

@ljharb ljharb deleted the 2017-06-07 branch June 7, 2017 21:01
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

Successfully merging this pull request may close these issues.

8 participants