Add special "ready" prerelease option

This commit is contained in:
Adam Gleitman 2023-09-07 15:20:08 -07:00
Родитель 9ea5583413
Коммит a4ac549b42
2 изменённых файлов: 16 добавлений и 6 удалений

Просмотреть файл

@ -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}.`);

Просмотреть файл

@ -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!
```