Skip to content

jarredt/releases

 
 

Repository files navigation

React Native Releases

GitHub Issues Contributions welcome

Stay up-to-date with the release activities of React Native by watching for status reports. Or you can follow along as the release notes are prepared and help reviewing the overall changelog.

React Native’s Release Process

At Facebook React Native is not consumed via released versions, instead they always consume the latest version of the main branch. This means that they are able to iterate fast for their needs; if something is broken the fix is a single commit away.

External users are of course similarly able to consume the latest main version, however this is most likely a too fast moving target for most.

To reconcile these two different use-cases, React Native’s release process is a different one from the one many users are familiar within the JavaScript ecosystem.

The process at a high-level

  1. A branch for a new version is created from main–hereafter referred to as “the stable branch”. Read more ⇒
  2. A release candidate is released from the stable branch, allowing the community to try it out and provide feedback–hereafter referred to as “the RC”. Read more ⇒
  3. Additional changes that have landed in the main branch since the stable branch was originally created and are deemed required for the version to be finalized are cherry-picked onto the stable branch. These can be bug-fixes for previously released versions, including the RC, or changes otherwise deemed an improvement for the version to be finalized, such as UX/DX improvements. Read more ⇒
  4. Steps 2 through 3 are repeated until consensus is reached that the version is good enough to be released as a stable version.
  5. A stable version is released and communications are sent out to the community informing them of the availability of a new stable version and what changes it includes.
  6. Steps 3 through 5 are repeated on the stable branch for bug-fixes only and will result in a patch release. I.e. no release-candidates are published for patch versions.
  7. The entire process is repeated from step 1 for the next minor version, which will include all the changes that were made on the main branch previously but were not yet cherry-picked.

Branch strategy visualization

Branch strategy

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 76.8%
  • TypeScript 23.2%