Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add unstable prefix to experimental APIs #18825

Merged
merged 1 commit into from May 5, 2020

Commits on May 5, 2020

  1. Add unstable prefix to experimental APIs

    We've been shipping unprefixed experimental APIs (like `createRoot` and
    `useTransition`) to the Experimental release channel, with the rationale
    that because these APIs do not appear in any stable release, we're free
    to change or remove them later without breaking any downstream projects.
    
    What we didn't consider is that downstream projects might be tempted to
    use feature detection:
    
    ```js
    const useTransition = React.useTransition || fallbackUseTransition;
    ```
    
    This pattern assumes that the version of `useTransition` that exists in
    the Experimental channel today has the same API contract as the final
    `useTransition` API that we'll eventually ship to stable.
    
    To discourage feature detection, I've added an `unstable_` prefix to
    all of our unstable APIs.
    
    The Facebook builds still have the unprefixed APIs, though. We will
    continue to support those; if we make any breaking changes, we'll
    migrate the internal callers like we usually do. To make testing easier,
    I added the `unstable_`-prefixed APIs to the www builds, too. That way
    our tests can always use the prefixed ones without gating on the
    release channel.
    acdlite committed May 5, 2020
    Copy the full SHA
    9fe4075 View commit details
    Browse the repository at this point in the history