profile
viewpoint

fkling/astexplorer 2891

A web tool to explore the ASTs generated by various parsers.

amilajack/eslint-plugin-compat 2385

Lint the browser compatibility of your code

babel/babel-standalone 778

:video_game: Now located in the Babel repo! Standalone build of Babel for use in non-Node.js environments, including browsers.

hzoo/awesome-gametalks 723

:speech_balloon: A curated list of gaming talks (development, design, etc)

babel/kneden 521

Transpile ES2017 async/await to vanilla ES6 Promise chains: a Babel plugin

ariporad/pirates 169

Properly hijack require

hzoo/awesome-oss 77

 ✏️ A curated list to help writing/maintaining open source libraries

babel/generator-babel-plugin 67

Babel Plugin generator for Yeoman

hzoo/babel-plugin-dedupe-string-literals 11

Dedupe strings with new variable declarations.

danez/github-repo-issue-mover 2

Move all issues from one repository to another.

Pull request review commentbabel/babel

Add experimental version of the `babel-plugin-transform-react-jsx` transform

+import esutils from "esutils";+import jsx from "@babel/plugin-syntax-jsx";+import {+  isModule,+  addNamespace,+  addNamed,+  addDefault,+} from "@babel/helper-module-imports";++// These are all the valid auto import types (under the config autoImport)+// that a user can specify+const IMPORT_TYPES = {+  none: "none", // default option. Will not import anything+  require: "require", // var _react = require("react");+  namespace: "namespace", // import * as _react from "react";+  defaultExport: "defaultExport", // import _default from "react";+  namedExports: "namedExports", // import { jsx } from "react";+};++const JSX_AUTO_IMPORT_ANNOTATION_REGEX = /\*?\s*@jsxAutoImport\s+([^\s]+)/;+const JSX_IMPORT_SOURCE_ANNOTATION_REGEX = /\*?\s*@jsxImportSource\s+([^\s]+)/;++// We want to use React.createElement, even in the case of+// jsx, for <div {...props} key={key} /> to distinguish it+// from <div key={key} {...props} />. This is an intermediary+// step while we deprecate key spread from props. Afterwards,+// we will stop using createElement in the transform.+function shouldUseCreateElement(path, types) {+  const openingPath = path.get("openingElement");+  const attributes = openingPath.node.attributes;++  let seenPropsSpread = false;+  for (let i = 0; i < attributes.length; i++) {+    const attr = attributes[i];+    if (+      seenPropsSpread &&+      types.isJSXAttribute(attr) &&+      attr.name.name === "key"+    ) {+      return true;+    } else if (types.isJSXSpreadAttribute(attr)) {+      seenPropsSpread = true;+    }+  }+  return false;+}++function helper(babel, opts) {+  const { types: t } = babel;++  const visitor = {};++  visitor.JSXNamespacedName = function(path, state) {+    const throwIfNamespace =+      state.opts.throwIfNamespace === undefined+        ? true+        : !!state.opts.throwIfNamespace;+    if (throwIfNamespace) {+      throw path.buildCodeFrameError(+        `Namespace tags are not supported by default. React's JSX doesn't support namespace tags. \+You can turn on the 'throwIfNamespace' flag to bypass this warning.`,+      );+    }+  };++  visitor.JSXSpreadChild = function(path) {+    throw path.buildCodeFrameError(+      "Spread children are not supported in React.",+    );+  };++  visitor.JSXElement = {+    exit(path, file) {+      let callExpr;+      if (shouldUseCreateElement(path, t)) {+        callExpr = buildCreateElementCall(path, file);+      } else {+        callExpr = buildJSXElementCall(path, file);+      }++      if (callExpr) {+        path.replaceWith(t.inherits(callExpr, path.node));+      }+    },+  };++  visitor.JSXFragment = {+    exit(path, file) {+      const callExpr = buildJSXFragmentCall(path, file);++      if (callExpr) {+        path.replaceWith(t.inherits(callExpr, path.node));+      }+    },+  };++  return visitor;++  function convertJSXIdentifier(node, parent) {+    if (t.isJSXIdentifier(node)) {+      if (node.name === "this" && t.isReferenced(node, parent)) {+        return t.thisExpression();+      } else if (esutils.keyword.isIdentifierNameES6(node.name)) {+        node.type = "Identifier";+      } else {+        return t.stringLiteral(node.name);+      }+    } else if (t.isJSXMemberExpression(node)) {+      return t.memberExpression(+        convertJSXIdentifier(node.object, node),+        convertJSXIdentifier(node.property, node),+      );+    } else if (t.isJSXNamespacedName(node)) {+      /**+       * If the flag "throwIfNamespace" is false+       * print XMLNamespace like string literal+       */+      return t.stringLiteral(`${node.namespace.name}:${node.name.name}`);+    }++    return node;+  }++  function convertAttributeValue(node) {+    if (t.isJSXExpressionContainer(node)) {+      return node.expression;+    } else {+      return node;+    }+  }++  function convertAttribute(node, duplicateChildren) {+    let value = convertAttributeValue(node.value || t.booleanLiteral(true));++    if (t.isJSXSpreadAttribute(node)) {+      return t.spreadElement(node.argument);+    }++    if (t.isStringLiteral(value) && !t.isJSXExpressionContainer(node.value)) {+      value.value = value.value.replace(/\n\s+/g, " ");++      // "raw" JSXText should not be used from a StringLiteral because it needs to be escaped.+      if (value.extra && value.extra.raw) {+        delete value.extra.raw;+      }+    }+    if (duplicateChildren && duplicateChildren.length > 0) {+      value = t.sequenceExpression([...duplicateChildren, value]);+    }++    if (t.isJSXNamespacedName(node.name)) {+      node.name = t.stringLiteral(+        node.name.namespace.name + ":" + node.name.name.name,+      );+    } else if (esutils.keyword.isIdentifierNameES6(node.name.name)) {+      node.name.type = "Identifier";+    } else {+      node.name = t.stringLiteral(node.name.name);+    }++    return t.inherits(t.objectProperty(node.name, value), node);+  }++  // Builds JSX into:+  // Production: React.jsx(type, arguments, key)+  // Development: React.jsxDEV(type, arguments, key, isStaticChildren, source, self)+  function buildJSXElementCall(path, file) {+    if (opts.filter && !opts.filter(path.node, file)) {+      return;+    }++    const openingPath = path.get("openingElement");+    openingPath.parent.children = t.react.buildChildren(openingPath.parent);++    const tagExpr = convertJSXIdentifier(+      openingPath.node.name,+      openingPath.node,+    );+    const args = [];++    let tagName;+    if (t.isIdentifier(tagExpr)) {+      tagName = tagExpr.name;+    } else if (t.isLiteral(tagExpr)) {+      tagName = tagExpr.value;+    }++    const state = {+      tagExpr: tagExpr,+      tagName: tagName,+      args: args,+    };++    if (opts.pre) {+      opts.pre(state, file);+    }++    let attribs = [];+    let key;+    let source;+    let self;++    // for React.jsx, key, __source (dev), and __self (dev) is passed in as+    // a separate argument rather than in the args object. We go through the+    // props and filter out these three keywords so we can pass them in+    // as separate arguments later+    for (let i = 0; i < openingPath.node.attributes.length; i++) {+      const attr = openingPath.node.attributes[i];+      if (t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name)) {+        if (attr.name.name === "key") {+          key = convertAttribute(attr).value;+        } else if (attr.name.name === "__source") {+          source = convertAttribute(attr).value;+        } else if (attr.name.name === "__self") {+          self = convertAttribute(attr).value;+        } else {+          attribs.push(attr);+        }+      } else {+        attribs.push(attr);+      }+    }++    if (attribs.length || path.node.children.length) {+      attribs = buildJSXOpeningElementAttributes(+        attribs,+        file,+        path.node.children,+      );+    } else {+      // attributes should never be null+      attribs = t.objectExpression([]);+    }++    args.push(attribs);++    if (!file.opts.development) {+      if (key !== undefined) {+        args.push(key);+      }+    } else {+      // isStaticChildren, __source, and __self are only used in development+      args.push(+        key === undefined ? t.identifier("undefined") : key,+        t.booleanLiteral(path.node.children.length > 1),+        source === undefined ? t.identifier("undefined") : source,+        self === undefined ? t.identifier("undefined") : self,+      );+    }++    if (opts.post) {+      opts.post(state, file);+    }++    return (+      state.call ||+      t.callExpression(+        path.node.children.length > 1 ? state.staticCallee : state.callee,+        args,+      )+    );+  }++  function isChildrenProp(prop) {+    return (+      t.isJSXAttribute(prop) &&+      t.isJSXIdentifier(prop.name) &&+      prop.name.name === "children"+    );+  }++  // Builds props for React.jsx. This function adds children into the props+  // and ensures that props is always an object+  function buildJSXOpeningElementAttributes(attribs, file, children) {+    let _props = [];+    const objs = [];++    // In order to avoid having duplicate "children" keys, we avoid+    // pushing the "children" prop if we have actual children. However,+    // the children prop may have side effects, so to be certain+    // these side effects are evaluated, we add them to the following prop+    // as a sequence expression to preserve order. So:+    // <div children={x++} foo={y}>{child}</div> becomes+    // React.jsx('div', {foo: (x++, y), children: child});+    // duplicateChildren contains the extra children prop values+    let duplicateChildren = [];++    const hasChildren = children && children.length > 0;++    const { useSpread = false } = file.opts;+    if (typeof useSpread !== "boolean") {+      throw new Error(+        "transform-react-jsx currently only accepts a boolean option for " ++          "useSpread (defaults to false)",+      );+    }++    const useBuiltIns = file.opts.useBuiltIns || false;+    if (typeof useBuiltIns !== "boolean") {+      throw new Error(+        "transform-react-jsx currently only accepts a boolean option for " ++          "useBuiltIns (defaults to false)",+      );+    }++    if (useSpread && useBuiltIns) {

just for reference, https://github.com/babel/babel/pull/11141 via jsx label

lunaruan

comment created time in a day

Pull request review commentbabel/babel

Include preset modules

+{

it could be interesting to create a rendered version based on the data on our website or something? Or just showcasing this in general in a more readable manner?

nicolo-ribaudo

comment created time in 3 days

push eventbabel/website

Henry Zhu

commit sha ca836c36924bfb06bf10bf3fccd170c4ba519939

Update videos.js

view details

push time in 6 days

PR opened babel/website

Update videos.js

Should probably redo this page like many others, but uploading talks from the last year (are there others?)

+45 -0

0 comment

1 changed file

pr created time in 7 days

create barnchbabel/website

branch : hzoo-patch-8

created branch time in 7 days

pull request commentbabel/babel

Include preset modules

This is something we would want to at least move to defaulting to true in Babel 8, correct? And we are just waiting since we don't want to break anyone in case (minor version)

nicolo-ribaudo

comment created time in 7 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha c11faf34a6208bd94eb047845beac37a4dfe40e0

Update SEO.js (#24)

view details

push time in 8 days

delete branch hzoo/hopeinsource.com

delete branch : hzoo-patch-1

delete time in 8 days

PR merged hzoo/hopeinsource.com

Update SEO.js
+2 -2

0 comment

1 changed file

hzoo

pr closed time in 8 days

PR opened hzoo/hopeinsource.com

Update SEO.js
+2 -2

0 comment

1 changed file

pr created time in 8 days

create barnchhzoo/hopeinsource.com

branch : hzoo-patch-1

created branch time in 8 days

delete branch hzoo/hopeinsource.com

delete branch : hzoo-patch-1

delete time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha cabe6ea2a91016d35fc50330df88794c3e8366af

Create haircut.md (#23)

view details

push time in 8 days

PR merged hzoo/hopeinsource.com

Create haircut.md
+174 -0

0 comment

1 changed file

hzoo

pr closed time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha b53807dd62b834b31256576b8afa3e8fec4d2d38

Update haircut.md

view details

push time in 8 days

PR opened hzoo/hopeinsource.com

Create haircut.md
+174 -0

0 comment

1 changed file

pr created time in 8 days

create barnchhzoo/hopeinsource.com

branch : hzoo-patch-1

created branch time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 2ee65884bdce2f4cbe2b86058bfc470b54555e54

Switch to different feed (#22)

view details

push time in 8 days

delete branch hzoo/hopeinsource.com

delete branch : hzoo-patch-1

delete time in 8 days

PR merged hzoo/hopeinsource.com

Switch to different feed
+27 -27

0 comment

13 changed files

hzoo

pr closed time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 573ef639c78e4164671647656c165334f20dab9a

Update trust.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 439016b27e16d77f2c90d88d81c3db2a10f10352

Update myth.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 4377eec1088c2be2c88c7d30c45d19bfa88e701c

Update money.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha ef35c57db2290fca8aa33ffe1fea00b55b121877

Update membership.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 699bec3385a72f45093314397077b4a25d57602e

Update liturgy.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 16031e19f1f79ff2cac63068f95309c147c53b65

Update inefficiency.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha a8390813b8db4b0db1c065c64b1c3ad72fb8efbe

Update faith.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 23ac2a0bc2f969e007692095787ba25242d36add

Update city.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 987d5e11a04c76e2efed75aa5f1a79e242110ef0

Update authority.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha da45a49d483b9b2181c83882aeff2648a1033a29

Update evangelism.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 84a8c29735723c598591203cc7e312bee78115aa

Update motivation.md

view details

push time in 8 days

PR opened hzoo/hopeinsource.com

Switch to different feed
+27 -27

0 comment

13 changed files

pr created time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha b3bd5dc6721ad2fb48ee0d79f29b0a81373fd14c

Update trust.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 906613df79e0fb5eeff7de8686ea61d7b842b32a

Update myth.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 7d0de39880697f483f50c033c074621d16b994a2

Update motivation.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha a930bef55224aa9fd6cc240e36d81e65364ac648

Update money.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 7b4abf42ef293d33dde3ad9f452c344d12c255c2

Update membership.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 53e3a6492c1b433dd9b9c40b849cb036ffae2b80

Update liturgy.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha dff783b4f055ed1bae71b1d6a88f523ac57f9c94

Update inefficiency.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha d7ab6c9651436a0dec3a388a04e754f9586cfd80

Update faith.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 2e895e594105bbf5250ef93722f70b0a8ccdb5c6

Update evangelism.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 19ec91710343a08db582d45ae6300ea5620cdf93

Update city.md

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha b8a298fb796485bb0755f7651a7ecd82f7d084bc

Update gatsby-config.js

view details

push time in 8 days

push eventhzoo/hopeinsource.com

Henry Zhu

commit sha 74d4783838267fd013d63d9467b251e174fcec94

Update authority.md

view details

push time in 8 days

create barnchhzoo/hopeinsource.com

branch : hzoo-patch-1

created branch time in 8 days

pull request commentbabel/babel

Remove stage presets from the monorepo

Oh right! We'll we aren't expecting anyone to be using any stage presets anymore for a long time now so we could remove it there too. It's only for convenience in the repl and that we haven't made the UI change there?

nicolo-ribaudo

comment created time in 16 days

push eventhzoo/podcast.babeljs.io

Henry Zhu

commit sha 0f4885d2e56028fc6de711356a1bc417693135fb

Update preset-env.md

view details

push time in a month

delete branch hzoo/podcast.babeljs.io

delete branch : hzoo-patch-1

delete time in a month

push eventhzoo/podcast.babeljs.io

Henry Zhu

commit sha 1e567cd3905acf41bd8113dd2d97fdda649924f6

Update preset-env.md (#6)

view details

push time in a month

PR merged hzoo/podcast.babeljs.io

Update preset-env.md

Worth making the transcript nice, learned a lot just chatting and reading it again.

+610 -2

0 comment

1 changed file

hzoo

pr closed time in a month

PR opened hzoo/podcast.babeljs.io

Update preset-env.md

Worth making the transcript nice, learned a lot just chatting and reading it again.

+610 -2

0 comment

1 changed file

pr created time in a month

create barnchhzoo/podcast.babeljs.io

branch : hzoo-patch-1

created branch time in a month

PR opened babel/babel

Import type for TS PR: New Feature :rocket: area: typescript pkg: parser
Q A <!--(Can use an emoji 👍) -->
Fixed Issues? #10981
Patch: Bug Fix?
Major: Breaking Change?
Minor: New Feature? Yea
Tests Added + Pass? Yes
Documentation PR Link <!-- If only readme change, add [skip ci] to your commits -->
Any Dependency Changes?
License MIT

Implemented for import type, still need to implement export

+571 -3

0 comment

17 changed files

pr created time in a month

create barnchbabel/babel

branch : import-type

created branch time in a month

push eventhzoo/podcast.babeljs.io

Henry Zhu

commit sha 06d14fa86bc24b2bff1cf2552b4c6476e187a4b8

Update preset-env.md

view details

push time in a month

push eventhzoo/podcast.babeljs.io

Henry Zhu

commit sha dd71275468aead5114d6dabb235acf3a3bd1c28e

Create preset-env.md

view details

push time in a month

Pull request review commentbabel/website

7.8.0 release post

+---+layout: post+title:  "7.8.0 Released: ECMAScript 2020, .mjs configuration files and @babel/cli improvements"+author: Nicolò Ribaudo+authorURL: https://twitter.com/NicoloRibaudo+date:   2020-01-10 20:00:00+categories: announcements+share_text: "Babel 7.8.0 Released"+---++This is the first release of the year! :tada: ++Babel 7.8.0 supports the new [ECMAScript 2020](https://github.com/tc39/proposals/blob/master/finished-proposals.md) features by default: you don't need to enable individual plugins for nullish coalescing (`??`), optional chaining (`?.`) and dynamic `import()` anymore with preset-env.++We also finished unifying our different configuration formats, a process that we started in the [7.7.0 release](https://babeljs.io/blog/2019/11/05/7.7.0#new-configuration-file-extensions-10501-https-githubcom-babel-babel-pull-10501-10599-https-githubcom-babel-babel-pull-10599).

we wanted to use another word other than 'unify' in this case right?

nicolo-ribaudo

comment created time in a month

push eventbabel/website

Henry Zhu

commit sha 7215177e0ddaccacdb7e513c9b267170a5ee93ab

fix [skip ci]

view details

push time in a month

startednaptha/tesseract.js

started time in 2 months

push eventbabel/notes

Henry Zhu

commit sha 1731892c8e4decb143e75bd0e9814c9c98cf0f93

Update README.md

view details

push time in 2 months

delete branch babel/notes

delete branch : hzoo-patch-4

delete time in 2 months

push eventbabel/notes

Henry Zhu

commit sha 4a9783b1750395359d85208eed4a65bff20f112e

Create 12/18.md (#108)

view details

push time in 2 months

PR merged babel/notes

Create 12/18.md
+58 -0

0 comment

1 changed file

hzoo

pr closed time in 2 months

push eventbabel/notes

Henry Zhu

commit sha 0c40b40235c4f7b56480e902cb90a08e3926fcc8

Rename 2019/18.md to 2019/12/18.md

view details

push time in 2 months

push eventbabel/notes

Henry Zhu

commit sha c385f529eb93fa78f122e7736a59cb047ed1b006

Update 2019/18.md Co-Authored-By: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>

view details

push time in 2 months

Pull request review commentbabel/notes

Create 18.md

+# 12/18++[Attendees](https://babeljs.io/team):++- Nicolò ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))+- Jùnliàng ([@JLHwung](https://github.com/JLHwung))+- Brian ([@existentialism](https://github.com/existentialism))+- Kai ([@kaicataldo](https://github.com/kaicataldo))+- Henry ([@hzoo](https://github.com/hzoo))+- Rajasekar ([@rajasekarm](https://github.com/rajasekarm), triage)+- Jason ([@developit](https://github.com/developit), guest and friend!)++---++- [x] Setting up `estree` parser plugin policy for the linter, `@babel/eslint-parser` (@kaicataldo) [babel/babel#9506](https://github.com/babel/babel/issues/9506#issuecomment-564772125)+  - Only support Stage 4 features included in the [ESTree](https://github.com/estree/estree) spec. Stage <=3 features implemented in the Babel parser. Same story as for Babel itself, ESTree doesn't need to be different.+  - Need to work on central doc(s) for rules/standards/etc.+  - Henry: `/doc` folder has some old docs we could use again. Need to sync website with the repo? 😭 Either way just need to start putting it somewhere.+- [x] How we should move forward with [`@babel/preset-modules`](https://github.com/babel/preset-modules)? (@developit)+	- Jason: Next.js has it on by default, maybe Gatsby in the future so there's been more traction.+	- Find definitions in `preset-env` that could be replaced by preset-modules to "integrate" the functionality in into a single preset.+	- Jason: And what about related polyfilling support rather than just syntax? What about Node?+	- Eventually: always apply `preset-modules` plugins where possible. `preset-env` should allow the overriding of `compat-table` data based on which of our plugins fix what issues.+	- Nicolò's proposal: use it in Babel 7.8.0, hoping that it won't break anyone's build.+	- **Conclusion**: Use `@babel/preset-modules` on `esmodule: true`. In the future, use that logic also for `targets` using `compat-table`'s more granular data.+	- Henry: Should we set up a pipeline for bugs? In detail meaning going from a bug report in a browser to an issue repro/test case, to a fix/plugin in preset-modules, to it being covered by Babel in preset-env.+	    - Jason: Something where browsers could be more involved.+	    - Add a `bugs.json` in preset-env? We should iclude the test case.+      - Henry: maybe we should generate our own test data, have more incentive to be granular given we are using the data for real world usage vs. just for display on the site.+- [x] Tuples&Records parser support [babel/babel#10865](https://github.com/babel/babel/pull/10865) (@nicolo-ribaudo)+    - Boolean flags vs. enum for the syntax variant+    - Get feedback for different syntax types+    - **Resolution**: Use enum syntax.+- [x] Module attributes parser support (@nicolo-ribaudo)+    - Mandatory `version` option?+    - Write down babel's semver definition, like the one in ESLint: https://github.com/eslint/eslint#semantic-versioning-policy+- [x] PLEASE REVIEW: _"regenerator-runtime" import now can be controlled through include/exclude option_ (https://github.com/babel/babel/pull/10768)+- [x] Moving away from `make` (https://github.com/babel/babel/issues/10889) (@kaicataldo @nicolo-ribaudo)+    - Nicolò ran a Twitter poll and found that ~50% of Windows users stopped contributing to an open source project due to struggling with `make`.+    - We should see if we can move away from `make` to lower the barrier for entry for contributors.+- [x] Funding status update+    - Maybe document or CRM-like system of who we're talking to re: funding for coordination?+    - Possibly a newsletter/update to better explain what we are doing (outside of blog post/changelog)

Can link to notes as well for more granular stuff, or podcast recordings

hzoo

comment created time in 2 months

push eventbabel/notes

Henry Zhu

commit sha 1ada92982c86f3057dd148f3881c995b75a32586

Update 18.md

view details

push time in 2 months

push eventbabel/notes

Henry Zhu

commit sha 88a48ccf7e6375911a81862cf530d233df4cd8ed

Update 18.md

view details

push time in 2 months

PR opened babel/notes

Create 18.md
+59 -0

0 comment

1 changed file

pr created time in 2 months

create barnchbabel/notes

branch : hzoo-patch-4

created branch time in 2 months

issue closedbabel/notes

Dec 04 meeting

@babel/babel feel free to add items to the agenda!

  • [ ] Configuration files extensions (@nicolo-ribaudo)
    • We currently allow .babelrc, .babelrc.{js,cjs} and babel.config.{json,js,cjs}
    • .babelrc.json? (Slack discussion, issue, pr)
    • babel.config.mjs and .babelrc.mjs? (issue)
      • Depends on https://github.com/babel/babel/pull/10507
  • [ ] @babel/eslint-* v8 (https://github.com/babel/babel/issues/10752)
  • [ ] Minor additions to the "Babel 8 release plan" issue: (@nicolo-ribaudo)
    • [ ] Mandatory version option in @babel/plugin-proposal-decorators
    • [ ] Consider moving root AMD/UMD/SystemJS options to be plugin/preset options (https://github.com/babel/babel/issues/5473) - Taken from the Babel 7.next milestone.
    • [ ] Make babel-node clearly separate arguments to node, babel-node, and the script being executed (https://github.com/babel/babel/issues/4373) - Taken from the Babel 7.next milestone.
    • [ ] Clean up @babel/types (https://github.com/babel/babel/pull/5971) - Probably it's easier to rewrite this PR as many small PRs, they could all be good first issues
    • [ ] Disallow babel.transform used synchronously? (comment in code)
    • @Andarist might have other ideas
  • [ ] Reposition babel-preset-env-standalone in Babel 8 (@JLHwung)
    • Large build size (1.3MB), limited extra functionalities (6 plugins)
    • Consider merge back to babel-standalone
  • [ ] Give the triage role to a new user? (@nicolo-ribaudo)
  • [ ] Funding status update (@nicolo-ribaudo)
    • Submit expenses for November

closed time in 2 months

nicolo-ribaudo

issue commentbabel/notes

Dec 18 meeting

  • [ ] Maybe if anyone has further thoughts on how we should move forward with https://github.com/babel/preset-modules? Maybe should do another/separate chat with @developit about it?
nicolo-ribaudo

comment created time in 2 months

startedpvdz/tenko

started time in 3 months

push eventbabel/website

Nicolò Ribaudo

commit sha 9330d4cb8565da8ed5f3532c5f57aac944de5821

Add trivago to the sponsors list (#2139)

view details

push time in 3 months

PR merged babel/website

Add trivago to the sponsors list

They are effectively a base support sponsor, but since they use the "one time" donation every year rather than using the yearly subscription, they aren't automatically showed on our website. Also, they are currently our top sponsor after Handshake.

+8 -1

1 comment

2 changed files

nicolo-ribaudo

pr closed time in 3 months

push eventbabel/notes

Henry Zhu

commit sha b216bf15fb740bed53dcb84703aacd58efe60c48

Update 24.md

view details

push time in 3 months

create barnchbabel/babel

branch : v6.23.0

created branch time in 3 months

create barnchbabel/babel

branch : 6.23.0

created branch time in 3 months

issue closedbabel/babel

Run tc39/test262 against Babel

Context

The idea is to run tc39/test262 tests suite against Babel.

Running the official spec tests against Babel can make sure we comply to the spec or at least know when we don’t. We’ll want to figure out how to do filtering on things we can’t compile (proxy, TCO, etc) and set up an easy way to check failing tests and file issues and PRs for them.

This issue will be used to track this.

Previous discussions:

  • https://github.com/kangax/compat-table/issues/830
  • https://github.com/bakkot/test262-web-runner/
  • https://github.com/bterlson/test262-harness/issues/58
  • https://github.com/motiz88/babel-smoke-tests

Possible Solution

  • https://github.com/bterlson/test262-harness (it seems pretty straightforward, replace node with babel-node ?)

I think we should use our own test runner. We might want to skip some tests.

There are some restriction in order to run the tests. They are well explained in https://github.com/tc39/test262/blob/master/INTERPRETING.md#test-execution.

The tests could be run automaticly on the CI (they are taking some time).

/cc @kangax


Edit: 11/12

My test is available here: https://github.com/xtuc/babel-test262.

Some observations I made:

  • Running all tests takes too long (build log)
  • Mocha reporter and only the language built-ins tests (build log) and this time the ouput was too long.
  • Mocha dot reporter and only the language built-ins tests seems to work pretty well (build log)

closed time in 3 months

xtuc

issue commentbabel/babel

Run tc39/test262 against Babel

Cool closing in favor of https://github.com/babel/babel/issues/10734 and we can add our new ideas there! Really happy this landed and hope everyone else is too 🙂!

xtuc

comment created time in 3 months

issue openedbabel/babel

Feature: Using test262 CI data

Feature Request

Is your feature request related to a problem? Please describe.

We can close out https://github.com/babel/babel/issues/4987 (3 years later) since via https://github.com/babel/babel/pull/10579 (thanks to amazing work of @jbhoosreddy and many others) we are able to run the /language syntax tests of the official JavaScript test suite on CI per PR (takes 30min). We are using https://github.com/babel/babel-test262-runner and CircleCI artifacts to do it (do a diff on the results)!

This is more of a tracking issue to think about some ideas towards what we want to do with this moving forward (if there is something interesting maybe someone can writeup a more in-depth issue to track and link it here):

  • [ ] The results can be difficult to sort through (especially since there are so many), so a way to view them ideally on a website (or even queryable as an API type service) would be great! Similar to test262.report or a https://isfiberreadyyet.com/ type thing. I don't think 100% spec compliancy is a realistic goal (browsers aren't either) but we definitely want to know what we are missing.
  • [ ] A realistic goal in terms of project roadmap vision is to at least cover all the tests that do pass in the the majority of browsers (example: so if a test fails in Babel but not in say v8/spidermonkey/webkit we should look into fixing it for compat as priority vs. a test that others fail at as well)
  • Long term: maybe create a more in-depth version of compat-table through test262 data that would be used for preset-env? This would also help inform the kind of bugs we want to fix in preset-env and the new preset-modules that @developit started
  • Similarly: use the data to be more clear/specific about what loose/spec mode means (accurately depicting the examples/tests that fail/pass due to options?)

created time in 3 months

issue commentbabel/babel

Run tc39/test262 against Babel

Via https://github.com/babel/babel/pull/10579 we are able to run the language tests in 30m, so I think we can close this and make a new issue for next steps:

  • Visualize the diff/failures via a website, maybe link those as potential bugfix/issues for contributors (depending on the test, as some of them we may want to keep as wontfix), or something like test262.report
  • Use this data for preset-env/compat-table?
  • Use the data to figure out how to better explain what a loose/spec mode really means with the descriptions and actual tests that pass/fail
xtuc

comment created time in 3 months

issue commenthzoo/contributors-on-github

Still working for anyone?

Sorry about this, haven't had the time to look into it!

janpio

comment created time in 3 months

delete branch babel/.github

delete branch : hzoo-patch-2-1

delete time in 3 months

push eventbabel/.github

Henry Zhu

commit sha 383f356eab50f810625e97137132f9eec28468fa

Update FUNDING.yml (#7)

view details

push time in 3 months

PR merged babel/.github

Update FUNDING.yml

image

Thinking here (suggested by @existentialism) is that people who are looking don't need to spend a long time deciding on who to give it to and indecision but just donating to the project! (and especially given the way we are planning on using funds this works).

+1 -1

0 comment

1 changed file

hzoo

pr closed time in 3 months

PR opened babel/.github

Update FUNDING.yml

image

Thinking here (suggested by @existentialism) is that people who are looking don't need to spend a long time deciding on who to give it to and indecision but just donating to the project! (and especially given the way we are planning on using funds this works).

+1 -1

0 comment

1 changed file

pr created time in 3 months

create barnchbabel/.github

branch : hzoo-patch-2-1

created branch time in 3 months

create barnchbabel/.github

branch : hzoo-patch-2

created branch time in 3 months

push eventbabel/.github

Henry Zhu

commit sha 3bc65f044c4bf64ef6b5b0af25bb91bce400f75d

add org

view details

push time in 3 months

create barnchbabel/.github

branch : hzoo-patch-1

created branch time in 3 months

startedbabel/preset-modules

started time in 3 months

pull request commentnayafia/awesome-maintainers

Update README.md

Also, I'm thinking I'm gonna cap it to 5 links per maintainer

Definitely agree, thought that too 😆

hzoo

comment created time in 3 months

PR opened babel/babel

Adding funding field for babel/core

Not sure if we need to add it to all of them? I think this is fine (or we add it to some other ones like the parser specifically); maybe no need for each package (although it's not hard to do either)?

+4 -0

0 comment

1 changed file

pr created time in 3 months

push eventbabel/babel

Henry Zhu

commit sha a645158a306453ed0e9f76fd72a2f54c4b8a4ced

[skip ci]

view details

push time in 3 months

create barnchbabel/babel

branch : hzoo-patch-1

created branch time in 3 months

pull request commentbabel/website

Update "Babel's Funding Plans" blog post to include Sebastian employment

Would you want to start up something like a HISTORY.md @sebmck? Could be a good reference for others (and us) in terms of things like when big things happened, changes in scope/thinking, etc

sebmck

comment created time in 3 months

push eventbabel/website

Sebastian

commit sha 30d7d17d4f4c419508d96a3e9999f14f2e0b7faf

Update "Babel's Funding Plans" blog post to include Sebastian e… (#2125)

view details

push time in 3 months

PR merged babel/website

Update "Babel's Funding Plans" blog post to include Sebastian employment

I don't think this was intentional but it was disappointing to see the financial contributions of the companies I've worked for ignored, which I would consider fairly substantial since Babel would be nothing without it. It represents what was then a sustainable model for my work on Babel.

Happy to make changes, and discuss whether I am even considered a "maintainer" but the project and funding did not start when Henry quit his job.

+1 -0

5 comments

1 changed file

sebmck

pr closed time in 3 months

pull request commentbabel/website

Update "Babel's Funding Plans" blog post to include Sebastian employment

I guess we weren't going to add all the history but give an example of some things? Also fine with removing it too.

sebmck

comment created time in 3 months

more