-
Notifications
You must be signed in to change notification settings - Fork 47.1k
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
Rename "next" prerelease channel to "canary" #26761
Conversation
The "next" prerelease channel represents what will be published the next time we do a stable release. We publish a new "next" release every day using a timed CI workflow. When we introduced this prerelease channel a few years ago, another name we considered was "canary". But I proposed "next" instead to create a greater distinction between this channel and the "experimental" channel (which is published at the same cadence, but includes extra experimental features), because some other projects use "canary" to refer to releases that are more unstable than how we would use it. The main downside of "next" is someone might mistakenly assume the name refers to Next.js. We were aware of this risk at the time but didn't think it would be an issue in practice. However, colloquially, we've ended up referring to this as the "canary" channel anyway to avoid precisely that confusion. So after further discussion, we've agreed to rename to "canary". This affects the label used in the version string, e.g. 18.3.0-next-a1c2d3e4 => 18.3.0-canary-a1c2d3e4 as well as the npm dist tags used to publish the releases. For now, I've chosen to publish the canaries using both `@canary` and `@next` dist tags, so that downstream consumers who might depend on `@next` have time to adjust. We can remove that later after the change has been communicated.
Comparing: 5dd90c5...636f1c4 Critical size changesIncludes critical production bundles, as well as any change greater than 2%:
Significant size changesIncludes any change greater than 0.2%: (No significant changes) |
We'll need to update the docs, too, but we're working on a larger change to how we communicate our prerelease strategy. I think it's OK to rename the version strings before the docs have been updated, given that the |
Got a verbal approval in chat |
See facebook/react#26761 for more context.
Includes the following upstream changes: - [b7972822b](https://github.com/facebook/react/commits/b7972822b) useOptimisticState -> useOptimistic ([vercel#26772](facebook/react#26772)) (Andrew Clark) - [388686f29](https://github.com/facebook/react/commits/388686f29) Add "canary" to list of allowed npm dist tags ([vercel#26767](facebook/react#26767)) (Andrew Clark) - [8a25302c6](https://github.com/facebook/react/commits/8a25302c6) fix[dynamic-scripts-injection]: unregister content scripts before registration ([vercel#26765](facebook/react#26765)) (Ruslan Lesiutin) - [2c2476834](https://github.com/facebook/react/commits/2c2476834) Rename "next" prerelease channel to "canary" ([vercel#26761](facebook/react#26761)) (Andrew Clark) - [fa4314841](https://github.com/facebook/react/commits/fa4314841) Remove deprecated workflow key from Circle config ([#26762](facebook/react#26762)) (Andrew Clark)
Includes the following upstream changes: - [b7972822b](https://github.com/facebook/react/commits/b7972822b) useOptimisticState -> useOptimistic ([vercel#26772](facebook/react#26772)) (Andrew Clark) - [388686f29](https://github.com/facebook/react/commits/388686f29) Add "canary" to list of allowed npm dist tags ([vercel#26767](facebook/react#26767)) (Andrew Clark) - [8a25302c6](https://github.com/facebook/react/commits/8a25302c6) fix[dynamic-scripts-injection]: unregister content scripts before registration ([vercel#26765](facebook/react#26765)) (Ruslan Lesiutin) - [2c2476834](https://github.com/facebook/react/commits/2c2476834) Rename "next" prerelease channel to "canary" ([vercel#26761](facebook/react#26761)) (Andrew Clark) - [fa4314841](https://github.com/facebook/react/commits/fa4314841) Remove deprecated workflow key from Circle config ([#26762](facebook/react#26762)) (Andrew Clark)
See facebook/react#26761 for more context.
Includes the following upstream changes: - [b7972822b](https://github.com/facebook/react/commits/b7972822b) useOptimisticState -> useOptimistic ([#26772](facebook/react#26772)) (Andrew Clark) - [388686f29](https://github.com/facebook/react/commits/388686f29) Add "canary" to list of allowed npm dist tags ([#26767](facebook/react#26767)) (Andrew Clark) - [8a25302c6](https://github.com/facebook/react/commits/8a25302c6) fix[dynamic-scripts-injection]: unregister content scripts before registration ([#26765](facebook/react#26765)) (Ruslan Lesiutin) - [2c2476834](https://github.com/facebook/react/commits/2c2476834) Rename "next" prerelease channel to "canary" ([#26761](facebook/react#26761)) (Andrew Clark) - [fa4314841](https://github.com/facebook/react/commits/fa4314841) Remove deprecated workflow key from Circle config ([#26762](facebook/react#26762)) (Andrew Clark) - [5dd90c562](https://github.com/facebook/react/commits/5dd90c562) Use content hash for react-native builds ([#26734](facebook/react#26734)) (Samuel Susla) - [559e83aeb](https://github.com/facebook/react/commits/559e83aeb) [Fizz] Allow an action provide a custom set of props to use for progressive enhancement ([#26749](facebook/react#26749)) (Sebastian Markbåge) - [67f4fb021](https://github.com/facebook/react/commits/67f4fb021) Allow forms to skip hydration of hidden inputs ([#26735](facebook/react#26735)) (Sebastian Markbåge) - [8ea96ef84](https://github.com/facebook/react/commits/8ea96ef84) [Fizz] Encode external fizz runtime into chunks eagerly ([#26752](facebook/react#26752)) (Josh Story) - [491aec5d6](https://github.com/facebook/react/commits/491aec5d6) Implement experimental_useOptimisticState ([#26740](facebook/react#26740)) (Andrew Clark) - [9545e4810](https://github.com/facebook/react/commits/9545e4810) Add nonce support to bootstrap scripts and external runtime ([#26738](facebook/react#26738)) (Dan Ott) - [86b0e9199](https://github.com/facebook/react/commits/86b0e9199) Gate DevTools test to fix CI ([#26742](facebook/react#26742)) (Andrew Clark) - [b12bea62d](https://github.com/facebook/react/commits/b12bea62d) Preinits should support a nonce option ([#26744](facebook/react#26744)) (Josh Story) - [efbd68511](https://github.com/facebook/react/commits/efbd68511) Remove unused `initialStatus` parameter from `useHostTransitionStatus` ([#26743](facebook/react#26743)) (Sebastian Silbermann) - [18282f881](https://github.com/facebook/react/commits/18282f881) Fix: Update while suspended fails to interrupt ([#26739](facebook/react#26739)) (Andrew Clark) - [540bab085](https://github.com/facebook/react/commits/540bab085) Implement experimental_useFormStatus ([#26722](facebook/react#26722)) (Andrew Clark) ---------
See facebook/react#26761 for more context.
See facebook/react#26761 for more context.
* Next Channel -> Canary Channel (#5992) See facebook/react#26761 for more context. * Canaries blog post * Revert "Canaries blog post" This reverts commit aa88d8a. * Fixes grammar (#5967) * Canaries blog post (#5993) * Revert "Revert "Canaries blog post"" This reverts commit 9a865fd. * words --------- Co-authored-by: Sophie Alpert <git@sophiebits.com> * tweak * renderToReadableStream => renders a readable web stream (and not a Node.js stream) (#6001) * Update Profiler.md (#6000) * remove cancelled conference 2023 (#5999) * Minor tweak to remove implication that mounting can happen only once (#6003) Mounting with Suspense and Offscreen can happen multiple times. This removes some wording that implies a that effects / lifecycle hooks only happen on first mount. * Conditionally render offset div (#5997) Otherwise the address is being offset to the right when the refresh icon is not displayed * fix: sync state-as-snapshot --------- Co-authored-by: Andrew Clark <git@andrewclark.io> Co-authored-by: Dan Abramov <dan.abramov@gmail.com> Co-authored-by: Elton Maiyo <lt.eltronix@gmail.com> Co-authored-by: Sophie Alpert <git@sophiebits.com> Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com> Co-authored-by: declval <123750459+declval@users.noreply.github.com> Co-authored-by: Hernani Fernandes <hernanif1@gmail.com> Co-authored-by: Jan Kassens <jan@kassens.net> Co-authored-by: Sami Romdhana <64911368+sami-romdhana@users.noreply.github.com> Co-authored-by: Hyuntae EOM <hyunt0413@gmail.com>
* Next Channel -> Canary Channel (#5992) See facebook/react#26761 for more context. * Canaries blog post * Revert "Canaries blog post" This reverts commit aa88d8a. * Fixes grammar (#5967) * Canaries blog post (#5993) * Revert "Revert "Canaries blog post"" This reverts commit 9a865fd. * words --------- Co-authored-by: Sophie Alpert <git@sophiebits.com> * tweak * renderToReadableStream => renders a readable web stream (and not a Node.js stream) (#6001) * Update Profiler.md (#6000) * remove cancelled conference 2023 (#5999) * Minor tweak to remove implication that mounting can happen only once (#6003) Mounting with Suspense and Offscreen can happen multiple times. This removes some wording that implies a that effects / lifecycle hooks only happen on first mount. * Conditionally render offset div (#5997) Otherwise the address is being offset to the right when the refresh icon is not displayed * Remove unnecessary backticks breaking markdown highlighting (#6025) * resolve sync conflcit --------- Co-authored-by: Andrew Clark <git@andrewclark.io> Co-authored-by: Dan Abramov <dan.abramov@gmail.com> Co-authored-by: Elton Maiyo <lt.eltronix@gmail.com> Co-authored-by: Sophie Alpert <git@sophiebits.com> Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com> Co-authored-by: declval <123750459+declval@users.noreply.github.com> Co-authored-by: Hernani Fernandes <hernanif1@gmail.com> Co-authored-by: Jan Kassens <jan@kassens.net> Co-authored-by: Sami Romdhana <64911368+sami-romdhana@users.noreply.github.com> Co-authored-by: Viacheslav Makarov <9768704+mekarthedev@users.noreply.github.com> Co-authored-by: eomttt <hyunt0413@gmail.com>
See facebook/react#26761 for more context.
See facebook/react#26761 for more context.
The "next" prerelease channel represents what will be published the next time we do a stable release. We publish a new "next" release every day using a timed CI workflow. When we introduced this prerelease channel a few years ago, another name we considered was "canary". But I proposed "next" instead to create a greater distinction between this channel and the "experimental" channel (which is published at the same cadence, but includes extra experimental features), because some other projects use "canary" to refer to releases that are more unstable than how we would use it. The main downside of "next" is someone might mistakenly assume the name refers to Next.js. We were aware of this risk at the time but didn't think it would be an issue in practice. However, colloquially, we've ended up referring to this as the "canary" channel anyway to avoid precisely that confusion. So after further discussion, we've agreed to rename to "canary". This affects the label used in the version string (e.g. `18.3.0-next-a1c2d3e4` becomes `18.3.0-canary-a1c2d3e4`) as well as the npm dist tags used to publish the releases. For now, I've chosen to publish the canaries using both `@canary` and `@next` dist tags, so that downstream consumers who might depend on `@next` have time to adjust. We can remove that later after the change has been communicated.
The "next" prerelease channel represents what will be published the next time we do a stable release. We publish a new "next" release every day using a timed CI workflow. When we introduced this prerelease channel a few years ago, another name we considered was "canary". But I proposed "next" instead to create a greater distinction between this channel and the "experimental" channel (which is published at the same cadence, but includes extra experimental features), because some other projects use "canary" to refer to releases that are more unstable than how we would use it. The main downside of "next" is someone might mistakenly assume the name refers to Next.js. We were aware of this risk at the time but didn't think it would be an issue in practice. However, colloquially, we've ended up referring to this as the "canary" channel anyway to avoid precisely that confusion. So after further discussion, we've agreed to rename to "canary". This affects the label used in the version string (e.g. `18.3.0-next-a1c2d3e4` becomes `18.3.0-canary-a1c2d3e4`) as well as the npm dist tags used to publish the releases. For now, I've chosen to publish the canaries using both `@canary` and `@next` dist tags, so that downstream consumers who might depend on `@next` have time to adjust. We can remove that later after the change has been communicated. DiffTrain build for commit 2c24768.
The "next" prerelease channel represents what will be published the next time we do a stable release. We publish a new "next" release every day using a timed CI workflow.
When we introduced this prerelease channel a few years ago, another name we considered was "canary". But I proposed "next" instead to create a greater distinction between this channel and the "experimental" channel (which is published at the same cadence, but includes extra experimental features), because some other projects use "canary" to refer to releases that are more unstable than how we would use it.
The main downside of "next" is someone might mistakenly assume the name refers to Next.js. We were aware of this risk at the time but didn't think it would be an issue in practice.
However, colloquially, we've ended up referring to this as the "canary" channel anyway to avoid precisely that confusion.
So after further discussion, we've agreed to rename to "canary".
This affects the label used in the version string (e.g.
18.3.0-next-a1c2d3e4
becomes18.3.0-canary-a1c2d3e4
) as well as the npm dist tags used to publish the releases. For now, I've chosen to publish the canaries using both@canary
and@next
dist tags, so that downstream consumers who might depend on@next
have time to adjust. We can remove that later after the change has been communicated.