Skip to content

jpoehnelt/semantic-release-replace-plugin

Folders and files

NameName
Last commit message
Last commit date
Jul 11, 2023
Jul 6, 2023
Dec 20, 2022
Jul 6, 2023
Mar 30, 2020
Dec 20, 2022
Jul 6, 2023
Mar 30, 2020
Dec 20, 2022
Dec 20, 2022
Mar 30, 2020
Jul 6, 2023
Jul 21, 2023
Jul 20, 2023
Jul 6, 2023
Jul 6, 2023

Repository files navigation

Semantic Release Replace Plugin

npm Build Release codecov GitHub contributors semantic-release

The semantic-release-replace-plugin plugin provides functionality to update version strings throughout a project. This enables semantic release to be used in many different languages and build processes.

Read more about Semantic Release.

Install

$ npm install semantic-release-replace-plugin -D

Usage

The following example uses this plugin to demonstrate using semantic-release in a Python package where __VERSION__ is defined in the root __init__.py file.

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    [
      "semantic-release-replace-plugin",
      {
        "replacements": [
          {
            "files": ["foo/__init__.py"],
            "from": "__VERSION__ = \".*\"",
            "to": "__VERSION__ = \"${nextRelease.version}\"",
            "results": [
              {
                "file": "foo/__init__.py",
                "hasChanged": true,
                "numMatches": 1,
                "numReplacements": 1
              }
            ],
            "countMatches": true
          }
        ]
      }
    ],
    [
      "@semantic-release/git",
      {
        "assets": ["foo/*.py"]
      }
    ]
  ]
}

Validation

The presence of the results array will trigger validation that a replacement has been made. This is optional but recommended.

Warning

This plugin will not commit changes unless you specify assets for the @semantic-release/git plugin! This is highlighted below.

[
  "@semantic-release/git",
  {
    "assets": ["foo/*.py"]
  }
]

Options

Please refer to the documentation for more options.