{
  "branches": ["main"],
  "plugins": [
    [
      "@semantic-release/commit-analyzer",
      {
        "preset": "angular",
        "releaseRules": [
          { "breaking": true, "release": "minor" },
          { "type": "docs", "scope": "README", "release": "patch" },
          { "type": "fix", "release": "patch" },
          { "type": "refactor", "release": "patch" },
          { "type": "chore", "scope": "deps", "release": "patch" },
          { "type": "feat", "release": "minor" }
        ],
        "parserOpts": {
          "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"]
        }
      }
    ],
    [
      "@semantic-release/release-notes-generator",
      {
        "preset": "conventionalcommits",
        "presetConfig": {
          "types": [
            {
              "type": "feat",
              "section": "Features",
              "hidden": false
            },
            {
              "type": "fix",
              "section": "Bug Fixes",
              "hidden": false
            },
            {
              "type": "chore",
              "scope": "deps",
              "section": "Miscellaneous Chores",
              "hidden": false
            }
          ]
        }
      }
    ],
    "@semantic-release/changelog",
    [
      "@semantic-release/exec",
      {
        "prepareCmd": "semantic-release-cargo prepare ${nextRelease.version}",
        "publishCmd": "semantic-release-cargo --log-level=trace publish"
      }
    ],
    [
      "@semantic-release/git",
      {
        "assets": [
          "CHANGELOG.md",
          "Cargo.toml",
          "Cargo.lock"
        ],
        "message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}"
      }
    ],
    [
      "@semantic-release/gitlab",
      {
        "assets": []
      }
    ]
  ]
}