imgrant / bumper

Version read/write plugin for release-it

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Version read/write plugin for release-it

This plugin reads and/or writes version/manifest files.

npm install --save-dev @release-it/bumper

In release-it config:

"plugins": {
  "@release-it/bumper": {
    "in": "composer.json",
    "out": "composer.json",
  }
}
  • Use only the in option to read the version from this file in the release-it process.
  • Use only the out option to write the version that was determined by release-it to this file.
  • Use both to read and write the version property from/to this file.

The version from the in file will take precedence over the latest Git tag (and the version from package.json if it exists) in release-it to determine the latest version.

Note that using package.json as out file may conflict with the npm plugin in release-it. Remove it from the out file(s), or use --npm.allowSameVersion.

The supported file types are:

Type Extension(s) Mime-type
JSON .json application/json
YAML .yaml or .yml text/yaml or application-x-yaml
TOML .toml text/toml or application/toml
INI .ini text/x-properties
TEXT .txt text/*

Explicitly providing the (mime) type takes precedence over the file extension.

The fallback type is text if the file extension and/or type is not known (e.g. index.php).

"plugins": {
  "@release-it/bumper": {
    "in": {
      "file": "VERSION",
      "type": "text/plain"
    },
    "out": {
      "file": "VERSION",
      "type": "text/plain"
    }
  }
}

To replace all occurences of the current version with the new version in any text file:

"plugins": {
  "@release-it/bumper": {
    "out": {
      "file": "file.php",
      "type": "text/php"
    }
  }
}

The out option can also be an array of files:

"plugins": {
  "@release-it/bumper": {
    "out": ["manifest.json", "bower.json"]
  }
}

The out option is parsed with fast-glob, so glob patterns can be used to match files to write to:

"plugins": {
  "@release-it/bumper": {
    "out": "dist/*.json"
  }
}

The path option (default: "version") can be used to change a different property. The following example will set the current.version property to the new version in manifest.json:

"plugins": {
  "@release-it/bumper": {
    "out": {
      "file": "manifest.json",
      "path": "current.version"
    }
  }
}

Multiple paths can be provided using an array.

Command-line

Options for this plugin can be set from the command line. Some examples:

release-it --plugins.@release-it/bumper.in=composer.json
release-it --plugins.@release-it/bumper.out=composer.json --plugins.@release-it/bumper.out=manifest.json
  • Keys are separated by dots.
  • Values can be negated by prefixing the key with no-.
  • Arguments may need to be single-quoted (') such as --'deep.key=value' or '--deep.key=value'

Depending on your shell or OS this may differ.

About

Version read/write plugin for release-it

License:MIT License


Languages

Language:JavaScript 100.0%