build-tools v0.13.0
The 0.13 build-tools release includes a new command, flub exec
, and various bug fixes. These release notes
cover the major changes in this release.
✨ Features
flub exec
runs shell commands in the context of repo projects
The flub exec
command can be used to execute shell commands in the context of packages or release groups in the repo.
The following example runs pnpm -r remove @rushstack/eslint-config
on all independent packages and all release group root packages:
flub exec --all --releaseGroupRoots "pnpm -r remove @rushstack/eslint-config"
check policy
has a setting to ignore single-package pnpm workspaces
pnpm does not support nesting packages under a workspace that is not managed by the workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the package individually like one might expect.
Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy for our independent packages as well. We put a workspace file in each independent package so pnpm treats the project as a one-package workspace.
However, for check policy
, we need to be able to treat these single-package workspaces differently. In particular we
don't want to enforce the preinstall script that we use in release group roots. There is now a setting that contains a list of packages that are single-package workspaces.
🐛 Bug fixes
This list only includes notable bug fixes. See the changelog for a full list of fixes in this release.
check policy
now uses the correct indentation when editing package.json files
Previously the indentation was changed to spaces when check policy was run. This has been corrected.