mirror of
https://github.com/react/react-native.git
synced 2026-09-28 13:23:09 +08:00
Normalise shell name/version strings, add commit hash when prebuilt (#53480)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53480 Changelog: [Internal] Improves the way `--version` and the User-Agent header work in `debugger-shell`. * The same app name and version string format will be used across the `dev` and `prebuilt` flavours. Previously, `dev` would report itself as being `Electron v37.2.6` while `prebuilt` would report `react-native/debugger-shell v0.82.0-main`. * `prebuilt` now also reports the original Meta-internal commit hash as a suffix `-rFBS..........` added to the semver string taken from `package.json`, while `dev` will have a `-dev` suffix in the same place. * We do **not** modify the version in `package.json` during the build, nor do we pass the commit hash to `electron/packager`, because this would impose inconvenient platform-specific restrictions on the version string's format. Reviewed By: huntie Differential Revision: D81120181 fbshipit-source-id: e730dd35da78dfbb8de326f9a3ab76b747fdb0b3
This commit is contained in:
committed by
Facebook GitHub Bot
parent
7eb3536728
commit
adf1b62c76
@@ -15,14 +15,23 @@ try {
|
||||
} catch {
|
||||
isMetaInternal = false;
|
||||
}
|
||||
|
||||
let additionalConfig /*: $ReadOnly<{
|
||||
appVersionHash: ?string,
|
||||
}> */ = {
|
||||
appVersionHash: null,
|
||||
};
|
||||
|
||||
if (isMetaInternal) {
|
||||
// $FlowFixMe[cannot-resolve-module] - not resolvable in OSS
|
||||
require('./metainternal/build-binary-setup');
|
||||
({additionalConfig} = require('./metainternal/build-binary-setup'));
|
||||
}
|
||||
|
||||
const {packager} = require('@electron/packager');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const signedsource = require('signedsource');
|
||||
const util = require('util');
|
||||
|
||||
const APP_NAME = 'React Native DevTools';
|
||||
const COMPANY_NAME = 'Meta Platforms Technologies LLC';
|
||||
@@ -50,15 +59,20 @@ async function main() {
|
||||
'dist/node',
|
||||
'metainternal/build-mac',
|
||||
'__tests__',
|
||||
'README.md',
|
||||
].map(
|
||||
dirRelativeToPackageRoot =>
|
||||
path.join(PACKAGE_ROOT, dirRelativeToPackageRoot) + path.sep,
|
||||
);
|
||||
const IGNORE_FILES = ['BUCK'].map(fileRelativeToPackageRoot =>
|
||||
const IGNORE_FILES = [
|
||||
'BUCK',
|
||||
'README.md',
|
||||
'dist/electron/BuildInfo.js.tpl',
|
||||
].map(fileRelativeToPackageRoot =>
|
||||
path.join(PACKAGE_ROOT, fileRelativeToPackageRoot),
|
||||
);
|
||||
|
||||
await writeBuildInfo();
|
||||
|
||||
await packager({
|
||||
dir: PACKAGE_ROOT,
|
||||
icon: path.join(PACKAGE_ROOT, 'src/electron/resources/icon'),
|
||||
@@ -86,6 +100,25 @@ async function main() {
|
||||
});
|
||||
}
|
||||
|
||||
async function writeBuildInfo() {
|
||||
const template = await fs.promises.readFile(
|
||||
path.join(PACKAGE_ROOT, 'src/electron/BuildInfo.js.tpl'),
|
||||
'utf8',
|
||||
);
|
||||
const buildInfo = signedsource.signFile(
|
||||
util.format(
|
||||
template,
|
||||
signedsource.getSigningToken(),
|
||||
// revision
|
||||
JSON.stringify(additionalConfig.appVersionHash),
|
||||
),
|
||||
);
|
||||
await fs.promises.writeFile(
|
||||
path.join(PACKAGE_ROOT, 'dist/electron/BuildInfo.js'),
|
||||
buildInfo,
|
||||
);
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main().catch(err => {
|
||||
console.error(err);
|
||||
|
||||
Reference in New Issue
Block a user