module.exports = { "branches": ["main"], "plugins": [ [ "@semantic-release/commit-analyzer" , { preset: "angular" , releaseRules: [ {type: "config", release: "patch"} // Treat config changes as a patch , {type: "feat", release: "minor"} // Features trigger a minor release , {type: "fix", release: "patch"} // Bug fixes trigger a patch release , {type: "perf", release: "patch"} // Performance improvements as patches , {type: "refactor", release: "patch"} // Refactors treated as patches ], "parserOpts": { "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"] } } ] // Analyzes commit messages to determine version bumps , [ "@semantic-release/release-notes-generator" , { preset: "conventionalcommits" , presetConfig: { types: [ {type: "config", section: "Configuration Updates"} // Categorizes config updates , {type: "feat", section: "Features"} // Features section , {type: "fix", section: "Bug Fixes"} // Bug fixes section , {type: "perf", section: "Performance Improvements"} // Performance improvements section , {type: "chore", hidden: true} // Hide chore commits from release notes , {type: "docs", hidden: true} // Hide documentation changes , {type: "refactor", section: "Code Refactoring"} // Refactoring section , {type: "style", hidden: true} // Hide style changes , {type: "test", hidden: true} // Hide test changes ] } , parserOpts: { noteKeywords: ["BREAKING CHANGE", "BREAKING CHANGES"] // Identify breaking changes in release notes } } ], // Generates release notes from commit history "@semantic-release/changelog", [ "@semantic-release/git" , { assets: ["CHANGELOG.md"] } ], // Commits only changelog "@semantic-release/gitlab" ] }