Skip to main content
Glama

documcp

by tosin2013
automated-changelog.md3.97 kB
--- name: "📝 Implement Automated Changelog Generation" description: "Add automated changelog generation from conventional commits" labels: ["enhancement", "automation", "documentation", "medium-priority"] assignees: - "tosinakinosho" --- ## 📋 Problem Description Currently, changelog updates are manual processes that can lead to: - Inconsistent formatting and content - Missed entries or inaccurate information - Time-consuming maintenance - Potential human error **Current State:** - Manual `CHANGELOG.md` updates - Basic automation in release workflow - Partial conventional commit adoption - Generic release notes in GitHub Releases **Impact:** - Reduced changelog reliability - Increased maintenance overhead - Inconsistent user communication - Poor developer experience ## 🎯 Expected Behavior - Changelog automatically updated on each release - Commit messages follow conventional format - Release notes include all relevant changes - Consistent formatting and structure - Automated categorization of changes ## 🔧 Solution Proposal ### Phase 1: Conventional Commits Setup 1. **Add commitlint configuration**: ```bash npm install --save-dev @commitlint/cli @commitlint/config-conventional ``` 2. **Create commitlint config** (`commitlint.config.js`): ```javascript module.exports = { extends: ['@commitlint/config-conventional'] }; ``` 3. **Set up husky hooks** for commit validation: ```bash npm install --save-dev husky npx husky init npx husky add .husky/commit-msg 'npx commitlint --edit $1' ``` ### Phase 2: Automated Changelog Generation 1. **Add standard-version** for automated releases: ```bash npm install --save-dev standard-version ``` 2. **Update package.json scripts**: ```json { "scripts": { "release": "standard-version", "release:minor": "standard-version --release-as minor", "release:major": "standard-version --release-as major" } } ``` 3. **Configure standard-version** (`.versionrc.js`): ```javascript module.exports = { types: [ { type: "feat", section: "Features" }, { type: "fix", section: "Bug Fixes" }, { type: "chore", section: "Chores" }, { type: "docs", section: "Documentation" } ] }; ``` ### Phase 3: Workflow Integration 1. **Update release workflow** to use automated changelog: ```yaml - name: Generate changelog run: npx standard-version --release-as ${{ github.event.inputs.version_type }} - name: Create GitHub Release uses: softprops/action-gh-release@v1 with: body: "${{ steps.changelog.outputs.content }}" ``` 2. **Remove manual changelog steps** from current workflow ## 📋 Acceptance Criteria - [ ] Changelog automatically updated on release - [ ] Commit messages follow conventional format - [ ] Release notes include all relevant changes - [ ] Consistent formatting across all releases - [ ] Automated categorization of changes (Features, Fixes, etc.) - [ ] Husky hooks enforce commit message standards ## 🔍 Technical Details **Relevant Files:** - `.github/workflows/release.yml` - `CHANGELOG.md` - `package.json` - `commitlint.config.js` - `.husky/commit-msg` **Dependencies:** - @commitlint/cli - @commitlint/config-conventional - husky - standard-version ## ⚠️ Potential Issues 1. **Existing commit history** - May not follow conventional format 2. **Learning curve** - Team needs to adopt new commit conventions 3. **Tool compatibility** - Ensure all tools work with Node.js 20+ 4. **CI/CD integration** - Need to handle git operations in workflows ## 📚 References - [Conventional Commits](https://www.conventionalcommits.org/) - [commitlint](https://commitlint.js.org/) - [standard-version](https://github.com/conventional-changelog/standard-version) - [Husky](https://typicode.github.io/husky/) ## 🎪 Priority: Medium Improves documentation reliability and reduces maintenance overhead.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tosin2013/documcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server