mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
[release] Update publishing scripts to make publishing allowlisted packages easier
It's getting unwieldy to list every single package to skip in these commands when you only want to publish one, ie eslint-plugin-react-hooks. This adds a new `onlyPackages` and `publishVersion` option to the publish commands to make that easier.
This commit is contained in:
@@ -13,6 +13,13 @@ const paramDefinitions = [
|
||||
'Skip NPM and use the build already present in "build/node_modules".',
|
||||
defaultValue: false,
|
||||
},
|
||||
{
|
||||
name: 'onlyPackages',
|
||||
type: String,
|
||||
multiple: true,
|
||||
description: 'Packages to include in publishing',
|
||||
defaultValue: [],
|
||||
},
|
||||
{
|
||||
name: 'skipPackages',
|
||||
type: String,
|
||||
|
||||
@@ -28,6 +28,9 @@ const run = async () => {
|
||||
|
||||
params.packages = await getPublicPackages(isExperimental);
|
||||
params.packages = params.packages.filter(packageName => {
|
||||
if (params.onlyPackages.length > 0) {
|
||||
return params.onlyPackages.includes(packageName);
|
||||
}
|
||||
return !params.skipPackages.includes(packageName);
|
||||
});
|
||||
|
||||
|
||||
@@ -19,6 +19,13 @@ const paramDefinitions = [
|
||||
description: 'NPM tags to point to the new release.',
|
||||
defaultValue: ['untagged'],
|
||||
},
|
||||
{
|
||||
name: 'onlyPackages',
|
||||
type: String,
|
||||
multiple: true,
|
||||
description: 'Packages to include in publishing',
|
||||
defaultValue: [],
|
||||
},
|
||||
{
|
||||
name: 'skipPackages',
|
||||
type: String,
|
||||
@@ -32,6 +39,11 @@ const paramDefinitions = [
|
||||
description: 'Run in automated environment, without interactive prompts.',
|
||||
defaultValue: false,
|
||||
},
|
||||
{
|
||||
name: 'publishVersion',
|
||||
type: String,
|
||||
description: 'Version to publish',
|
||||
},
|
||||
];
|
||||
|
||||
module.exports = () => {
|
||||
|
||||
@@ -23,14 +23,20 @@ const run = async () => {
|
||||
try {
|
||||
const params = parseParams();
|
||||
|
||||
const version = readJsonSync(
|
||||
'./build/node_modules/react/package.json'
|
||||
).version;
|
||||
const version =
|
||||
params.publishVersion ??
|
||||
readJsonSync('./build/node_modules/react/package.json').version;
|
||||
const isExperimental = version.includes('experimental');
|
||||
|
||||
params.cwd = join(__dirname, '..', '..');
|
||||
params.packages = await getPublicPackages(isExperimental);
|
||||
|
||||
if (params.onlyPackages.length > 0) {
|
||||
params.packages = params.packages.filter(packageName => {
|
||||
return params.onlyPackages.includes(packageName);
|
||||
});
|
||||
}
|
||||
|
||||
// Pre-filter any skipped packages to simplify the following commands.
|
||||
// As part of doing this we can also validate that none of the skipped packages were misspelled.
|
||||
params.skipPackages.forEach(packageName => {
|
||||
|
||||
Reference in New Issue
Block a user