From dacc33ecde6f973b89bc2cbd53a9017f207acf6f Mon Sep 17 00:00:00 2001 From: Mike Cousins <mike@cousins.io> Date: Tue, 16 May 2023 13:20:28 -0400 Subject: [PATCH 1/4] docs: link to npm provenance docs and note required npm version --- .github/workflows/ci-cd.yaml | 9 ++---- README.md | 59 +++++++++++++++++++----------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci-cd.yaml b/.github/workflows/ci-cd.yaml index fad07f9..b5de88e 100644 --- a/.github/workflows/ci-cd.yaml +++ b/.github/workflows/ci-cd.yaml @@ -33,7 +33,7 @@ jobs: - name: Checkout source uses: actions/checkout@v3 - - name: Install Node.js ${{ matrix.node }} + - name: Install Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} @@ -206,13 +206,10 @@ jobs: - name: Checkout source uses: actions/checkout@v3 - - name: Install Node.js ${{ matrix.node-version }} + - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: "18" - - - name: Install latest npm - run: npm install -g npm + node-version: "20" - name: Download publish artifact uses: actions/download-artifact@v3 diff --git a/README.md b/README.md index d858038..7d00230 100644 --- a/README.md +++ b/README.md @@ -99,21 +99,23 @@ jobs: You can set any or all of the following input parameters using `with`: -| Name | Type | Default | Description | -| ------------ | ---------------------- | -------------------------------- | ----------------------------------------------------------------------------- | -| `token` | string | **required** | Authentication token to use with the configured registry. | -| `registry` | string | `https://registry.npmjs.org/` \* | Registry URL to use. | -| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish | -| `tag` | string | `latest` \* | [Distribution tag][npm-tag] to publish to. | -| `access` | `public`, `restricted` | [npm defaults][npm-access] \* | Whether the package should be publicly visible or restricted. | -| `provenance` | boolean | `false` \* | Run `npm publish` with the `--provenance` flag to add provenance statements. | -| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | -| `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | - -\* Default values for these options may be specified using `publishConfig` in `package.json`. +| Name | Type | Default | Description | +| ------------- | ---------------------- | ------------------------------ | -------------------------------------------------------------------------------- | +| `token` | string | **required** | Authentication token to use with the configured registry. | +| `registry` | string | `https://registry.npmjs.org/`¹ | Registry URL to use. | +| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | +| `tag` | string | `latest`¹ | [Distribution tag][npm-tag] to publish to. | +| `access` | `public`, `restricted` | [npm defaults][npm-access]¹ | Whether the package should be publicly visible or restricted. | +| `provenance`² | boolean | `false`¹ | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | +| `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | + +1. May be specified using `publishConfig` in `package.json`. +2. Provenance requires npm `>=9.5.0`. [npm-tag]: https://docs.npmjs.com/cli/v9/commands/npm-publish#tag [npm-access]: https://docs.npmjs.com/cli/v9/commands/npm-publish#access +[provenance]: https://docs.npmjs.com/generating-provenance-statements ### Output @@ -172,20 +174,21 @@ As shown in the example above, you should pass an options object to the `npmPubl import type { Options } from "@jsdevtools/npm-publish"; ``` -| Name | Type | Default | Description | -| -------------------- | ---------------------- | -------------------------------- | ----------------------------------------------------------------------------- | -| `token` | string | **required** | Authentication token to use with the configured registry. | -| `registry` | string, `URL` | `https://registry.npmjs.org/` \* | Registry URL to use. | -| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish | -| `tag` | string | `latest` \* | [Distribution tag][npm-tag] to publish to. | -| `access` | `public`, `restricted` | [npm defaults][npm-access] \* | Whether the package should be publicly visible or restricted. | -| `provenance` | boolean | `false` \* | Run `npm publish` with the `--provenance` flag to add provenance statements. | -| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | -| `dryRun` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | -| `logger` | object | `undefined` | Logging interface with `debug`, `info`, and `error` log methods. | -| `temporaryDirectory` | string | `os.tmpdir()` | Temporary directory to hold a generated `.npmrc` file | - -\* Default values for these options may be specified using `publishConfig` in `package.json`. +| Name | Type | Default | Description | +| -------------------- | ---------------------- | ------------------------------ | -------------------------------------------------------------------------------- | +| `token` | string | **required** | Authentication token to use with the configured registry. | +| `registry` | string, `URL` | `https://registry.npmjs.org/`¹ | Registry URL to use. | +| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | +| `tag` | string | `latest`¹ | [Distribution tag][npm-tag] to publish to. | +| `access` | `public`, `restricted` | [npm defaults][npm-access]¹ | Whether the package should be publicly visible or restricted. | +| `provenance`² | boolean | `false`¹ | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | +| `dryRun` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | +| `logger` | object | `undefined` | Logging interface with `debug`, `info`, and `error` log methods. | +| `temporaryDirectory` | string | `os.tmpdir()` | Temporary directory to hold a generated `.npmrc` file | + +1. May be specified using `publishConfig` in `package.json`. +2. Provenance requires npm `>=9.5.0`. ### Output @@ -224,7 +227,7 @@ npx npm-publish --token YOUR_NPM_AUTH_TOKEN_HERE You can customize your call with options to change the registry, package, etc. ```bash -npm-publish --token YOUR_NPM_AUTH_TOKEN_HERE --registry http://example.com ./path/to/package +npx npm-publish --token YOUR_NPM_AUTH_TOKEN_HERE --registry http://example.com ./path/to/package ``` ### Options @@ -266,7 +269,7 @@ Options: --debug Print debug logs. -v, --version Print the version number. - -h --help Show usage text. + -h, --help Show usage text. Examples: From ea6109aa2224ee746faf7edd057984bb890d844e Mon Sep 17 00:00:00 2001 From: Mike Cousins <mike@cousins.io> Date: Tue, 16 May 2023 13:23:08 -0400 Subject: [PATCH 2/4] fixup: tweak footnote placement --- README.md | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 7d00230..2766fe0 100644 --- a/README.md +++ b/README.md @@ -99,16 +99,16 @@ jobs: You can set any or all of the following input parameters using `with`: -| Name | Type | Default | Description | -| ------------- | ---------------------- | ------------------------------ | -------------------------------------------------------------------------------- | -| `token` | string | **required** | Authentication token to use with the configured registry. | -| `registry` | string | `https://registry.npmjs.org/`¹ | Registry URL to use. | -| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | -| `tag` | string | `latest`¹ | [Distribution tag][npm-tag] to publish to. | -| `access` | `public`, `restricted` | [npm defaults][npm-access]¹ | Whether the package should be publicly visible or restricted. | -| `provenance`² | boolean | `false`¹ | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | -| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | -| `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | +| Name | Type | Default | Description | +| -------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- | +| `token` | string | **required** | Authentication token to use with the configured registry. | +| `registry`¹ | string | `https://registry.npmjs.org/` | Registry URL to use. | +| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | +| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. | +| `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. | +| `provenance`¹² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | +| `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | 1. May be specified using `publishConfig` in `package.json`. 2. Provenance requires npm `>=9.5.0`. @@ -174,18 +174,18 @@ As shown in the example above, you should pass an options object to the `npmPubl import type { Options } from "@jsdevtools/npm-publish"; ``` -| Name | Type | Default | Description | -| -------------------- | ---------------------- | ------------------------------ | -------------------------------------------------------------------------------- | -| `token` | string | **required** | Authentication token to use with the configured registry. | -| `registry` | string, `URL` | `https://registry.npmjs.org/`¹ | Registry URL to use. | -| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | -| `tag` | string | `latest`¹ | [Distribution tag][npm-tag] to publish to. | -| `access` | `public`, `restricted` | [npm defaults][npm-access]¹ | Whether the package should be publicly visible or restricted. | -| `provenance`² | boolean | `false`¹ | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | -| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | -| `dryRun` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | -| `logger` | object | `undefined` | Logging interface with `debug`, `info`, and `error` log methods. | -| `temporaryDirectory` | string | `os.tmpdir()` | Temporary directory to hold a generated `.npmrc` file | +| Name | Type | Default | Description | +| -------------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- | +| `token` | string | **required** | Authentication token to use with the configured registry. | +| `registry`¹ | string, `URL` | `https://registry.npmjs.org/` | Registry URL to use. | +| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | +| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. | +| `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. | +| `provenance`¹² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | +| `dryRun` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | +| `logger` | object | `undefined` | Logging interface with `debug`, `info`, and `error` log methods. | +| `temporaryDirectory` | string | `os.tmpdir()` | Temporary directory to hold a generated `.npmrc` file | 1. May be specified using `publishConfig` in `package.json`. 2. Provenance requires npm `>=9.5.0`. @@ -269,7 +269,7 @@ Options: --debug Print debug logs. -v, --version Print the version number. - -h, --help Show usage text. + -h, --help Show usage text. Examples: From 23c6489188c08e8332713b32af18dbae60c6e1e2 Mon Sep 17 00:00:00 2001 From: Mike Cousins <mike@cousins.io> Date: Tue, 16 May 2023 13:24:39 -0400 Subject: [PATCH 3/4] fixup: tweak footnote placement --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 2766fe0..1028175 100644 --- a/README.md +++ b/README.md @@ -99,16 +99,16 @@ jobs: You can set any or all of the following input parameters using `with`: -| Name | Type | Default | Description | -| -------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- | -| `token` | string | **required** | Authentication token to use with the configured registry. | -| `registry`¹ | string | `https://registry.npmjs.org/` | Registry URL to use. | -| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | -| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. | -| `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. | -| `provenance`¹² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | -| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | -| `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | +| Name | Type | Default | Description | +| --------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- | +| `token` | string | **required** | Authentication token to use with the configured registry. | +| `registry`¹ | string | `https://registry.npmjs.org/` | Registry URL to use. | +| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | +| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. | +| `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. | +| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | +| `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | 1. May be specified using `publishConfig` in `package.json`. 2. Provenance requires npm `>=9.5.0`. @@ -181,7 +181,7 @@ import type { Options } from "@jsdevtools/npm-publish"; | `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | | `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. | | `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. | -| `provenance`¹² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | | `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | | `dryRun` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | | `logger` | object | `undefined` | Logging interface with `debug`, `info`, and `error` log methods. | From 458c86dcc96d00d20b8bc40a1ae9966eb0d7b75a Mon Sep 17 00:00:00 2001 From: Mike Cousins <mike@cousins.io> Date: Tue, 16 May 2023 13:27:52 -0400 Subject: [PATCH 4/4] fixup: tweak footnote placement --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1028175..e673938 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ You can set any or all of the following input parameters using `with`: | `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | | `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. | | `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. | -| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | | `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | | `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | @@ -181,7 +181,7 @@ import type { Options } from "@jsdevtools/npm-publish"; | `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. | | `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. | | `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. | -| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | +| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. | | `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. | | `dryRun` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. | | `logger` | object | `undefined` | Logging interface with `debug`, `info`, and `error` log methods. |