july-28.md
August 24, 2016 · View on GitHub
July 28 (discuss)
Attendees
- Ben (React)
- Christopher (React)
- Dan (React)
- Keyan (React, intern)
- Kevin (Developer Advocacy)
- Paul (React)
- Sebastian (React)
- Tom (React)
Individual Updates
Ben
- Ran the
createClasscodemod on the Facebook.com codebase. - ES6 class usage is up from 30% to 80% in it!
- More good news: Public Class Fields (aka “Class Properties”) ES proposal has advanced to Stage 2.
Paul
- Continued work on the React release manager.
- Busy reviewing two pull requests: one from Keyan and one from Sebastian.
- Keyan’s pull request changes React build process to use Rollup.
- Sebastian’s pull request significantly changes how React packages are bundled internally.
- Unfortunately those changes conflict, and we are going with Sebastian’s pull request first.
- See the section below explaining these changes in more detail.
Dan
- Released Create React App.
- Lots of positive feedback.
- Working on 0.2.0 that fixes issues with cloud editors and busy ports.
- Missing features for calling it 1.0: testing, proxying API requests.
- We merged Jest support but people are concerned because it lost a ton of community trust in the first year.
- We want to use Jest because we’re excited about Snapshot Testing and are committed to improving Jest.
- Dan will make sure the testing experience is good before releasing it officially.
Kevin
- React never had people working on developer advocacy and community outreach.
- We feel it is time to improve this, and Kevin will help us.
- He already worked on revamping React Native docs which was highly successful.
- Things that need addressing: React docs, GitHub issue management.
Changes to Bundling
- Sebastian prepared a series of PRs that really split
reactandreact-dompackages. (#7164, #7168, #7173) react-dompackage implementation used to live inside ofreactpackage for legacy reasons.- Now they are separated:
reactonly contains “renderer-agnostic” things likeReact.Component,React.createElement, andReact.Children. - This is still work in progress, and there are many weird hacks we have to do, but we’ll reduce them over time.
Plan for Reconcilers and Renderers
- Paradoxically,
reactpackage won’t include the React algorithm (“reconciler”) anymore. - For example,
React.createElement()andReact.Componentstay there, but not the reconciler itself. - This makes sense because components relying on
reactdon’t actually care how reconciler is implemented. - The React reconciler will exist in renderer packages such as
react-domandreact-native. - Since almost nobody uses two renderers at the same time, each renderer will use a copy of the reconciler code.
- This makes it possible for
react-nativeandreact-domto move at different speeds and temporarily “fork” the reconciler code if needed. - This also makes it possible for
react-domto offer the new experimental “Fiber” reconciler behind a flag without changing all the third-party components that depend onreact. - This sounds confusing but we think it’ll work better in practice.
Please feel free to discuss these notes in the corresponding pull request.