MetaMask / action-npm-publish

GitHub Action to publish to NPM
MIT License
8 stars 6 forks source link

Output too noisy, particularly for monorepos #95

Open mcmire opened 1 week ago

mcmire commented 1 week ago

As an NPM admin, it is my job to review the dry-run output for a project in order to approve a release. However, the output for this action is too noisy. This is mainly due to the fact that +x is still enabled, but the output is also a bit disorganized. This is not a huge deal for libraries, but for monorepos, which could contain many packages, it makes review unnecessarily difficult. One must have knowledge of what is important and what is not, and details could be missed.

Ideally, the output should make it very clear what actions are about to be performed (or not performed) and which packages are being published and which are not. And all actions should be grouped by package if possible instead of being divided up. Finally, the output should provide instructions to assist the reviewer.

Because this action has additional steps after the "Dry Run Publish" step, perhaps it makes more sense to provide a step at the very end which summarizes what happened instead of trying to clean up scripts/publish.sh or scripts/report.sh. Then we would ask people to look at this step instead of "Dry Run Publish" during review. This would allow us to create the output we want.

mcmire commented 1 week ago

For a monorepo, it would be great if the dry run summary looked like this:

DRY-RUN MODE IS ENABLED. NO PACKAGES WILL BE PUBLISHED.

The following packages will be included in this release:

- `@metamask/network-controller` 22.0.0
- `@metamask/notification-services-controller` 0.12.0

== @metamask/network-controller ==

An archive has been generated which represents the new version of the package to be published.

Please review the list of files in the archive and let the release author know if there are any that should be excluded from publishing (e.g. test files).

- CHANGELOG.md
- LICENSE
- README.md
- dist/NetworkController.cjs
- dist/NetworkController.cjs.map
- dist/NetworkController.d.cts
- dist/NetworkController.d.cts.map
- dist/NetworkController.d.mts
- dist/NetworkController.d.mts.map
- dist/NetworkController.mjs
- dist/NetworkController.mjs.map
- dist/constants.cjs
- dist/constants.cjs.map
- dist/constants.d.cts
- dist/constants.d.cts.map
- dist/constants.d.mts
- dist/constants.d.mts.map
- dist/constants.mjs
- dist/constants.mjs.map
- dist/create-auto-managed-network-client.cjs
- dist/create-auto-managed-network-client.cjs.map
- dist/create-auto-managed-network-client.d.cts
- dist/create-auto-managed-network-client.d.cts.map
- dist/create-auto-managed-network-client.d.mts
- dist/create-auto-managed-network-client.d.mts.map
- dist/create-auto-managed-network-client.mjs
- dist/create-auto-managed-network-client.mjs.map
- dist/create-network-client.cjs
- dist/create-network-client.cjs.map
- dist/create-network-client.d.cts
- dist/create-network-client.d.cts.map
- dist/create-network-client.d.mts
- dist/create-network-client.d.mts.map
- dist/create-network-client.mjs
- dist/create-network-client.mjs.map
- dist/index.cjs
- dist/index.cjs.map
- dist/index.d.cts
- dist/index.d.cts.map
- dist/index.d.mts
- dist/index.d.mts.map
- dist/index.mjs
- dist/index.mjs.map
- dist/logger.cjs
- dist/logger.cjs.map
- dist/logger.d.cts
- dist/logger.d.cts.map
- dist/logger.d.mts
- dist/logger.d.mts.map
- dist/logger.mjs
- dist/logger.mjs.map
- dist/types.cjs
- dist/types.cjs.map
- dist/types.d.cts
- dist/types.d.cts.map
- dist/types.d.mts
- dist/types.d.mts.map
- dist/types.mjs
- dist/types.mjs.map
- package.json

View the complete diff between `@metamask/network-controller` 21.0.0 (latest) and 22.0.0 (to-be-published):

https://github.com/MetaMask/core/actions/runs/11485936994/artifacts/2095263464

== @metamask/notification-services-controller ==

An archive has been generated which represents the new version of the package to be published.

Please review the list of files in the archive and let the release author know if there are any that should be excluded from publishing (e.g. test files).

- CHANGELOG.md
- LICENSE
- README.md
- dist/NotificationServicesController/NotificationServicesController.cjs
- dist/NotificationServicesController/NotificationServicesController.cjs.map
- dist/NotificationServicesController/NotificationServicesController.d.cts
- dist/NotificationServicesController/NotificationServicesController.d.cts.map
- dist/NotificationServicesController/NotificationServicesController.d.mts
- dist/NotificationServicesController/NotificationServicesController.d.mts.map
- dist/NotificationServicesController/NotificationServicesController.mjs
- dist/NotificationServicesController/NotificationServicesController.mjs.map
- dist/NotificationServicesController/__fixtures__/index.cjs
- dist/NotificationServicesPushController/utils/get-notification-data.cjs.map
- dist/NotificationServicesPushController/utils/get-notification-data.d.cts
- dist/NotificationServicesPushController/utils/get-notification-data.d.cts.map
- dist/NotificationServicesPushController/utils/get-notification-data.d.mts
- dist/NotificationServicesPushController/utils/get-notification-data.d.mts.map
- dist/NotificationServicesPushController/utils/get-notification-data.mjs
- dist/NotificationServicesPushController/utils/get-notification-data.mjs.map
- dist/NotificationServicesPushController/utils/get-notification-message.cjs
- dist/NotificationServicesPushController/utils/get-notification-message.cjs.map
- dist/NotificationServicesPushController/utils/get-notification-message.d.cts
- dist/NotificationServicesPushController/utils/get-notification-message.d.cts.map
- dist/NotificationServicesPushController/utils/get-notification-message.d.mts
- dist/NotificationServicesPushController/utils/get-notification-message.d.mts.map
- dist/NotificationServicesPushController/utils/get-notification-message.mjs
- dist/NotificationServicesPushController/utils/get-notification-message.mjs.map
- dist/NotificationServicesPushController/utils/index.cjs
- dist/NotificationServicesPushController/utils/index.cjs.map
- dist/NotificationServicesPushController/utils/index.d.cts
- dist/NotificationServicesPushController/utils/index.d.cts.map
- dist/NotificationServicesPushController/utils/index.d.mts
- dist/NotificationServicesPushController/utils/index.d.mts.map
- dist/NotificationServicesPushController/utils/index.mjs
- dist/NotificationServicesPushController/utils/index.mjs.map
- dist/index.cjs
- dist/index.cjs.map
- dist/index.d.cts
- dist/index.d.cts.map
- dist/index.d.mts
- dist/index.d.mts.map
- dist/index.mjs
- dist/index.mjs.map
- dist/shared/to-raw-notification.cjs
- dist/shared/to-raw-notification.cjs.map
- dist/shared/to-raw-notification.d.cts
- dist/shared/to-raw-notification.d.cts.map
- dist/shared/to-raw-notification.d.mts
- dist/shared/to-raw-notification.d.mts.map
- dist/shared/to-raw-notification.mjs
- dist/shared/to-raw-notification.mjs.map
- notification-services/mocks/package.json
- notification-services/package.json
- notification-services/ui/package.json
- package.json
- push-services/mocks/package.json
- push-services/package.json

View the complete diff between `@metamask/notification-services-controller` 0.11.0 (latest) and 0.12.0 (to-be-published):

https://github.com/MetaMask/core/actions/runs/11483380348/artifacts/2094472251

For a polyrepo, the output could be simplified slightly:

DRY-RUN MODE IS ENABLED. NOTHING WILL BE PUBLISHED.

An archive has been generated which includes the list of files to be published.

Please review this list and let the release author know if there are any files that should be excluded from publishing (e.g. test files).

- CHANGELOG.md
- LICENSE
- README.md
- dist/assert.cjs
- dist/assert.cjs.map
- dist/assert.d.cts
- dist/assert.d.cts.map
- dist/assert.d.mts
- dist/assert.d.mts.map
- dist/assert.mjs
- dist/assert.mjs.map
- dist/base64.cjs
- dist/base64.cjs.map
- dist/keyring.mjs
- dist/keyring.mjs.map
- dist/logging.cjs
- dist/logging.cjs.map
- dist/logging.d.cts
- dist/logging.d.cts.map
- dist/logging.d.mts
- dist/logging.d.mts.map
- dist/logging.mjs
- dist/logging.mjs.map
- dist/misc.cjs
- dist/misc.cjs.map
- dist/misc.d.cts
- dist/misc.d.cts.map
- dist/misc.d.mts
- dist/misc.d.mts.map
- dist/misc.mjs
- dist/misc.mjs.map
- dist/node.cjs
- dist/node.cjs.map
- dist/node.d.cts
- dist/node.d.cts.map
- dist/node.d.mts
- dist/node.d.mts.map
- dist/node.mjs
- dist/node.mjs.map
- dist/number.cjs
- dist/number.cjs.map
- dist/number.d.cts
- dist/number.d.cts.map
- dist/number.d.mts
- dist/number.d.mts.map
- dist/number.mjs
- dist/number.mjs.map
- dist/opaque.cjs
- dist/opaque.cjs.map
- dist/opaque.d.cts
- dist/opaque.d.cts.map
- dist/opaque.d.mts
- dist/opaque.d.mts.map
- dist/opaque.mjs
- dist/opaque.mjs.map
- dist/promise.cjs
- dist/promise.cjs.map
- dist/promise.d.cts
- dist/promise.d.cts.map
- dist/promise.d.mts
- dist/promise.d.mts.map
- dist/promise.mjs
- dist/promise.mjs.map
- dist/time.cjs
- dist/time.cjs.map
- dist/time.d.cts
- dist/time.d.cts.map
- dist/time.d.mts
- dist/time.d.mts.map
- dist/time.mjs
- dist/time.mjs.map
- dist/transaction-types.cjs
- dist/transaction-types.cjs.map
- dist/transaction-types.d.cts
- dist/transaction-types.d.cts.map
- dist/transaction-types.d.mts
- dist/transaction-types.d.mts.map
- dist/transaction-types.mjs
- dist/transaction-types.mjs.map
- dist/versions.cjs
- dist/versions.cjs.map
- dist/versions.d.cts
- dist/versions.d.cts.map
- dist/versions.d.mts
- dist/versions.d.mts.map
- dist/versions.mjs
- dist/versions.mjs.map
- package.json

View the complete diff between `@metamask/utils` 9.0.0 (latest) and 10.0.0 (to-be-published):

https://github.com/MetaMask/core/actions/runs/11485936994/artifacts/2095263464