Let's discuss what to do with the shallow renderer here. As I mentioned in https://github.com/facebook/react/pull/16168#issuecomment-518344985, we aren't using it much and don't consider it a best practice. So we aren't going to be very good stewards of its API going forward.

My proposal was for Enzyme or folks interested in it to copy the code into another repo, and continue maintaining it there under a difference package name. It would make sense to Enzyme to start depending on that fork. We would then deprecate `react-test-renderer/shallow` in favor of the community-maintained fork.

If you'd like to volunteer to set up a repo, please let us know in this issue!

cc @davidmarkclements regarding the proposed `react-shallow-renderer` package name.
type Dispatch<A> = A => void;
type Update<A> = {|
  action: A,
  next: Update<A> | null,
|};
type UpdateQueue<A> = {|
  first: Update<A> | null,
  dispatch: any,
|};
type Hook = {|
  memoizedState: any,
  queue: UpdateQueue<any> | null,
  next: Hook | null,
|};
const {ReactCurrentDispatcher} = ReactSharedInternals;
const RE_RENDER_LIMIT = 25;
const emptyObject = {};
if (__DEV__) {
  Object.freeze(emptyObject);
}
let currentHookNameInDev: ?string;
function areHookInputsEqual(
  nextDeps: Array<mixed>,
  prevDeps: Array<mixed> | null,
) {
  if (prevDeps === null) {
    if (__DEV__) {
      console.error(
        '%s received a final argument during this render, but not during ' +
          'the previous render. Even though the final argument is optional, ' +