mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
This eliminates the gap in a reproducer for the React DevTools browser
extension from the source code that we submit to Firefox extension
stores.
We use the commit hash as part of the Backend version, here:
2cfb221937/packages/react-devtools-extensions/utils.js (L26-L38)
The problem is that we archive the source code for Mozilla extension
store reviews and there is no git. But since we still download the React
sources from the CI, we could reuse the hash from `build/COMMIT_HASH`
file.
63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const {execSync} = require('child_process');
|
|
const {existsSync, readFileSync} = require('fs');
|
|
const {resolve} = require('path');
|
|
|
|
const GITHUB_URL = 'https://github.com/facebook/react';
|
|
|
|
function getGitCommit() {
|
|
try {
|
|
return execSync('git show -s --no-show-signature --format=%h')
|
|
.toString()
|
|
.trim();
|
|
} catch (error) {
|
|
// Mozilla runs this command from a git archive.
|
|
// In that context, there is no Git context.
|
|
// Using the commit hash specified to download-experimental-build.js script as a fallback.
|
|
|
|
// Try to read from build/COMMIT_SHA file
|
|
const commitShaPath = resolve(__dirname, '..', '..', 'build', 'COMMIT_SHA');
|
|
if (!existsSync(commitShaPath)) {
|
|
throw new Error(
|
|
'Could not find build/COMMIT_SHA file. Did you run scripts/release/download-experimental-build.js script?',
|
|
);
|
|
}
|
|
|
|
try {
|
|
const commitHash = readFileSync(commitShaPath, 'utf8').trim();
|
|
// Return short hash (first 7 characters) to match abbreviated commit hash format
|
|
return commitHash.slice(0, 7);
|
|
} catch (readError) {
|
|
throw new Error(
|
|
`Failed to read build/COMMIT_SHA file: ${readError.message}`,
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
function getVersionString(packageVersion = null) {
|
|
if (packageVersion == null) {
|
|
packageVersion = JSON.parse(
|
|
readFileSync(
|
|
resolve(__dirname, '..', 'react-devtools-core', './package.json'),
|
|
),
|
|
).version;
|
|
}
|
|
|
|
const commit = getGitCommit();
|
|
|
|
return `${packageVersion}-${commit}`;
|
|
}
|
|
|
|
module.exports = {
|
|
GITHUB_URL,
|
|
getGitCommit,
|
|
getVersionString,
|
|
};
|