/** * This is the main configuration file for Rush. * For full documentation, please see https://rushjs.io */ { "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json", /** * (Required) This specifies the version of the Rush engine to be used in this repo. * Rush's "version selector" feature ensures that the globally installed tool will * behave like this release, regardless of which version is installed globally. * * The common/scripts/install-run-rush.js automation script also uses this version. * * NOTE: If you upgrade to a new major version of Rush, you should replace the "v5" * path segment in the "$schema" field for all your Rush config files. This will ensure * correct error-underlining and tab-completion for editors such as VS Code. */ "rushVersion": "5.182.0", /** * The next field selects which package manager should be installed and determines its version. * Rush installs its own local copy of the package manager to ensure that your build process * is fully isolated from whatever tools are present in the local environment. * * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation * for details about these alternatives. */ "pnpmVersion": "10.27.0", // "npmVersion": "6.14.15", // "yarnVersion": "1.9.4", /** * Older releases of the Node.js engine may be missing features required by your system. * Other releases may have bugs. In particular, the "latest" version will not be a * Long Term Support (LTS) version and is likely to have regressions. * * Specify a SemVer range to ensure developers use a Node.js version that is appropriate * for your repo. * * LTS schedule: https://nodejs.org/en/about/releases/ * LTS versions: https://nodejs.org/en/download/releases/ */ "nodeSupportedVersionRange": ">=22.23.4 <23.0.0 || >=24.22.1 <25.0.0 || >=26.12.1 <27.0.0", /** * If the version check above fails, Rush will display a message showing the current * node version and the supported version range. You can use this setting to provide * additional instructions that will display below the warning, if there's a specific * tool or script you'd like the user to use to get in line with the expected version. */ // "nodeSupportedVersionInstructions": "Run 'nvs use' to switch to the expected node version.", /** * Odd-numbered major versions of Node.js are experimental. Even-numbered releases * spend six months in a stabilization period before the first Long Term Support (LTS) version. * For example, 8.9.0 was the first LTS version of Node.js 8. Pre-LTS versions are not recommended * for production usage because they frequently have bugs. They may cause Rush itself * to malfunction. * * Rush normally prints a warning if it detects a pre-LTS Node.js version. If you are testing * pre-LTS versions in preparation for supporting the first LTS version, you can use this setting * to disable Rush's warning. */ // "suppressNodeLtsWarning": false, /** * Rush normally prints a warning if it detects that the current version is not one published to the * public npmjs.org registry. If you need to block calls to the npm registry, you can use this setting to disable * Rush's check. */ // "suppressRushIsPublicVersionCheck": false, /** * Large monorepos can become intimidating for newcomers if project folder paths don't follow * a consistent and recognizable pattern. When the system allows nested folder trees, * we've found that teams will often use subfolders to create islands that isolate * their work from others ("shipping the org"). This hinders collaboration and code sharing. * * The Rush developers recommend a "category folder" model, where buildable project folders * must always be exactly two levels below the repo root. The parent folder acts as the category. * This provides a basic facility for grouping related projects (e.g. "apps", "libraries", * "tools", "prototypes") while still encouraging teams to organize their projects into * a unified taxonomy. Limiting to 2 levels seems very restrictive at first, but if you have * 20 categories and 20 projects in each category, this scheme can easily accommodate hundreds * of projects. In practice, you will find that the folder hierarchy needs to be rebalanced * occasionally, but if that's painful, it's a warning sign that your development style may * discourage refactoring. Reorganizing the categories should be an enlightening discussion * that brings people together, and maybe also identifies poor coding practices (e.g. file * references that reach into other project's folders without using Node.js module resolution). * * The defaults are projectFolderMinDepth=1 and projectFolderMaxDepth=2. * * To remove these restrictions, you could set projectFolderMinDepth=1 * and set projectFolderMaxDepth to a large number. */ "projectFolderMinDepth": 2, "projectFolderMaxDepth": 2, /** * Today the npmjs.com registry enforces fairly strict naming rules for packages, but in the early * days there was no standard and hardly any enforcement. A few large legacy projects are still using * nonstandard package names, and private registries sometimes allow it. Set "allowMostlyStandardPackageNames" * to true to relax Rush's enforcement of package names. This allows upper case letters and in the future may * relax other rules, however we want to minimize these exceptions. Many popular tools use certain punctuation * characters as delimiters, based on the assumption that they will never appear in a package name; thus if we relax * the rules too much it is likely to cause very confusing malfunctions. * * The default value is false. */ // "allowMostlyStandardPackageNames": true, /** * This feature helps you to review and approve new packages before they are introduced * to your monorepo. For example, you may be concerned about licensing, code quality, * performance, or simply accumulating too many libraries with overlapping functionality. * The approvals are tracked in two config files "browser-approved-packages.json" * and "nonbrowser-approved-packages.json". See the Rush documentation for details. */ "approvedPackagesPolicy": { /** * The review categories allow you to say for example "This library is approved for usage * in prototypes, but not in production code." * * Each project can be associated with one review category, by assigning the "reviewCategory" field * in the "projects" section of rush.json. The approval is then recorded in the files * "common/config/rush/browser-approved-packages.json" and "nonbrowser-approved-packages.json" * which are automatically generated during "rush update". * * Designate categories with whatever granularity is appropriate for your review process, * or you could just have a single category called "default". */ "reviewCategories": [ "libraries", // library projects that ship "tests", // non-shipping test projects "vscode-extensions" // vscode extensions ], /** * A list of NPM package scopes that will be excluded from review. * We recommend to exclude TypeScript typings (the "@types" scope), because * if the underlying package was already approved, this would imply that the typings * are also approved. */ "ignoredNpmScopes": ["@types"] }, /** * If you use Git as your version control system, this section has some additional * optional features you can use. */ "gitPolicy": { /** * Work at a big company? Tired of finding Git commits at work with unprofessional Git * emails such as "beer-lover@my-college.edu"? Rush can validate people's Git email address * before they get started. * * Define a list of regular expressions describing allowable e-mail patterns for Git commits. * They are case-insensitive anchored JavaScript RegExps. Example: ".*@example\.com" * * IMPORTANT: Because these are regular expressions encoded as JSON string literals, * RegExp escapes need two backslashes, and ordinary periods should be "\\.". */ "allowedEmailRegExps": ["[^@]+@users\\.noreply\\.github\\.com"], /** * When Rush reports that the address is malformed, the notice can include an example * of a recommended email. Make sure it conforms to one of the allowedEmailRegExps * expressions. */ "sampleEmail": "example@users.noreply.github.com" /** * The commit message to use when committing changes during 'rush publish'. * * For example, if you want to prevent these commits from triggering a CI build, * you might configure your system's trigger to look for a special string such as "[skip-ci]" * in the commit message, and then customize Rush's message to contain that string. */ // "versionBumpCommitMessage": "Bump versions [skip ci]", /** * The commit message to use when committing changes during 'rush version'. * * For example, if you want to prevent these commits from triggering a CI build, * you might configure your system's trigger to look for a special string such as "[skip-ci]" * in the commit message, and then customize Rush's message to contain that string. */ // "changeLogUpdateCommitMessage": "Update changelogs [skip ci]", /** * The commit message to use when committing changefiles during 'rush change --commit' * * If no commit message is set it will default to 'Rush change' */ // "changefilesCommitMessage": "Rush change" }, "repository": { /** * The URL of this Git repository, used by "rush change" to determine the base branch for your PR. * * The "rush change" command needs to determine which files are affected by your PR diff. * If you merged or cherry-picked commits from the main branch into your PR branch, those commits * should be excluded from this diff (since they belong to some other PR). In order to do that, * Rush needs to know where to find the base branch for your PR. This information cannot be * determined from Git alone, since the "pull request" feature is not a Git concept. Ideally * Rush would use a vendor-specific protocol to query the information from GitHub, Azure DevOps, etc. * But to keep things simple, "rush change" simply assumes that your PR is against the "main" branch * of the Git remote indicated by the repository.url setting in rush.json. If you are working in * a GitHub "fork" of the real repo, this setting will be different from the repository URL of your * your PR branch, and in this situation "rush change" will also automatically invoke "git fetch" * to retrieve the latest activity for the remote main branch. */ "urls": ["https://github.com/microsoft/rushstack.git"], /** * The default branch name. This tells "rush change" which remote branch to compare against. * The default value is "main" */ "defaultBranch": "main" /** * The default remote. This tells "rush change" which remote to compare against if the remote URL is * not set or if a remote matching the provided remote URL is not found. */ // "defaultRemote": "origin" }, /** * Event hooks are customized script actions that Rush executes when specific events occur */ "eventHooks": { /** * A list of shell commands to run before "rush install" or "rush update" starts installation */ "preRushInstall": [ // "common/scripts/pre-rush-install.js" ], /** * A list of shell commands to run after "rush install" or "rush update" finishes installation */ "postRushInstall": [], /** * A list of shell commands to run before "rush build" or "rush rebuild" starts building */ "preRushBuild": [], /** * A list of shell commands to run after "rush build" or "rush rebuild" finishes building */ "postRushBuild": [], /** * A list of shell commands to run before the "rushx" command starts */ "preRushx": [], /** * A list of shell commands to run after the "rushx" command finishes */ "postRushx": [] }, /** * Installation variants allow you to maintain a parallel set of configuration files that can be * used to build the entire monorepo with an alternate set of dependencies. For example, suppose * you upgrade all your projects to use a new release of an important framework, but during a transition period * you intend to maintain compatibility with the old release. In this situation, you probably want your * CI validation to build the entire repo twice: once with the old release, and once with the new release. * * Rush "installation variants" correspond to sets of config files located under this folder: * * common/config/rush/variants/ * * The variant folder can contain an alternate common-versions.json file. Its "preferredVersions" field can be used * to select older versions of dependencies (within a loose SemVer range specified in your package.json files). * To install a variant, run "rush install --variant ". * * For more details and instructions, see this article: https://rushjs.io/pages/advanced/installation_variants/ */ "variants": [ // { // /** // * The folder name for this variant. // */ // "variantName": "old-sdk", // // /** // * An informative description // */ // "description": "Build this repo using the previous release of the SDK" // } ], /** * Rush can collect anonymous telemetry about everyday developer activity such as * success/failure of installs, builds, and other operations. You can use this to identify * problems with your toolchain or Rush itself. THIS TELEMETRY IS NOT SHARED WITH MICROSOFT. * It is written into JSON files in the common/temp folder. It's up to you to write scripts * that read these JSON files and do something with them. These scripts are typically registered * in the "eventHooks" section. */ "telemetryEnabled": true, /** * Allows creation of hotfix changes. This feature is experimental so it is disabled by default. * If this is set, 'rush change' only allows a 'hotfix' change type to be specified. This change type * will be used when publishing subsequent changes from the monorepo. */ // "hotfixChangeEnabled": false, /** * This is an optional, but recommended, list of allowed tags that can be applied to Rush projects * using the "tags" setting in this file. This list is useful for preventing mistakes such as misspelling, * and it also provides a centralized place to document your tags. If "allowedProjectTags" list is * not specified, then any valid tag is allowed. A tag name must be one or more words * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits, * ".", and "@" characters. */ // "allowedProjectTags": [ "tools", "frontend-team", "1.0.0-release" ], /** * (Required) This is the inventory of projects to be managed by Rush. * * Rush does not automatically scan for projects using wildcards, for a few reasons: * 1. Depth-first scans are expensive, particularly when tools need to repeatedly collect the list. * 2. On a caching CI machine, scans can accidentally pick up files left behind from a previous build. * 3. It's useful to have a centralized inventory of all projects and their important metadata. */ "projects": [ // { // /** // * The NPM package name of the project (must match package.json) // */ // "packageName": "my-app", // // /** // * The path to the project folder, relative to the rush.json config file. // */ // "projectFolder": "apps/my-app", // // /** // * This field is only used if "subspacesEnabled" is true in subspaces.json. // * It specifies the subspace that this project belongs to. If omitted, then the // * project belongs to the "default" subspace. // */ // // "subspaceName": "my-subspace", // // /** // * An optional category for usage in the "browser-approved-packages.json" // * and "nonbrowser-approved-packages.json" files. The value must be one of the // * strings from the "reviewCategories" defined above. // */ // "reviewCategory": "production", // // /** // * A list of Rush project names that are to be installed from NPM // * instead of linking to the local project. // * // * If a project's package.json specifies a dependency that is another Rush project // * in the monorepo workspace, normally Rush will locally link its folder instead of // * installing from NPM. If you are using PNPM workspaces, this is indicated by // * a SemVer range such as "workspace:^1.2.3". To prevent mistakes, Rush reports // * an error if the "workspace:" protocol is missing. // * // * Locally linking ensures that regressions are caught as early as possible and is // * a key benefit of monorepos. However there are occasional situations where // * installing from NPM is needed. A classic example is a cyclic dependency. // * Imagine three Rush projects: "my-toolchain" depends on "my-tester", which depends // * on "my-library". Suppose that we add "my-toolchain" to the "devDependencies" // * of "my-library" so it can be built by our toolchain. This cycle creates // * a problem -- Rush can't build a project using a not-yet-built dependency. // * We can solve it by adding "my-toolchain" to the "decoupledLocalDependencies" // * of "my-library", so it builds using the last published release. Choose carefully // * which package to decouple; some choices are much easier to manage than others. // * // * (In older Rush releases, this setting was called "cyclicDependencyProjects".) // */ // "decoupledLocalDependencies": [ // // "my-toolchain" // ], // // /** // * If true, then this project will be ignored by the "rush check" command. // * The default value is false. // */ // // "skipRushCheck": false, // // /** // * A flag indicating that changes to this project will be published to npm, which affects // * the Rush change and publish workflows. The default value is false. // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. // */ // // "shouldPublish": false, // // /** // * Facilitates postprocessing of a project's files prior to publishing. // * // * If specified, the "publishFolder" is the relative path to a subfolder of the project folder. // * The "rush publish" command will publish the subfolder instead of the project folder. The subfolder // * must contain its own package.json file, which is typically a build output. // */ // // "publishFolder": "temp/publish", // // /** // * An optional version policy associated with the project. Version policies are defined // * in "version-policies.json" file. See the "rush publish" documentation for more info. // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. // */ // // "versionPolicyName": "", // // /** // * An optional set of custom tags that can be used to select this project. For example, // * adding "my-custom-tag" will allow this project to be selected by the // * command "rush list --only tag:my-custom-tag". The tag name must be one or more words // * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits, // * ".", and "@" characters. // */ // // "tags": [ "1.0.0-release", "frontend-team" ] // }, // "apps" folder (alphabetical order) { "packageName": "@microsoft/api-documenter", "projectFolder": "apps/api-documenter", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/mcp-server", "projectFolder": "apps/rush-mcp-server", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@microsoft/api-extractor", "projectFolder": "apps/api-extractor", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/cpu-profile-summarizer", "projectFolder": "apps/cpu-profile-summarizer", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft", "projectFolder": "apps/heft", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/lockfile-explorer", "projectFolder": "apps/lockfile-explorer", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/lockfile-explorer-web", "projectFolder": "apps/lockfile-explorer-web", "reviewCategory": "libraries" }, { "packageName": "@rushstack/playwright-browser-tunnel", "projectFolder": "apps/playwright-browser-tunnel", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-themed-ui", "projectFolder": "libraries/rush-themed-ui", "reviewCategory": "libraries" }, { "packageName": "@rushstack/rundown", "projectFolder": "apps/rundown", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@microsoft/rush", "projectFolder": "apps/rush", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-serve-dashboard", "projectFolder": "apps/rush-serve-dashboard", "reviewCategory": "libraries", "shouldPublish": false }, { "packageName": "@rushstack/trace-import", "projectFolder": "apps/trace-import", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/zipsync", "projectFolder": "apps/zipsync", "reviewCategory": "libraries", "shouldPublish": true }, // "build-tests" folder (alphabetical order) { "packageName": "api-documenter-test", "projectFolder": "build-tests/api-documenter-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-documenter-scenarios", "projectFolder": "build-tests/api-documenter-scenarios", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-d-cts-test", "projectFolder": "build-tests/api-extractor-d-cts-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-d-mts-test", "projectFolder": "build-tests/api-extractor-d-mts-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-lib1-test", "projectFolder": "build-tests/api-extractor-lib1-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-lib2-test", "projectFolder": "build-tests/api-extractor-lib2-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-lib3-test", "projectFolder": "build-tests/api-extractor-lib3-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-lib4-test", "projectFolder": "build-tests/api-extractor-lib4-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-lib5-test", "projectFolder": "build-tests/api-extractor-lib5-test", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-scenarios", "projectFolder": "build-tests/api-extractor-scenarios", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-test-01", "projectFolder": "build-tests/api-extractor-test-01", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-test-02", "projectFolder": "build-tests/api-extractor-test-02", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-test-03", "projectFolder": "build-tests/api-extractor-test-03", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-test-04", "projectFolder": "build-tests/api-extractor-test-04", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "api-extractor-test-05", "projectFolder": "build-tests/api-extractor-test-05", "reviewCategory": "tests", "shouldPublish": false, "tags": ["api-extractor-tests"] }, { "packageName": "eslint-7-11-test", "projectFolder": "build-tests/eslint-7-11-test", "reviewCategory": "tests", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/eslint-config"] }, { "packageName": "eslint-7-7-test", "projectFolder": "build-tests/eslint-7-7-test", "reviewCategory": "tests", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/eslint-config"] }, { "packageName": "eslint-7-test", "projectFolder": "build-tests/eslint-7-test", "reviewCategory": "tests", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/eslint-config"] }, { "packageName": "eslint-8-test", "projectFolder": "build-tests/eslint-8-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "eslint-9-test", "projectFolder": "build-tests/eslint-9-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "esm-node-import-test", "projectFolder": "build-tests/esm-node-import-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "eslint-bulk-suppressions-test", "projectFolder": "build-tests/eslint-bulk-suppressions-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "eslint-bulk-suppressions-test-flat", "projectFolder": "build-tests/eslint-bulk-suppressions-test-flat", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "eslint-bulk-suppressions-test-legacy", "projectFolder": "build-tests/eslint-bulk-suppressions-test-legacy", "reviewCategory": "tests", "shouldPublish": false, "cyclicDependencyProjects": ["@rushstack/eslint-config"] }, { "packageName": "package-extractor-test-01", "projectFolder": "build-tests/package-extractor-test-01", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "package-extractor-test-02", "projectFolder": "build-tests/package-extractor-test-02", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "package-extractor-test-03", "projectFolder": "build-tests/package-extractor-test-03", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "package-extractor-test-04", "projectFolder": "build-tests/package-extractor-test-04", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "package-extractor-test-05", "projectFolder": "build-tests/package-extractor-test-05", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "rush-mcp-example-plugin", "projectFolder": "build-tests/rush-mcp-example-plugin", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "run-scenarios-helpers", "projectFolder": "build-tests/run-scenarios-helpers", "reviewCategory": "tests", "shouldPublish": false }, // "build-tests-samples" folder (alphabetical order) { "packageName": "heft-node-basic-tutorial", "projectFolder": "build-tests-samples/heft-node-basic-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-node-jest-tutorial", "projectFolder": "build-tests-samples/heft-node-jest-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-node-rig-tutorial", "projectFolder": "build-tests-samples/heft-node-rig-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-serverless-stack-tutorial", "projectFolder": "build-tests-samples/heft-serverless-stack-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-storybook-v6-react-tutorial", "projectFolder": "build-tests-samples/heft-storybook-v6-react-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-storybook-v9-react-tutorial", "projectFolder": "build-tests-samples/heft-storybook-v9-react-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-storybook-v6-react-tutorial-storykit", "projectFolder": "build-tests-samples/heft-storybook-v6-react-tutorial-storykit", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-storybook-v9-react-tutorial-storykit", "projectFolder": "build-tests-samples/heft-storybook-v9-react-tutorial-storykit", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-storybook-v6-react-tutorial-app", "projectFolder": "build-tests-samples/heft-storybook-v6-react-tutorial-app", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-storybook-v9-react-tutorial-app", "projectFolder": "build-tests-samples/heft-storybook-v9-react-tutorial-app", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-webpack-basic-tutorial", "projectFolder": "build-tests-samples/heft-webpack-basic-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-web-rig-app-tutorial", "projectFolder": "build-tests-samples/heft-web-rig-app-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-web-rig-library-tutorial", "projectFolder": "build-tests-samples/heft-web-rig-library-tutorial", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "packlets-tutorial", "projectFolder": "build-tests-samples/packlets-tutorial", "reviewCategory": "tests", "shouldPublish": false }, // "eslint" folder (alphabetical order) { "packageName": "@rushstack/eslint-bulk", "projectFolder": "eslint/eslint-bulk", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/eslint-config", "projectFolder": "eslint/eslint-config", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "local-eslint-config", "projectFolder": "eslint/local-eslint-config", "reviewCategory": "libraries", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/eslint-patch", "projectFolder": "eslint/eslint-patch", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/eslint-plugin", "projectFolder": "eslint/eslint-plugin", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/eslint-plugin-packlets", "projectFolder": "eslint/eslint-plugin-packlets", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/eslint-plugin-security", "projectFolder": "eslint/eslint-plugin-security", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, // heft-* projects { "packageName": "heft-copy-files-test", "projectFolder": "build-tests/heft-copy-files-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-example-lifecycle-plugin", "projectFolder": "build-tests/heft-example-lifecycle-plugin", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-example-plugin-01", "projectFolder": "build-tests/heft-example-plugin-01", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-example-plugin-02", "projectFolder": "build-tests/heft-example-plugin-02", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-jest-preset-test", "projectFolder": "build-tests/heft-jest-preset-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-jest-reporters-test", "projectFolder": "build-tests/heft-jest-reporters-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-json-schema-typings-plugin-test", "projectFolder": "build-tests/heft-json-schema-typings-plugin-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-fastify-test", "projectFolder": "build-tests/heft-fastify-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-minimal-rig-test", "projectFolder": "build-tests/heft-minimal-rig-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-minimal-rig-usage-test", "projectFolder": "build-tests/heft-minimal-rig-usage-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-node-everything-test", "projectFolder": "build-tests/heft-node-everything-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-node-everything-esm-module-test", "projectFolder": "build-tests/heft-node-everything-esm-module-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-parameter-plugin", "projectFolder": "build-tests/heft-parameter-plugin", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-parameter-plugin-test", "projectFolder": "build-tests/heft-parameter-plugin-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-rspack-everything-test", "projectFolder": "build-tests/heft-rspack-everything-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-sass-test", "projectFolder": "build-tests/heft-sass-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-swc-test", "projectFolder": "build-tests/heft-swc-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-typescript-composite-test", "projectFolder": "build-tests/heft-typescript-composite-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-typescript-v2-test", "projectFolder": "build-tests/heft-typescript-v2-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-typescript-v3-test", "projectFolder": "build-tests/heft-typescript-v3-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-typescript-v4-test", "projectFolder": "build-tests/heft-typescript-v4-test", "reviewCategory": "tests", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/eslint-config"] }, { "packageName": "heft-web-rig-library-test", "projectFolder": "build-tests/heft-web-rig-library-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-webpack4-everything-test", "projectFolder": "build-tests/heft-webpack4-everything-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "heft-webpack5-everything-test", "projectFolder": "build-tests/heft-webpack5-everything-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "hashed-folder-copy-plugin-webpack5-test", "projectFolder": "build-tests/hashed-folder-copy-plugin-webpack5-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "rush-lib-test", "projectFolder": "build-tests-subspace/rush-lib-test", "reviewCategory": "tests", "shouldPublish": false, "subspaceName": "build-tests-subspace" }, { "packageName": "rush-sdk-test", "projectFolder": "build-tests-subspace/rush-sdk-test", "reviewCategory": "tests", "shouldPublish": false, "subspaceName": "build-tests-subspace" }, { "packageName": "typescript-newest-test", "projectFolder": "build-tests-subspace/typescript-newest-test", "reviewCategory": "tests", "shouldPublish": false, "subspaceName": "build-tests-subspace" }, { "packageName": "typescript-v4-test", "projectFolder": "build-tests-subspace/typescript-v4-test", "reviewCategory": "tests", "shouldPublish": false, "subspaceName": "build-tests-subspace" }, { "packageName": "localization-plugin-test-01", "projectFolder": "build-tests/localization-plugin-test-01", "reviewCategory": "tests", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/set-webpack-public-path-plugin"] }, { "packageName": "localization-plugin-test-02", "projectFolder": "build-tests/localization-plugin-test-02", "reviewCategory": "tests", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/set-webpack-public-path-plugin"] }, { "packageName": "localization-plugin-test-03", "projectFolder": "build-tests/localization-plugin-test-03", "reviewCategory": "tests", "shouldPublish": false, "decoupledLocalDependencies": ["@rushstack/set-webpack-public-path-plugin"] }, { "packageName": "rush-amazon-s3-build-cache-plugin-integration-test", "projectFolder": "build-tests/rush-amazon-s3-build-cache-plugin-integration-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "webpack-local-version-test", "projectFolder": "build-tests/webpack-local-version-test", "reviewCategory": "tests", "subspaceName": "build-tests-subspace", "shouldPublish": false }, { "packageName": "rush-lib-declaration-paths-test", "projectFolder": "build-tests/rush-lib-declaration-paths-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "rush-project-change-analyzer-test", "projectFolder": "build-tests/rush-project-change-analyzer-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "rush-package-manager-integration-test", "projectFolder": "build-tests/rush-package-manager-integration-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "rush-redis-cobuild-plugin-integration-test", "projectFolder": "build-tests/rush-redis-cobuild-plugin-integration-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "set-webpack-public-path-plugin-test", "projectFolder": "build-tests/set-webpack-public-path-plugin-test", "reviewCategory": "tests", "shouldPublish": false }, // "heft-plugins" folder (alphabetical order) { "packageName": "@rushstack/heft-api-extractor-plugin", "projectFolder": "heft-plugins/heft-api-extractor-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-dev-cert-plugin", "projectFolder": "heft-plugins/heft-dev-cert-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-isolated-typescript-transpile-plugin", "projectFolder": "heft-plugins/heft-isolated-typescript-transpile-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-jest-plugin", "projectFolder": "heft-plugins/heft-jest-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-json-schema-typings-plugin", "projectFolder": "heft-plugins/heft-json-schema-typings-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-lint-plugin", "projectFolder": "heft-plugins/heft-lint-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-localization-typings-plugin", "projectFolder": "heft-plugins/heft-localization-typings-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-rspack-plugin", "projectFolder": "heft-plugins/heft-rspack-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-sass-plugin", "projectFolder": "heft-plugins/heft-sass-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-sass-load-themed-styles-plugin", "projectFolder": "heft-plugins/heft-sass-load-themed-styles-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-serverless-stack-plugin", "projectFolder": "heft-plugins/heft-serverless-stack-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-static-asset-typings-plugin", "projectFolder": "heft-plugins/heft-static-asset-typings-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-storybook-plugin", "projectFolder": "heft-plugins/heft-storybook-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-typescript-plugin", "projectFolder": "heft-plugins/heft-typescript-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-vscode-extension-plugin", "projectFolder": "heft-plugins/heft-vscode-extension-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-webpack4-plugin", "projectFolder": "heft-plugins/heft-webpack4-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-webpack5-plugin", "projectFolder": "heft-plugins/heft-webpack5-plugin", "reviewCategory": "libraries", "shouldPublish": true }, // "libraries" folder (alphabetical order) { "packageName": "@microsoft/api-extractor-model", "projectFolder": "libraries/api-extractor-model", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/credential-cache", "projectFolder": "libraries/credential-cache", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/debug-certificate-manager", "projectFolder": "libraries/debug-certificate-manager", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/package-extractor", "projectFolder": "libraries/package-extractor", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/problem-matcher", "projectFolder": "libraries/problem-matcher", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/rush-reporter", "projectFolder": "libraries/reporter", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-config-file", "projectFolder": "libraries/heft-config-file", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@microsoft/load-themed-styles", "projectFolder": "libraries/load-themed-styles", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/localization-utilities", "projectFolder": "libraries/localization-utilities", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/lookup-by-path", "projectFolder": "libraries/lookup-by-path", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/module-minifier", "projectFolder": "libraries/module-minifier", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/node-core-library", "projectFolder": "libraries/node-core-library", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/npm-check-fork", "projectFolder": "libraries/npm-check-fork", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/operation-graph", "projectFolder": "libraries/operation-graph", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/rush-daemon", "projectFolder": "libraries/rush-daemon", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-client-core", "projectFolder": "libraries/rush-client-core", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-cli-client", "projectFolder": "apps/rush-cli-client", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/package-deps-hash", "projectFolder": "libraries/package-deps-hash", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rig-package", "projectFolder": "libraries/rig-package", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/worker-pool", "projectFolder": "libraries/worker-pool", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@microsoft/rush-lib", "projectFolder": "libraries/rush-lib", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-sdk", "projectFolder": "libraries/rush-sdk", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@microsoft/rushell", "projectFolder": "libraries/rushell", "reviewCategory": "libraries", "shouldPublish": false }, { "packageName": "@rushstack/rush-daemon-protocol", "projectFolder": "libraries/rush-daemon-protocol", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "rushd-wire-e2e-test", "projectFolder": "build-tests/rushd-wire-e2e-test", "reviewCategory": "tests", "shouldPublish": false }, { "packageName": "@rushstack/rush-daemon-transport", "projectFolder": "libraries/rush-daemon-transport", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-terminal-renderer", "projectFolder": "libraries/rush-terminal-renderer", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/stream-collator", "projectFolder": "libraries/stream-collator", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/terminal", "projectFolder": "libraries/terminal", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/tree-pattern", "projectFolder": "libraries/tree-pattern", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/ts-command-line", "projectFolder": "libraries/ts-command-line", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/heft"] }, { "packageName": "@rushstack/typings-generator", "projectFolder": "libraries/typings-generator", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/vscode-shared", "projectFolder": "vscode-extensions/vscode-shared", "reviewCategory": "libraries", "shouldPublish": false }, // "repo-scripts" folder (alphabetical order) { "packageName": "doc-plugin-rush-stack", "projectFolder": "repo-scripts/doc-plugin-rush-stack", "reviewCategory": "libraries", "shouldPublish": false }, { "packageName": "generate-api-docs", "projectFolder": "repo-scripts/generate-api-docs", "reviewCategory": "libraries", "shouldPublish": false }, { "packageName": "repo-toolbox", "projectFolder": "repo-scripts/repo-toolbox", "reviewCategory": "libraries", "shouldPublish": false }, // "rigs" folder (alphabetical order) { "packageName": "decoupled-local-node-rig", "projectFolder": "rigs/decoupled-local-node-rig", "reviewCategory": "libraries", "shouldPublish": false, "decoupledLocalDependencies": [ "@microsoft/api-extractor", "@rushstack/eslint-config", "@rushstack/eslint-patch", "@rushstack/eslint-plugin", "@rushstack/heft-node-rig", "@rushstack/heft" ] }, { "packageName": "@rushstack/heft-node-rig", "projectFolder": "rigs/heft-node-rig", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-vscode-extension-rig", "projectFolder": "rigs/heft-vscode-extension-rig", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/heft-web-rig", "projectFolder": "rigs/heft-web-rig", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "local-node-rig", "projectFolder": "rigs/local-node-rig", "reviewCategory": "libraries", "shouldPublish": false }, { "packageName": "local-web-rig", "projectFolder": "rigs/local-web-rig", "reviewCategory": "libraries", "shouldPublish": false }, // "rush-plugins" folder (alphabetical order) { "packageName": "@rushstack/rush-amazon-s3-build-cache-plugin", "projectFolder": "rush-plugins/rush-amazon-s3-build-cache-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-azure-storage-build-cache-plugin", "projectFolder": "rush-plugins/rush-azure-storage-build-cache-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-buildxl-graph-plugin", "projectFolder": "rush-plugins/rush-buildxl-graph-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-http-build-cache-plugin", "projectFolder": "rush-plugins/rush-http-build-cache-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-litewatch-plugin", "projectFolder": "rush-plugins/rush-litewatch-plugin", "reviewCategory": "libraries", "shouldPublish": false }, { "packageName": "@rushstack/rush-redis-cobuild-plugin", "projectFolder": "rush-plugins/rush-redis-cobuild-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-resolver-cache-plugin", "projectFolder": "rush-plugins/rush-resolver-cache-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-serve-plugin", "projectFolder": "rush-plugins/rush-serve-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, { "packageName": "@rushstack/rush-bridge-cache-plugin", "projectFolder": "rush-plugins/rush-bridge-cache-plugin", "reviewCategory": "libraries", "versionPolicyName": "rush" }, // "vscode-extensions" folder (alphabetical order) { "packageName": "rushstack", "projectFolder": "vscode-extensions/rush-vscode-extension", "reviewCategory": "vscode-extensions", "tags": ["vsix"] }, { "packageName": "@rushstack/rush-vscode-command-webview", "projectFolder": "vscode-extensions/rush-vscode-command-webview", "reviewCategory": "vscode-extensions", "tags": ["vsix"] }, { "packageName": "debug-certificate-manager", "projectFolder": "vscode-extensions/debug-certificate-manager-vscode-extension", "reviewCategory": "vscode-extensions", "tags": ["vsix"] }, { "packageName": "playwright-local-browser-server", "projectFolder": "vscode-extensions/playwright-local-browser-server-vscode-extension", "reviewCategory": "vscode-extensions", "tags": ["vsix"] }, // "webpack" folder (alphabetical order) { "packageName": "@rushstack/webpack-embedded-dependencies-plugin", "projectFolder": "webpack/webpack-embedded-dependencies-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/webpack-plugin-utilities", "projectFolder": "webpack/webpack-plugin-utilities", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@microsoft/loader-load-themed-styles", "projectFolder": "webpack/loader-load-themed-styles", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@microsoft/webpack5-load-themed-styles-loader", "projectFolder": "webpack/webpack5-load-themed-styles-loader", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/hashed-folder-copy-plugin", "projectFolder": "webpack/hashed-folder-copy-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/loader-raw-script", "projectFolder": "webpack/loader-raw-script", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/webpack-preserve-dynamic-require-plugin", "projectFolder": "webpack/preserve-dynamic-require-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/webpack-deep-imports-plugin", "projectFolder": "webpack/webpack-deep-imports-plugin", "reviewCategory": "libraries", "shouldPublish": false // for now }, { "packageName": "@rushstack/webpack-workspace-resolve-plugin", "projectFolder": "webpack/webpack-workspace-resolve-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/set-webpack-public-path-plugin", "projectFolder": "webpack/set-webpack-public-path-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/webpack4-localization-plugin", "projectFolder": "webpack/webpack4-localization-plugin", "reviewCategory": "libraries", "shouldPublish": true, "decoupledLocalDependencies": ["@rushstack/set-webpack-public-path-plugin"] }, { "packageName": "@rushstack/webpack4-module-minifier-plugin", "projectFolder": "webpack/webpack4-module-minifier-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/webpack5-module-minifier-plugin", "projectFolder": "webpack/webpack5-module-minifier-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/webpack5-localization-plugin", "projectFolder": "webpack/webpack5-localization-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-mcp-docs-plugin", "projectFolder": "rush-plugins/rush-mcp-docs-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-published-versions-json-plugin", "projectFolder": "rush-plugins/rush-published-versions-json-plugin", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-pnpm-kit-v8", "projectFolder": "libraries/rush-pnpm-kit-v8", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-pnpm-kit-v9", "projectFolder": "libraries/rush-pnpm-kit-v9", "reviewCategory": "libraries", "shouldPublish": true }, { "packageName": "@rushstack/rush-pnpm-kit-v10", "projectFolder": "libraries/rush-pnpm-kit-v10", "reviewCategory": "libraries", "shouldPublish": true } ] }