commit-analyzer icon indicating copy to clipboard operation
commit-analyzer copied to clipboard

Prevent semantic release from being triggered by certain default prefixes

Open Menosc opened this issue 11 months ago • 4 comments

Hi everyone! I'm currently using Semantic Release in my project and I'd like to configure it so that it doesn't trigger a release for commits labeled as fix or feat. However, I couldn't find a straightforward way to achieve this in the existing configuration options.

I propose adding a feature or configuration option that allows users to exclude specific commit types, by setting a certain prefix to false. I found an example for scopes.

Here is an example of my package.json file:

{
  "name": "semantic-release-image",
  "release": {
    "branches": ["main"],
    "plugins": [
      [
        "@semantic-release/commit-analyzer",
        {
          "releaseRules": [
            {
              "type": "feat",
              "release": "prerelease"
            },
            {
              "type": "feat",
              "scope": "release",
              "release": "minor"
            },
            {
              "type": "perf",
              "release": "prerelease"
            },
            {
              "type": "BREAKING CHANGE",
              "release": "major"
            },
            {
              "type": "revert",
              "release": "prerelease"
            },
            {
              "type": "fix",
              "release": "prerelease"
            }
          ],
          "parserOpts": {
            "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"]
          }
        }
      ]
      [
        "@semantic-release/github"
      ]
    ]
  }
}

As you can see, now I set those default prefixes to prerelease and that's not what I am aiming for. If this feature exists, please, let me know how to achieve it. Thanks in advance!

Menosc avatar Mar 25 '24 12:03 Menosc

options for changing the commit convention are described here: https://semantic-release.gitbook.io/semantic-release#commit-message-format

if you need something more custom, you are likely needing to create your own custom preset

travi avatar Mar 25 '24 22:03 travi

You can also do this "commits that contains '[skip release]' or '[release skip]' in their message will be excluded from the commit analysis" @Menosc although not as convenient.

hobbitronics avatar Mar 26 '24 05:03 hobbitronics

You can also do this "commits that contains '[skip release]' or '[release skip]' in their message will be excluded from the commit analysis" @Menosc although not as convenient.

Another thing I do to skip a release is just not use Angular commit convention and the commit is ignored.

hobbitronics avatar Mar 26 '24 05:03 hobbitronics

@travi @hobbitronics thank you guys! I chose [skip release] as a quick fix for now. I do appreciate your answers. You helped a lot. I felt the lack of this information in the official documentation. Is it worth adding it there? If yes, I can do that.

Menosc avatar Mar 26 '24 16:03 Menosc