<p dir="auto">This list might change, just putting it out there as the first draft.<br>
Posting these together since they're related, and we don't plan more 15.x releases after 15.5 anyway.</p>
<p dir="auto">To put these changes in context, we have a few goals:</p>
<p dir="auto">(Click to show)</p>
<details>
<ul dir="auto">
<li>
<p dir="auto">For the past several months, we have been working on a <a href="https://www.youtube.com/watch?v=aV1271hd9ew&amp;feature=youtu.be" rel="nofollow">rewrite of React codenamed “Fiber”</a>. Initially, it won’t affect public API, but it brings several new features (like <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="41668009" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/2127" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/2127/hovercard" href="https://github.com/facebook/react/issues/2127">#2127</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="47678610" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/2461" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/2461/hovercard" href="https://github.com/facebook/react/issues/2461">#2461</a>). Fiber gives us a solid foundation to improve React core in numerous ways. We’ll be talking more about it soon, and we intend to ship it with React 16 by default.</p>
</li>
<li>
<p dir="auto">To reduce the bundle size, we need to remove the APIs that we don't recommend, such as <code class="notranslate">createClass</code> and <code class="notranslate">React.DOM.*</code> helpers. We intend to warn once about their usage so that you can start removing dependencies on them. They will still be available as separate packages, but we will exclude them from the default build of React 16.</p>
</li>
<li>
<p dir="auto">We would like to have more control over the bundles so that we can better optimize them. This is why we are considering switching to flat bundles (and thus removing access to React internals in <code class="notranslate">react/lib/*</code> and <code class="notranslate">react-dom/lib/*</code>) in React 16. This will also mean faster compile times by default for users of Webpack and other bundlers, and faster server-side rendering performance.</p>
</li>
</ul>
</details>
<p dir="auto">Here’s a speculative list of changes we think of doing in these releases:</p>
<h1 dir="auto">Past Releases</h1>
<p dir="auto">I’ve moved these to the end of this post.</p>
<h1 dir="auto">16 Final</h1>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="255726037" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10625" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10625/hovercard" href="https://github.com/facebook/react/issues/10625">#10625</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a> &amp; <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sophiebits/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sophiebits">@sophiebits</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Check if <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="242027911" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10142" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10142/hovercard" href="https://github.com/facebook/react/pull/10142">#10142</a> is a real regression (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nhunzaker/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nhunzaker">@nhunzaker</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aweary/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aweary">@aweary</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Check Google issue (<s>still exists after RC2</s> turns out to be polyfill.io bug, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="256685039" data-permission-text="Title is private" data-url="https://github.com/JakeChampion/polyfill-service/issues/1299" data-hovercard-type="issue" data-hovercard-url="/JakeChampion/polyfill-service/issues/1299/hovercard" href="https://github.com/JakeChampion/polyfill-service/issues/1299">JakeChampion/polyfill-service#1299</a>) <a href="https://www.reddit.com/r/javascript/comments/6pqrz5/comment/dmrl0nh" rel="nofollow">https://www.reddit.com/r/javascript/comments/6pqrz5/comment/dmrl0nh</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Figure out what we want to do regarding <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="255436221" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10612" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10612/hovercard" href="https://github.com/facebook/react/pull/10612">#10612</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="256763818" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10672" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10672/hovercard" href="https://github.com/facebook/react/issues/10672">#10672</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Ensure Enzyme isn't blocked on anything from our side for 16 compat. (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Remove <code class="notranslate">unstable_</code> prefix from <code class="notranslate">unstable_createPortal</code> and alias it <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="256810015" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10675" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10675/hovercard" href="https://github.com/facebook/react/pull/10675">#10675</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Ensure we show a sensible warning for this case <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="256787731" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10673" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10673/hovercard" href="https://github.com/facebook/react/pull/10673">#10673</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Preparing for the Final Release: (React team in general)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Write blog post adapted from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="245838506" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10294" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10294/hovercard" href="https://github.com/facebook/react/issues/10294">#10294</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a>)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Add attribute info to big changes section</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Consolidate/remove "Updates" section at the end</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Server hydration: make hydration changes more prominent in breaking changes section, maybe write a full blog post later (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="254609905" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10591" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10591/hovercard" href="https://github.com/facebook/react/issues/10591">#10591</a>)</li>
</ul>
</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Release an update to DevTools with <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="258989111" data-permission-text="Title is private" data-url="https://github.com/facebook/react-devtools/issues/892" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react-devtools/pull/892/hovercard" href="https://github.com/facebook/react-devtools/pull/892">facebook/react-devtools#892</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Website (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bvaughn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bvaughn">@bvaughn</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Docs
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Document ability to return strings and arrays from <code class="notranslate">render</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Document <code class="notranslate">createPortal()</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Merge <a href="https://github.com/facebook/react/blob/master/docs/docs/reference-react-dom-node-stream.md">server streaming</a> doc into regular dom server doc and fix imports to match new unified entry point</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Test renderer <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="257323402" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10692" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10692/hovercard" href="https://github.com/facebook/react/pull/10692">#10692</a></li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Right after release:
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Update CDN URLs on website and official fiddle to reference new paths (<code class="notranslate">/umd/*</code> rather than <code class="notranslate">sebmt/*</code>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Update doc snippets (such as all codepens on the website!) to use 16.</li>
</ul>
</li>
</ul>
<p dir="auto"><em>TODO: Add any bugs discovered while testing RC.</em></p>
<h1 dir="auto">16 Wishlist</h1>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Fix hot reloading in RN (probably needs <code class="notranslate">unstable_forceUpdateDeep()</code> and then change <a href="https://github.com/gaearon/react-deep-force-update">https://github.com/gaearon/react-deep-force-update</a> to use it)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Show a better message for missing React (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="248737562" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10406" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10406/hovercard" href="https://github.com/facebook/react/issues/10406">#10406</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Make sure we offer a way of canceling <code class="notranslate">setState</code> updater form (<a href="https://twitter.com/nishb1/status/852542873803345920" rel="nofollow">https://twitter.com/nishb1/status/852542873803345920</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a> will follow up)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Remove Stack and compat code</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Add support to Enzyme for Fiber (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="238416218" data-permission-text="Title is private" data-url="https://github.com/enzymejs/enzyme/issues/1007" data-hovercard-type="pull_request" data-hovercard-url="/enzymejs/enzyme/pull/1007/hovercard" href="https://github.com/enzymejs/enzyme/pull/1007">enzymejs/enzyme#1007</a>)</li>
</ul>
<hr>
<h2 dir="auto">Past Releases</h2>
<details>
<h1 dir="auto">15.5</h1>
<p dir="auto">(Click to show)</p>
<details>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> ReactDOM fixes, if <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jquense/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jquense">@jquense</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nhunzaker/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nhunzaker">@nhunzaker</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aweary/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aweary">@aweary</a> want to release any.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> We should probably ship a fix for <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="193229779" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8487" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/8487/hovercard" href="https://github.com/facebook/react/issues/8487">#8487</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="207711888" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9005" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/9005/hovercard" href="https://github.com/facebook/react/pull/9005">#9005</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> New warning: callback refs on stateless functional components (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="197448461" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8635" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/8635/hovercard" href="https://github.com/facebook/react/pull/8635">#8635</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="199858623" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8739" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/8739/hovercard" href="https://github.com/facebook/react/pull/8739">#8739</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> New API deprecations:
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">React.createClass</code> (will be moved to a separate package, <a href="https://github.com/reactjs/react-codemod#explanation-of-the-new-es2015-class-transform-with-property-initializers">and we provide a codemod</a> if you want to update to ES classes)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <del><code class="notranslate">React.createFactory</code> (will be moved to a separate package or removed, it's a <a href="https://github.com/facebook/react/blob/eb89bc4c301c5970b1ec88d3fdfa2202d4dca4f8/src/isomorphic/classic/element/ReactElement.js#L271-L272">one-liner</a>)</del></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <s><code class="notranslate">React.DOM.*</code> factories (will be moved to a separate package, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="190505836" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8356" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/8356/hovercard" href="https://github.com/facebook/react/pull/8356">#8356</a>)</s> <strong>We forgot to do it. Moving to 15.6</strong></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <s><code class="notranslate">React.createMixin</code> (will be removed, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="202690857" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8853" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/8853/hovercard" href="https://github.com/facebook/react/pull/8853">#8853</a>)</s> <strong>We forgot to do it. Moving to 15.6</strong></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">React.propTypes</code> (will be moved to a separate package)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Deprecate React addons <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="215046831" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9207" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9207/hovercard" href="https://github.com/facebook/react/issues/9207">#9207</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide how to handle all of this with the UMD addons build</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Fix this bug <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="219824708" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9351" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9351/hovercard" href="https://github.com/facebook/react/issues/9351">#9351</a></li>
</ul>
</li>
</ul>
</details>
<h1 dir="auto">15.6</h1>
<p dir="auto">See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="220795571" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9398" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9398/hovercard" href="https://github.com/facebook/react/issues/9398">#9398</a>.</p>
<h1 dir="auto">16 Alpha</h1>
<p dir="auto">(Click to show)</p>
<details>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Remove deprecations added in 15
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Stop appending <code class="notranslate">px</code> to strings (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="157108532" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/6899" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/6899/hovercard" href="https://github.com/facebook/react/pull/6899">#6899</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Remove <code class="notranslate">LinkedStateMixin</code>, <code class="notranslate">valueLink</code> and <code class="notranslate">checkedLink</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="186392597" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8165" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/8165/hovercard" href="https://github.com/facebook/react/pull/8165">#8165</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Remove <code class="notranslate">React.__spread</code> and <code class="notranslate">React.createMixin</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Move <code class="notranslate">React.createClass</code> to a separate package</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Move <code class="notranslate">PropTypes</code> to a separate package.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Move <code class="notranslate">React.DOM.*</code> factories to a separate package</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide what to do with the addons build</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> If we keep any addons, they need to work regardless of whether React is aliased to a flat bundle or not (which is not the case now)</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Strip PropTypes checkers in production build (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="184713116" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8066" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/8066/hovercard" href="https://github.com/facebook/react/pull/8066">#8066</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Re-add warning about calling PropTypes directly (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="184935609" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/8080" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/8080/hovercard" href="https://github.com/facebook/react/issues/8080">#8080</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> More ReactDOM fixes, if <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jquense/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jquense">@jquense</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nhunzaker/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nhunzaker">@nhunzaker</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aweary/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aweary">@aweary</a> want to release any.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Make a decision on the input fix by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jquense/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jquense">@jquense</a> (for now accepted, but follow up work will change this. <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a> link to issue on related follow up work)</li>
</ul>
</details>
<h1 dir="auto">16 Beta</h1>
<p dir="auto">(Click to show)</p>
<details>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Actually enable fragments (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a> verified this)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Make error boundaries official (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bvaughn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bvaughn">@bvaughn</a>)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Choose lifecycle naming</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Codemod stuff</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide whether to runtime warn for the old name (decided: let's not do it)</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Fix the issue with <code class="notranslate">invokeGuardedCallback</code> (tracking in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="225543495" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9577" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9577/hovercard" href="https://github.com/facebook/react/issues/9577">#9577</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a> is working on this)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> (This came up internally) Set a hard limit for recursion <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="214820501" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9193" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9193/hovercard" href="https://github.com/facebook/react/issues/9193">#9193</a>. (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Duplicate React + string refs results in very confusing error (ref is not a function). We should provide a good invariant for that. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="235916211" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9962" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9962/hovercard" href="https://github.com/facebook/react/issues/9962">#9962</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/spicyj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/spicyj">@spicyj</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>) (is this Draft issue also about this? <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="147664300" data-permission-text="Title is private" data-url="https://github.com/facebookarchive/draft-js/issues/296" data-hovercard-type="issue" data-hovercard-url="/facebookarchive/draft-js/issues/296/hovercard" href="https://github.com/facebookarchive/draft-js/issues/296">facebookarchive/draft-js#296</a>)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Is there a test for this? (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>)</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Warn (throw?) when doing an update on a container that was manually emptied outside of React (in stack, this mounted a brand-new tree; in fiber, it tries to apply an update and usually fails) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="243848224" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10210" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10210/hovercard" href="https://github.com/facebook/react/pull/10210">#10210</a>)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Is there a test for this? (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>)</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Additional APIs we need in order to start experimenting with async. (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a>)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">React.unstable_AsyncComponent</code></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">ReactDOM.flushSync(batch)</code></li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> sanity test - use in a CRA app, and check fixtures</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Messaging
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Update isfiberreadyyet.com</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Compose a Tweet</li>
</ul>
</li>
</ul>
</details>
<h1 dir="auto">16 RC</h1>
<p dir="auto">(Click to show)</p>
<details>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> [m-l] Pass DOM props through (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="248484493" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10399" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10399/hovercard" href="https://github.com/facebook/react/issues/10399">#10399</a>, latest is: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="248886046" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10416" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10416/hovercard" href="https://github.com/facebook/react/pull/10416">#10416</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/spicyj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/spicyj">@spicyj</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sebmarkbage/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sebmarkbage">@sebmarkbage</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Regression: we should warn if object is passed to an event listener prop <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="248739417" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10407" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10407/hovercard" href="https://github.com/facebook/react/issues/10407">#10407</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aweary/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aweary">@aweary</a>) (fixed? in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249892566" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10453" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10453/hovercard" href="https://github.com/facebook/react/pull/10453">#10453</a> but needs <s>review</s> updated and merged)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Make sure input variables (props, state) point to the correct values for each lifecycle. Example where this isn't the case for <code class="notranslate">componentWillMount</code>: <a href="https://jsfiddle.net/m3pL3yaj/" rel="nofollow">https://jsfiddle.net/m3pL3yaj/</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a>) (fixed in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="251060419" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10481" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10481/hovercard" href="https://github.com/facebook/react/pull/10481">#10481</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">select</code>'s onChange event fires with incorrect selectedIndex, value (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="248937690" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10420" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10420/hovercard" href="https://github.com/facebook/react/issues/10420">#10420</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sebmarkbage/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sebmarkbage">@sebmarkbage</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> How do we ensure weak minifiers don't ship the bundle twice? <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="225841010" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9589" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9589/hovercard" href="https://github.com/facebook/react/issues/9589">#9589</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trueadm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/trueadm">@trueadm</a>) (fixed in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249770972" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10446" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10446/hovercard" href="https://github.com/facebook/react/pull/10446">#10446</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Bug: SSR has false positive warnings for SVG tags <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="248884666" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10415" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10415/hovercard" href="https://github.com/facebook/react/issues/10415">#10415</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/spicyj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/spicyj">@spicyj</a>) (fixed in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249888582" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10452" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10452/hovercard" href="https://github.com/facebook/react/pull/10452">#10452</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Bug: Unexpected cross-domain error passed to <code class="notranslate">componentDidCatch</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249669043" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10441" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10441/hovercard" href="https://github.com/facebook/react/issues/10441">#10441</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bvaughn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bvaughn">@bvaughn</a>) (fixed in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249775309" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10447" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10447/hovercard" href="https://github.com/facebook/react/pull/10447">#10447</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Warn when nesting a 15 tree inside 16 (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/spicyj/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/spicyj">@spicyj</a> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249503410" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10434" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10434/hovercard" href="https://github.com/facebook/react/pull/10434">#10434</a>) (fixed in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249503410" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10434" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10434/hovercard" href="https://github.com/facebook/react/pull/10434">#10434</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> undefined is not a function (evaluating 'owner.getName()') <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="249737513" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10443" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10443/hovercard" href="https://github.com/facebook/react/issues/10443">#10443</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Regressions reported in beta
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> The server renderer crashes in production with inline styles. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="245921165" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10299" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10299/hovercard" href="https://github.com/facebook/react/issues/10299">#10299</a>, fixed by <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="245927152" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10300" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10300/hovercard" href="https://github.com/facebook/react/pull/10300">#10300</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> The server renderer doesn't yet support returning arrays and strings from components (fixed by <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="244123163" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10221" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10221/hovercard" href="https://github.com/facebook/react/pull/10221">#10221</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> The server renderer still renders <code class="notranslate">data-reactid</code> somewhat unnecessarily. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="246009179" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10306" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10306/hovercard" href="https://github.com/facebook/react/issues/10306">#10306</a>) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Potentially fixed by <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="247002030" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10339" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10339/hovercard" href="https://github.com/facebook/react/pull/10339">#10339</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>)</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> In some cases <code class="notranslate">Error: null</code> is reported instead of the real error. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="246486517" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10321" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10321/hovercard" href="https://github.com/facebook/react/issues/10321">#10321</a>) [decision: update the error message] (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Shallow renderer doesn't implement <code class="notranslate">unstable_batchedUpdates</code>. [decision: team seems to be leaning away from doing this; discussion in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="247419222" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10355" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10355/hovercard" href="https://github.com/facebook/react/issues/10355">#10355</a>]</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> [s-m] <code class="notranslate">shouldComponentUpdate</code> with functional components [decision: delete it for now, add it in a minor] (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sebmarkbage/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sebmarkbage">@sebmarkbage</a>) <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="247798025" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10371" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10371/hovercard" href="https://github.com/facebook/react/pull/10371">#10371</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> There is a report that Google crawler can’t render the page using 16 (<a href="https://www.reddit.com/r/javascript/comments/6pqrz5/react_16_beta/dkrgvzj/?utm_content=permalink&amp;utm_medium=front&amp;utm_source=reddit&amp;utm_name=javascript" rel="nofollow">link</a>). (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <s>Check if <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="248718151" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10405" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10405/hovercard" href="https://github.com/facebook/react/issues/10405">#10405</a> is a real regression</s> (No, it's been fixed looks like.)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> [s-m] Ensure type validation didn't regress when we enabled new features <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="225543495" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/9577" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/9577/hovercard" href="https://github.com/facebook/react/issues/9577">#9577</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <s>Decide if we want to break value attribute syncing behavior (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="242212624" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10150" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10150/hovercard" href="https://github.com/facebook/react/pull/10150">#10150</a>)</s> [decided to postpone until 17]</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> [s-m] Decide if we want to stop calling <code class="notranslate">componentDidUpdate</code> from shallow renderer (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="247826611" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10372" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10372/hovercard" href="https://github.com/facebook/react/pull/10372">#10372</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide: what do we do about polyfills?
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Map/Set (need to throw early, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>) <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="247435323" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10356" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10356/hovercard" href="https://github.com/facebook/react/pull/10356">#10356</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Object.assign (keep or assume it's there?) <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="245696663" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10280" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10280/hovercard" href="https://github.com/facebook/react/pull/10280">#10280</a> [decision: keep it bundled for now]</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> rAF [decision: keep it required]<br>
(Maybe use the same approach/standard as Relay? <a href="https://facebook.github.io/relay/docs/relay-modern.html#javascript-environment-requirements" rel="nofollow">https://facebook.github.io/relay/docs/relay-modern.html#javascript-environment-requirements</a>)</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Big missing pieces
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Add server rendering and reviving</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Add shallow renderer
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> We seem to be decoupling shallow renderer from ReactDOM. However in 15 <code class="notranslate">findDOMNode()</code> works inside of shallow renderer because it contains ReactDOM injections. Is this going to be a breaking change? (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>) [decision: let's not support this]</li>
</ul>
</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide on whether to include warning whitelisting/blacklisting (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bvaughn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bvaughn">@bvaughn</a>) [decision: not in 16.0]</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Maybe: Switch to flat bundles (no more <code class="notranslate">react-dom/lib/*</code>, internals are truly private)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide: plan forward for popular projects depending on internals (<code class="notranslate">react-native-web</code>, <code class="notranslate">react-tap-event-plugin</code>) (might not block final)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">EventPluginHub</code> is "dangerously" exported from flat bundle for tap event plugin</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <code class="notranslate">react-native-web</code> probably needs more internals, coordinate with <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/necolas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/necolas">@necolas</a> (done in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="241893202" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10138" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10138/hovercard" href="https://github.com/facebook/react/pull/10138">#10138</a>)</li>
</ul>
</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <s>Support <code class="notranslate">class</code> and <code class="notranslate">for</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="242680767" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10169" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10169/hovercard" href="https://github.com/facebook/react/pull/10169">#10169</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>)</s> [decision: not gonna do this now]</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Feature parity for renderers
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Shallow renderer supports strings and arrays</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Server renderer supports strings and arrays</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <s>Server renderer supports error boundaries</s> [doesn't make sense conceptually right now]</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide on whether to put <code class="notranslate">react-current-owner</code> in its own package to reduce issues caused by npm duplication [not now]</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide on DOMServer entry points (<code class="notranslate">react-dom/server</code> and <code class="notranslate">react-dom/node-stream</code> seem inconsistent with each other. Why is only one of them <code class="notranslate">server</code>?) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gaearon/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gaearon">@gaearon</a>) <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="247528462" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10362" data-hovercard-type="pull_request" data-hovercard-url="/facebook/react/pull/10362/hovercard" href="https://github.com/facebook/react/pull/10362">#10362</a>
<ul dir="auto">
<li>These were configured separately for Prepack. One target includes both the pure JS APIs and the Node APIs and the other only includes the pure JS APIs. We could combine them into a single <code class="notranslate">react-dom/server</code> entry point and add a new <code class="notranslate">renderToString</code> method on it.</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Decide: Do we care about catching errors in events in the initial release? [no]</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Error messages (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/flarnie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/flarnie">@flarnie</a>) (Dan: I moved this back to blockers because I don't think we can release with unclear messages. Error boundaries are a huge change in open source and we must have documentation and a link before we start unmounting roots.)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> "You can add an error boundary" message should link to docs</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> duplicate key warning for children with same keys is out of date; claims child will be ignored but now we will only render second one. (easy to add to 16 final or sooner) (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sebmarkbage/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sebmarkbage">@sebmarkbage</a>)</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Verify that the bundles produced are valid in strict mode. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="245838506" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/10294" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/10294/hovercard?comment_id=319490960&amp;comment_type=issue_comment" href="https://github.com/facebook/react/issues/10294#issuecomment-319490960">#10294 (comment)</a> (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bvaughn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bvaughn">@bvaughn</a>)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Testing the Beta: (React team in general)
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Share the beta and proposed release date with library authors several weeks in advance</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Triage any issues reported with beta.</li>
</ul>
</li>
</ul>
</details>
</details>
<p dir="auto">If you (presumably accidentally) use the same ref on two components and then remove the second one, you would expect the ref to point to the first one but it doesn't.</p>
<p dir="auto">Either this test should pass:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="it('should work when removing a ref with a duplicate name', function() {
  var Component = React.createClass({
    render: function() {
      return &lt;div&gt;
        &lt;div ref=&quot;dupRef&quot;&gt;A&lt;/div&gt;
        {this.props.showB &amp;&amp; &lt;div ref=&quot;dupRef&quot;&gt;B&lt;/div&gt;}
      &lt;/div&gt;;
    }
  });

  var instance = ReactTestUtils.renderIntoDocument(
    &lt;Component showB={true} /&gt;
  );
  // Second &lt;div /&gt; tramples over the first
  expect(instance.refs.dupRef.getDOMNode().innerHTML).toBe('B');
  instance.setProps({showB: false});
  // Now only the first child &lt;div /&gt; exists so the ref should point to it
  expect(instance.refs.dupRef.getDOMNode().innerHTML).toBe('A');
});"><pre class="notranslate"><span class="pl-en">it</span><span class="pl-kos">(</span><span class="pl-s">'should work when removing a ref with a duplicate name'</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-k">var</span> <span class="pl-v">Component</span> <span class="pl-c1">=</span> <span class="pl-v">React</span><span class="pl-kos">.</span><span class="pl-en">createClass</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-en">render</span>: <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
      <span class="pl-k">return</span> <span class="pl-c1">&lt;</span><span class="pl-ent">div</span><span class="pl-c1">&gt;</span>
        <span class="pl-c1">&lt;</span><span class="pl-ent">div</span> <span class="pl-c1">ref</span><span class="pl-c1">=</span><span class="pl-s">"dupRef"</span><span class="pl-c1">&gt;</span>A<span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">div</span><span class="pl-c1">&gt;</span>
        <span class="pl-kos">{</span><span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">props</span><span class="pl-kos">.</span><span class="pl-c1">showB</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-c1">&lt;</span><span class="pl-ent">div</span> <span class="pl-c1">ref</span><span class="pl-c1">=</span><span class="pl-s">"dupRef"</span><span class="pl-c1">&gt;</span>B<span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">div</span><span class="pl-c1">&gt;</span><span class="pl-kos">}</span>
      <span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">div</span><span class="pl-c1">&gt;</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>
  <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

  <span class="pl-k">var</span> <span class="pl-s1">instance</span> <span class="pl-c1">=</span> <span class="pl-v">ReactTestUtils</span><span class="pl-kos">.</span><span class="pl-en">renderIntoDocument</span><span class="pl-kos">(</span>
    <span class="pl-c1">&lt;</span><span class="pl-v">Component</span> <span class="pl-c1">showB</span><span class="pl-c1">=</span><span class="pl-kos">{</span><span class="pl-c1">true</span><span class="pl-kos">}</span> <span class="pl-c1">/</span><span class="pl-c1">&gt;</span>
  <span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-c">// Second &lt;div /&gt; tramples over the first</span>
  <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s1">instance</span><span class="pl-kos">.</span><span class="pl-c1">refs</span><span class="pl-kos">.</span><span class="pl-c1">dupRef</span><span class="pl-kos">.</span><span class="pl-en">getDOMNode</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">innerHTML</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBe</span><span class="pl-kos">(</span><span class="pl-s">'B'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-s1">instance</span><span class="pl-kos">.</span><span class="pl-en">setProps</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">showB</span>: <span class="pl-c1">false</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-c">// Now only the first child &lt;div /&gt; exists so the ref should point to it</span>
  <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s1">instance</span><span class="pl-kos">.</span><span class="pl-c1">refs</span><span class="pl-kos">.</span><span class="pl-c1">dupRef</span><span class="pl-kos">.</span><span class="pl-en">getDOMNode</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">innerHTML</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBe</span><span class="pl-kos">(</span><span class="pl-s">'A'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">…or we should throw an error upon first render when trying to use a single ref in two places.</p>