Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .ado/get-next-semver-version.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,14 @@ function getNextVersion(patchVersionPrefix) {

const prerelease = semver.prerelease(releaseVersion);

if (!prerelease) {
if (!prerelease || prerelease[0] === 'ready') {
if (patchVersionPrefix) {
releaseVersion = semver.inc(releaseVersion, 'prerelease', patchVersionPrefix);
}
else {
releaseVersion = semver.inc(releaseVersion, 'patch');
releaseVersion = semver.inc(releaseVersion, 'patch');
}
}

if (prerelease) {
} else {
releaseVersion = semver.inc(releaseVersion, 'prerelease');
if (patchVersionPrefix) {
releaseVersion = releaseVersion.replace(`-${prerelease[0]}.`, `-${prerelease[0]}-${patchVersionPrefix}.`);
Expand Down
14 changes: 13 additions & 1 deletion docs/Releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,17 @@ The Publish flow does the following:
3. Call `prepare-package-for-release` to bump versions, tag the commit, and push to git
4. Call `publish-npm` to publish to NPM the version that was just tagged.
4. Generate the correct NPM `dist-tag` and publish to NPM
5. Commit all changed files and push back to Github
5. Commit all changed files and push back to Github

### Publishing New Versions

Each minor version publishes out of its own branch (e.g., 0.71-stable for react-native-macos 0.71.x). In order to ensure initial releases are properly versioned, we have a special prerelease name called `ready`. This will tell our `get-next-semver-version` script that we're ready to release the next version.

We do this so that our first release will have a proper patch version of 0, as shown by this snippet from an interactive Node.js console:

```js
> semver.inc('0.72.0', 'patch')
'0.72.1' // Not ideal
> semver.inc('0.72.0-ready', 'patch')
'0.72.0' // Better!
```
2 changes: 1 addition & 1 deletion packages/react-native/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-macos",
"version": "0.72.0-0",
"version": "0.72.0-ready",
"bin": "./cli.js",
"description": "React Native for macOS",
"license": "MIT",
Expand Down
Loading