Navigation Menu

Skip to content

EndangeredMassa/npub

npub

This is a publishing tool for Node.js projects hosted in a git repository.

This project is a safe and inclusive place for contributors of all kinds. See the Code of Conduct for details.

publishConfig

It makes use of the publishConfig section of a project's package.json.

In your project's package.json, you can optionally include a publishConfig section. Below is an example.

"publishConfig": {
  "registry": "http://some-registry.dev",
  "license": {
    "exclude": [
      "lib"
    ]
  }
}

publishConfig.registry

Specify a custom registry for use in the npm install and npm publish commands. This is a native npm feature.

publishConfig.license.exclude

Specify an array of directories to ignore for the npub prep command.

prep command

npub prep

  1. if no LICENSE file exists in the current directory, abort
  2. get a list of all *.{js,coffee} files recursively in the current directory, excluding those in publishConfig.license.exclude (and ./node_modules)
  3. for each file, ensure the LICENSE content is in a header comment

publish command

npub publish <version>

Options:

  • -t/--test command - alternate test suite command. default: npm test
  • <version> - 1.2.3; or, for auto increments: patch, minor, major
  1. Runs npub verify
  2. Runs npub prep
  3. Runs npub verify
  4. Removes node_modules & runs npm install using publishConfig.registry if available
  5. run the test suite
  6. build temp changelog based on commits since last version bump
  7. open editor with temp changelog
  8. if exit code is non-zero, abort
  9. set package version to whatever was specified
  10. commit changes (changelog and package.json update) with message "v1.2.3"
  11. tag commit as v1.2.3
  12. confirm "about to publish"; otherwise abort
  13. git push
  14. git push --tags
  15. npm publish

verify command

npub verify

  1. if git status is clean, exit with 0; otherwise exit with a status of 2

todo

  • optionally provide GitHub access to interact with Pull Requests and Releases
  • update tag with release notes of this change's changelog
  • comment on all PRs associated with this version, with a link to the release notes

license

MIT