3.1.1 • Published 4 years ago

semantic-release-contributors v3.1.1

Weekly downloads
58
License
MIT
Repository
github
Last release
4 years ago

StepDescription
prepareDetermine the contributors list by analyzing commits history.

Install

npm install semantic-release-contributors -D

How does it work

Whenener someone commit to the project, his/her name will be appended to the contributors list of your package.json file.

If Paul Smith commits to a project with the following set-up:

{
  "name": "your-project",
  "author": "Barney Rubble <b@rubble.com>",
  "contributors": [
    "John Doe <j@doe.com> (https://johndoe.com)"
  ]
}

The package.json file would then be updated to:

{
  "name": "your-project",
  "author": "Barney Rubble <b@rubble.com>",
  "contributors": [
    "John Doe <j@doe.com> (https://johndoe.com)",
    "Paul Smith <p.smith@domain.tld>"
  ]
}

NOTE: this package internally deserialize the contributors to objects (name, email, url) and make sure duplicated emails are removed. Contributors objects are then potentially re-serialized before being written to the package file (unless you opt for a different format)

Usage

The plugin can be configured in the semantic-release configuration file:

IMPORTANT: since this plugin acts on semantic-release's "prepare" step and do not commit the updated package.json file itself, it requires to be placed before "@semantic-release/git".

{
  "plugins": [
    // important: insert it before @semantic-release/git
    ["semantic-release-contributors", {
      "format": "string",
      "pkgRoot": "."
    }],
    // ...
    "@semantic-release/git"
    // ...
  ]
}

With this example:

  • the contributors will be stringified to name <email>
  • the package file containing the contributors will be read then updated in the current directory

Configuration

Options

OptionDescriptionDefault
formatstring or object. It defines which format will the contributors be written with to the package.json file.string
pkgRootDirectory path to publish..

Similar or related projects