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

Rename "next" prerelease channel to "canary" #26761

Merged
merged 1 commit into from
May 3, 2023

Conversation

acdlite
Copy link
Collaborator

@acdlite acdlite commented May 2, 2023

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 => 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.
@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels May 2, 2023
@react-sizebot
Copy link

Comparing: 5dd90c5...636f1c4

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js = 164.18 kB 164.19 kB = 51.78 kB 51.78 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 171.57 kB 171.57 kB = 53.99 kB 53.99 kB
facebook-www/ReactDOM-prod.classic.js = 570.19 kB 570.19 kB = 100.62 kB 100.62 kB
facebook-www/ReactDOM-prod.modern.js = 553.93 kB 553.93 kB = 97.80 kB 97.80 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 636f1c4

@acdlite
Copy link
Collaborator Author

acdlite commented May 2, 2023

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 @next dist tag will continue working. https://react.dev/community/versioning-policy#next-channel

@acdlite
Copy link
Collaborator Author

acdlite commented May 3, 2023

Got a verbal approval in chat

@acdlite acdlite merged commit 2c24768 into facebook:main May 3, 2023
acdlite added a commit to acdlite/reactjs.org that referenced this pull request May 3, 2023
acdlite added a commit to acdlite/next.js that referenced this pull request May 3, 2023
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)
acdlite added a commit to acdlite/next.js that referenced this pull request May 3, 2023
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)
gaearon pushed a commit to reactjs/react.dev that referenced this pull request May 3, 2023
ijjk pushed a commit to vercel/next.js that referenced this pull request May 3, 2023
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)

---------
r17x pushed a commit to reactjs/id.react.dev that referenced this pull request May 8, 2023
eomttt pushed a commit to reactjs/ko.react.dev that referenced this pull request May 8, 2023
eomttt added a commit to reactjs/ko.react.dev that referenced this pull request May 8, 2023
* 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>
eomttt added a commit to reactjs/ko.react.dev that referenced this pull request May 20, 2023
* 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>
FelixFern pushed a commit to FelixFern/id.react.dev that referenced this pull request Jun 13, 2023
faeghe-hajiabadi pushed a commit to faeghe-hajiabadi/fa.react.dev that referenced this pull request Oct 16, 2023
EdisonVan pushed a commit to EdisonVan/react that referenced this pull request Apr 15, 2024
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.
bigfootjon pushed a commit that referenced this pull request Apr 18, 2024
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants