Socket
Socket
Sign inDemoInstall

@changesets/cli

Package Overview
Dependencies
Maintainers
3
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@changesets/cli - npm Package Compare versions

Comparing version 2.14.1 to 2.15.0

11

CHANGELOG.md
# @changesets/cli
## 2.15.0
### Minor Changes
- [#559](https://github.com/atlassian/changesets/pull/559) [`bb7106d`](https://github.com/atlassian/changesets/commit/bb7106de901b579bff50b317f1ee81919257ee30) Thanks [@Andarist](https://github.com/Andarist)! - Added new `--open` flag to the `add` command. It opens the created changeset with an external editor.
### Patch Changes
- Updated dependencies [[`8b9ac07`](https://github.com/atlassian/changesets/commit/8b9ac076a87eaf9556ec5ede0222a75182095662)]:
- @changesets/assemble-release-plan@4.1.1
## 2.14.1

@@ -4,0 +15,0 @@

43

dist/cli.cjs.dev.js

@@ -13,2 +13,3 @@ 'use strict';

var chalk = require('chalk');
var child_process = require('child_process');
var termSize = require('term-size');

@@ -397,7 +398,9 @@ var enquirer = require('enquirer');

async function add(cwd, {
empty
empty,
open
}, config) {
const packages = await getPackages.getPackages(cwd);
const changesetBase = path__default['default'].resolve(cwd, ".changeset");
let newChangeset, confirmChangeset;
let newChangeset;
let changesetConfirmed = false;

@@ -409,3 +412,3 @@ if (empty) {

};
confirmChangeset = true;
changesetConfirmed = true;
} else {

@@ -419,6 +422,6 @@ const changedPackages = await git.getChangedPackagesSinceRef({

printConfirmationMessage(newChangeset, packages.packages.length > 1);
confirmChangeset = await askConfirm("Is this your desired changeset?");
changesetConfirmed = await askConfirm("Is this your desired changeset?");
}
if (confirmChangeset) {
if (changesetConfirmed) {
const changesetID = await writeChangeset__default['default'](newChangeset, cwd);

@@ -445,3 +448,14 @@

logger.info(chalk__default['default'].blue(path__default['default'].resolve(changesetBase, `${changesetID}.md`)));
const changesetPath = path__default['default'].resolve(changesetBase, `${changesetID}.md`);
logger.info(chalk__default['default'].blue(changesetPath));
if (open) {
// this is really a hack to reuse the logic embedded in `external-editor` related to determining the editor
const externalEditor$1 = new externalEditor.ExternalEditor();
externalEditor$1.cleanup();
child_process.spawn(externalEditor$1.editor.bin, externalEditor$1.editor.args.concat([changesetPath]), {
detached: true,
stdio: "inherit"
});
}
}

@@ -1098,7 +1112,9 @@ }

const {
empty
empty,
open
} = flags; // @ts-ignore if this is undefined, we have already exited
await add(cwd, {
empty
empty,
open
}, config$1);

@@ -1117,3 +1133,4 @@ } else if (input[0] !== "pre" && input.length > 1) {

snapshot,
tag
tag,
open
} = flags;

@@ -1138,3 +1155,4 @@ const deadFlags = ["updateChangelog", "isPublic", "skipCI", "commit"];

await add(cwd, {
empty
empty,
open
}, config$1);

@@ -1275,3 +1293,3 @@ return;

init
add [--empty]
add [--empty] [--open]
version [--ignore]

@@ -1309,2 +1327,5 @@ publish [--otp=code]

type: "string"
},
open: {
type: "boolean"
}

@@ -1311,0 +1332,0 @@ }

"use strict";
var meow = require("meow"), errors = require("@changesets/errors"), logger = require("@changesets/logger"), util = require("util"), fs = require("fs-extra"), path = require("path"), getPackages = require("@manypkg/get-packages"), getDependentsGraph = require("@changesets/get-dependents-graph"), config = require("@changesets/config"), chalk = require("chalk"), termSize = require("term-size"), enquirer = require("enquirer"), externalEditor = require("external-editor"), git = require("@changesets/git"), writeChangeset = require("@changesets/write"), semver = require("semver"), boxen = require("boxen"), outdent = require("outdent"), applyReleasePlan = require("@changesets/apply-release-plan"), readChangesets = require("@changesets/read"), assembleReleasePlan = require("@changesets/assemble-release-plan"), pre$1 = require("@changesets/pre"), pLimit = require("p-limit"), preferredPM = require("preferred-pm"), spawn = require("spawndamnit"), isCI$1 = require("is-ci"), table = require("tty-table"), getReleasePlan = require("@changesets/get-release-plan");
var meow = require("meow"), errors = require("@changesets/errors"), logger = require("@changesets/logger"), util = require("util"), fs = require("fs-extra"), path = require("path"), getPackages = require("@manypkg/get-packages"), getDependentsGraph = require("@changesets/get-dependents-graph"), config = require("@changesets/config"), chalk = require("chalk"), child_process = require("child_process"), termSize = require("term-size"), enquirer = require("enquirer"), externalEditor = require("external-editor"), git = require("@changesets/git"), writeChangeset = require("@changesets/write"), semver = require("semver"), boxen = require("boxen"), outdent = require("outdent"), applyReleasePlan = require("@changesets/apply-release-plan"), readChangesets = require("@changesets/read"), assembleReleasePlan = require("@changesets/assemble-release-plan"), pre$1 = require("@changesets/pre"), pLimit = require("p-limit"), preferredPM = require("preferred-pm"), spawn = require("spawndamnit"), isCI$1 = require("is-ci"), table = require("tty-table"), getReleasePlan = require("@changesets/get-release-plan");

@@ -232,9 +232,9 @@ function _interopDefault(e) {

async function add(cwd, {empty: empty}, config) {
async function add(cwd, {empty: empty, open: open}, config) {
const packages = await getPackages.getPackages(cwd), changesetBase = path__default.default.resolve(cwd, ".changeset");
let newChangeset, confirmChangeset;
let newChangeset, changesetConfirmed = !1;
if (empty) newChangeset = {
releases: [],
summary: ""
}, confirmChangeset = !0; else {
}, changesetConfirmed = !0; else {
const changePackagesName = (await git.getChangedPackagesSinceRef({

@@ -245,5 +245,5 @@ cwd: cwd,

newChangeset = await createChangeset(changePackagesName, packages.packages), printConfirmationMessage(newChangeset, packages.packages.length > 1),
confirmChangeset = await askConfirm("Is this your desired changeset?");
changesetConfirmed = await askConfirm("Is this your desired changeset?");
}
if (confirmChangeset) {
if (changesetConfirmed) {
const changesetID = await writeChangeset__default.default(newChangeset, cwd);

@@ -254,4 +254,11 @@ config.commit ? (await git.add(path__default.default.resolve(changesetBase, changesetID + ".md"), cwd),

logger.warn("WHAT the breaking change is"), logger.warn("WHY the change was made"),
logger.warn("HOW a consumer should update their code")) : logger.log(chalk__default.default.green("If you want to modify or expand on the changeset summary, you can find it here")),
logger.info(chalk__default.default.blue(path__default.default.resolve(changesetBase, changesetID + ".md")));
logger.warn("HOW a consumer should update their code")) : logger.log(chalk__default.default.green("If you want to modify or expand on the changeset summary, you can find it here"));
const changesetPath = path__default.default.resolve(changesetBase, changesetID + ".md");
if (logger.info(chalk__default.default.blue(changesetPath)), open) {
const externalEditor$1 = new externalEditor.ExternalEditor;
externalEditor$1.cleanup(), child_process.spawn(externalEditor$1.editor.bin, externalEditor$1.editor.args.concat([ changesetPath ]), {
detached: !0,
stdio: "inherit"
});
}
}

@@ -612,8 +619,9 @@ }

if (input.length < 1) {
const {empty: empty} = flags;
const {empty: empty, open: open} = flags;
await add(cwd, {
empty: empty
empty: empty,
open: open
}, config$1);
} else if ("pre" !== input[0] && input.length > 1) logger.error("Too many arguments passed to changesets - we only accept the command name as an argument"); else {
const {sinceMaster: sinceMaster, since: since, verbose: verbose, output: output, otp: otp, empty: empty, ignore: ignore, snapshot: snapshot, tag: tag} = flags;
const {sinceMaster: sinceMaster, since: since, verbose: verbose, output: output, otp: otp, empty: empty, ignore: ignore, snapshot: snapshot, tag: tag, open: open} = flags;
switch ([ "updateChangelog", "isPublic", "skipCI", "commit" ].forEach((flag => {

@@ -626,3 +634,4 @@ if (flags[flag]) throw logger.error(`the flag ${flag} has been removed from changesets for version 2`),

return void await add(cwd, {
empty: empty
empty: empty,
open: open
}, config$1);

@@ -695,3 +704,3 @@

const {input: input, flags: flags} = meow__default.default("\n Usage\n $ changesets [command]\n Commands\n init\n add [--empty]\n version [--ignore]\n publish [--otp=code]\n status [--since-master --verbose --output=JSON_FILE.json]\n pre <enter|exit> <tag>\n ", {
const {input: input, flags: flags} = meow__default.default("\n Usage\n $ changesets [command]\n Commands\n init\n add [--empty] [--open]\n version [--ignore]\n publish [--otp=code]\n status [--since-master --verbose --output=JSON_FILE.json]\n pre <enter|exit> <tag>\n ", {
flags: {

@@ -724,2 +733,5 @@ sinceMaster: {

type: "string"
},
open: {
type: "boolean"
}

@@ -726,0 +738,0 @@ }

@@ -11,5 +11,6 @@ import meow from 'meow';

import chalk from 'chalk';
import { spawn } from 'child_process';
import termSize from 'term-size';
import { prompt } from 'enquirer';
import { edit } from 'external-editor';
import { edit, ExternalEditor } from 'external-editor';
import { getChangedPackagesSinceRef, add as add$1, commit, tag } from '@changesets/git';

@@ -26,3 +27,3 @@ import writeChangeset from '@changesets/write';

import preferredPM from 'preferred-pm';
import spawn from 'spawndamnit';
import spawn$1 from 'spawndamnit';
import isCI$1 from 'is-ci';

@@ -375,7 +376,9 @@ import table from 'tty-table';

async function add(cwd, {
empty
empty,
open
}, config) {
const packages = await getPackages(cwd);
const changesetBase = path.resolve(cwd, ".changeset");
let newChangeset, confirmChangeset;
let newChangeset;
let changesetConfirmed = false;

@@ -387,3 +390,3 @@ if (empty) {

};
confirmChangeset = true;
changesetConfirmed = true;
} else {

@@ -397,6 +400,6 @@ const changedPackages = await getChangedPackagesSinceRef({

printConfirmationMessage(newChangeset, packages.packages.length > 1);
confirmChangeset = await askConfirm("Is this your desired changeset?");
changesetConfirmed = await askConfirm("Is this your desired changeset?");
}
if (confirmChangeset) {
if (changesetConfirmed) {
const changesetID = await writeChangeset(newChangeset, cwd);

@@ -423,3 +426,14 @@

info(chalk.blue(path.resolve(changesetBase, `${changesetID}.md`)));
const changesetPath = path.resolve(changesetBase, `${changesetID}.md`);
info(chalk.blue(changesetPath));
if (open) {
// this is really a hack to reuse the logic embedded in `external-editor` related to determining the editor
const externalEditor = new ExternalEditor();
externalEditor.cleanup();
spawn(externalEditor.editor.bin, externalEditor.editor.args.concat([changesetPath]), {
detached: true,
stdio: "inherit"
});
}
}

@@ -569,3 +583,3 @@ }

try {
let result = await spawn("pnpm", ["--version"], {
let result = await spawn$1("pnpm", ["--version"], {
cwd

@@ -593,3 +607,3 @@ });

};
let result = await spawn("npm", ["profile", "get", "--json"], {
let result = await spawn$1("npm", ["profile", "get", "--json"], {
env: Object.assign({}, process.env, envOverride)

@@ -617,3 +631,3 @@ });

};
let result = await spawn("npm", ["info", pkgName, "--json"], {
let result = await spawn$1("npm", ["info", pkgName, "--json"], {
env: Object.assign({}, process.env, envOverride)

@@ -697,3 +711,3 @@ }); // Github package registry returns empty string when calling npm info

stdout
} = await spawn(publishTool.name, ["publish", opts.cwd, "--json", ...publishFlags], {
} = await spawn$1(publishTool.name, ["publish", opts.cwd, "--json", ...publishFlags], {
env: Object.assign({}, process.env, envOverride)

@@ -1080,7 +1094,9 @@ }); // New error handling. NPM's --json option is included alongside the `prepublish and

const {
empty
empty,
open
} = flags; // @ts-ignore if this is undefined, we have already exited
await add(cwd, {
empty
empty,
open
}, config);

@@ -1099,3 +1115,4 @@ } else if (input[0] !== "pre" && input.length > 1) {

snapshot,
tag
tag,
open
} = flags;

@@ -1120,3 +1137,4 @@ const deadFlags = ["updateChangelog", "isPublic", "skipCI", "commit"];

await add(cwd, {
empty
empty,
open
}, config);

@@ -1257,3 +1275,3 @@ return;

init
add [--empty]
add [--empty] [--open]
version [--ignore]

@@ -1291,2 +1309,5 @@ publish [--otp=code]

type: "string"
},
open: {
type: "boolean"
}

@@ -1293,0 +1314,0 @@ }

import { Config } from "@changesets/types";
export default function add(cwd: string, { empty }: {
export default function add(cwd: string, { empty, open }: {
empty?: boolean;
open?: boolean;
}, config: Config): Promise<void>;

@@ -15,2 +15,3 @@ import { AccessType } from "@changesets/types";

tag?: string;
open?: boolean;
};

@@ -17,0 +18,0 @@ export declare type CommandOptions = CliOptions & {

{
"name": "@changesets/cli",
"version": "2.14.1",
"version": "2.15.0",
"description": "Organise your package versioning and publishing to make both contributors and maintainers happy",

@@ -28,3 +28,3 @@ "bin": {

"@changesets/apply-release-plan": "^4.2.0",
"@changesets/assemble-release-plan": "^4.1.0",
"@changesets/assemble-release-plan": "^4.1.1",
"@changesets/config": "^1.5.0",

@@ -31,0 +31,0 @@ "@changesets/errors": "^0.1.4",

@@ -102,3 +102,3 @@ ## @changesets/cli 🦋

```
changeset [--empty]
changeset [--empty] [--open]
```

@@ -109,3 +109,3 @@

```
changeset add [--empty]
changeset add [--empty] [--open]
```

@@ -140,2 +140,4 @@

- `--open` - opens the created changeset in an external editor
### version

@@ -142,0 +144,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc