mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
[release] Update publishing scripts to make publishing allowlisted packages easier (#32486)
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