July 28 (discuss)
- Ben (React)
- Christopher (React)
- Dan (React)
- Keyan (React, intern)
- Kevin (Developer Advocacy)
- Paul (React)
- Sebastian (React)
- Tom (React)
- Ran the
createClass
codemod 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.
- 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.
- 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.
- 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.
- Sebastian prepared a series of PRs that really split
react
andreact-dom
packages. (#7164, #7168, #7173) react-dom
package implementation used to live inside ofreact
package for legacy reasons.- Now they are separated:
react
only 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.
- Paradoxically,
react
package won’t include the React algorithm (“reconciler”) anymore. - For example,
React.createElement()
andReact.Component
stay there, but not the reconciler itself. - This makes sense because components relying on
react
don’t actually care how reconciler is implemented. - The React reconciler will exist in renderer packages such as
react-dom
andreact-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-native
andreact-dom
to move at different speeds and temporarily “fork” the reconciler code if needed. - This also makes it possible for
react-dom
to 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.