Skip to content

Prevent semantic release from being triggered by certain default prefixes #612

Open

Description

@Menosc

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!

Activity

  1. travi commented on Mar 25, 2024

    @travi
    Member

    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

  2. hobbitronics commented on Mar 26, 2024

    @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.

  3. hobbitronics commented on Mar 26, 2024

    @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.

  4. Menosc commented on Mar 26, 2024

    @Menosc
    Author

    @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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions