diff --git a/scripts/bump-oss-version.js b/scripts/bump-oss-version.js index b6c7d0daa9b..b8fe500a621 100755 --- a/scripts/bump-oss-version.js +++ b/scripts/bump-oss-version.js @@ -15,7 +15,7 @@ * After changing the files it makes a commit and tags it. * All you have to do is push changes to remote and CI will make a new build. */ - +const fs = require('fs'); const { cat, echo, @@ -32,15 +32,15 @@ let argv = minimist(process.argv.slice(2), { }); // - check we are in release branch, e.g. 0.33-stable -let branch = exec(`git symbolic-ref --short HEAD`, {silent: true}).stdout.trim(); +let branch = exec('git symbolic-ref --short HEAD', {silent: true}).stdout.trim(); -if (branch.indexOf(`-stable`) === -1) { - echo(`You must be in 0.XX-stable branch to bump a version`); +if (branch.indexOf('-stable') === -1) { + echo('You must be in 0.XX-stable branch to bump a version'); exit(1); } // e.g. 0.33 -let versionMajor = branch.slice(0, branch.indexOf(`-stable`)); +let versionMajor = branch.slice(0, branch.indexOf('-stable')); // - check that argument version matches branch // e.g. 0.33.1 or 0.33.0-rc4 @@ -58,34 +58,43 @@ if (!match) { } let [, major, minor, patch, prerelease] = match; -cat('scripts/versiontemplates/ReactNativeVersion.java.template') - .replace('${major}', major) - .replace('${minor}', minor) - .replace('${patch}', patch) - .replace('${prerelease}', prerelease !== undefined ? `"${prerelease}"` : 'null') - .to('ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java'); +fs.writeFileSync( + 'ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java', + cat('scripts/versiontemplates/ReactNativeVersion.java.template') + .replace('${major}', major) + .replace('${minor}', minor) + .replace('${patch}', patch) + .replace('${prerelease}', prerelease !== undefined ? `"${prerelease}"` : 'null'), + 'utf-8' +); -cat('scripts/versiontemplates/RCTVersion.h.template') - .replace('${major}', `@(${major})`) - .replace('${minor}', `@(${minor})`) - .replace('${patch}', `@(${patch})`) - .replace('${prerelease}', prerelease !== undefined ? `@"${prerelease}"` : '[NSNull null]') - .to('React/Base/RCTVersion.h'); +fs.writeFileSync( + 'React/Base/RCTVersion.h', + cat('scripts/versiontemplates/RCTVersion.h.template') + .replace('${major}', `@(${major})`) + .replace('${minor}', `@(${minor})`) + .replace('${patch}', `@(${patch})`) + .replace('${prerelease}', prerelease !== undefined ? `@"${prerelease}"` : '[NSNull null]'), + 'utf-8' +); -cat('scripts/versiontemplates/ReactNativeVersion.js.template') - .replace('${major}', major) - .replace('${minor}', minor) - .replace('${patch}', patch) - .replace('${prerelease}', prerelease !== undefined ? `'${prerelease}'` : 'null') - .to('Libraries/Core/ReactNativeVersion.js'); +fs.writeFileSync( + 'Libraries/Core/ReactNativeVersion.js', + cat('scripts/versiontemplates/ReactNativeVersion.js.template') + .replace('${major}', major) + .replace('${minor}', minor) + .replace('${patch}', patch) + .replace('${prerelease}', prerelease !== undefined ? `'${prerelease}'` : 'null'), + 'utf-8' +); -let packageJson = JSON.parse(cat(`package.json`)); +let packageJson = JSON.parse(cat('package.json')); packageJson.version = version; -JSON.stringify(packageJson, null, 2).to(`package.json`); +fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2), 'utf-8'); // - change ReactAndroid/gradle.properties -if (sed(`-i`, /^VERSION_NAME=.*/, `VERSION_NAME=${version}`, `ReactAndroid/gradle.properties`).code) { - echo(`Couldn't update version for Gradle`); +if (sed('-i', /^VERSION_NAME=.*/, `VERSION_NAME=${version}`, 'ReactAndroid/gradle.properties').code) { + echo('Couldn\'t update version for Gradle'); exit(1); } @@ -93,23 +102,23 @@ if (sed(`-i`, /^VERSION_NAME=.*/, `VERSION_NAME=${version}`, `ReactAndroid/gradl let numberOfChangedLinesWithNewVersion = exec(`git diff -U0 | grep '^[+]' | grep -c ${version} `, {silent: true}) .stdout.trim(); if (+numberOfChangedLinesWithNewVersion !== 2) { - echo(`Failed to update all the files. package.json and gradle.properties must have versions in them`); - echo(`Fix the issue, revert and try again`); - exec(`git diff`); + echo('Failed to update all the files. package.json and gradle.properties must have versions in them'); + echo('Fix the issue, revert and try again'); + exec('git diff'); exit(1); } // - make commit [0.21.0-rc] Bump version numbers if (exec(`git commit -a -m "[${version}] Bump version numbers"`).code) { - echo(`failed to commit`); + echo('failed to commit'); exit(1); } // - add tag v0.21.0-rc if (exec(`git tag v${version}`).code) { echo(`failed to tag the commit with v${version}, are you sure this release wasn't made earlier?`); - echo(`You may want to rollback the last commit`); - echo(`git reset --hard HEAD~1`); + echo('You may want to rollback the last commit'); + echo('git reset --hard HEAD~1'); exit(1); } @@ -118,10 +127,10 @@ let remote = argv.remote; exec(`git push ${remote} v${version}`); // Tag latest if doing stable release -if (version.indexOf(`rc`) === -1) { - exec(`git tag -d latest`); +if (version.indexOf('rc') === -1) { + exec('git tag -d latest'); exec(`git push ${remote} :latest`); - exec(`git tag latest`); + exec('git tag latest'); exec(`git push ${remote} latest`); }