diff --git a/.changeset/young-queens-add.md b/.changeset/young-queens-add.md new file mode 100644 index 000000000..63d7b3908 --- /dev/null +++ b/.changeset/young-queens-add.md @@ -0,0 +1,5 @@ +--- +"@changesets/cli": patch +--- + +Ignored packages are no longer listed when adding a changeset. diff --git a/packages/cli/src/commands/add/__tests__/add.ts b/packages/cli/src/commands/add/__tests__/add.ts index 25f4934c4..d63be8326 100644 --- a/packages/cli/src/commands/add/__tests__/add.ts +++ b/packages/cli/src/commands/add/__tests__/add.ts @@ -204,4 +204,18 @@ describe("Changesets", () => { }) ); }); + it("should not include ignored packages in the prompt", async () => { + const cwd = await f.copy("internal-dependencies"); + + mockUserResponses({ releases: { "pkg-a": "patch" } }); + await addChangeset( + cwd, + { empty: false }, + { ...defaultConfig, ignore: ["pkg-b"] } + ); + + // @ts-ignore + const { choices } = askCheckboxPlus.mock.calls[0][1][0]; + expect(choices).toEqual(["pkg-a", "pkg-c"]); + }); }); diff --git a/packages/cli/src/commands/add/index.ts b/packages/cli/src/commands/add/index.ts index e084a2b89..492cd6840 100644 --- a/packages/cli/src/commands/add/index.ts +++ b/packages/cli/src/commands/add/index.ts @@ -23,7 +23,9 @@ export default async function add( { empty, open }: { empty?: boolean; open?: boolean }, config: Config ) { - const packages = await getPackages(cwd); + const packages = (await getPackages(cwd)).packages.filter( + pkg => !config.ignore.includes(pkg.packageJson.name) + ); const changesetBase = path.resolve(cwd, ".changeset"); let newChangeset: UnwrapPromise>; @@ -39,10 +41,11 @@ export default async function add( ref: config.baseBranch }); const changePackagesName = changedPackages - .filter(a => a) - .map(pkg => pkg.packageJson.name); - newChangeset = await createChangeset(changePackagesName, packages.packages); - printConfirmationMessage(newChangeset, packages.packages.length > 1); + .map(pkg => pkg.packageJson.name) + .filter(pkgName => config.ignore.includes(pkgName)); + + newChangeset = await createChangeset(changePackagesName, packages); + printConfirmationMessage(newChangeset, packages.length > 1); if (!newChangeset.confirmed) { newChangeset = {