{"id":15801626,"url":"https://github.com/garrettmac/conventional-changelog-project","last_synced_at":"2025-03-31T21:55:43.654Z","repository":{"id":84887836,"uuid":"182285934","full_name":"garrettmac/conventional-changelog-project","owner":"garrettmac","description":null,"archived":false,"fork":false,"pushed_at":"2019-04-19T15:30:12.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-06T01:23:19.888Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/garrettmac.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-19T15:29:19.000Z","updated_at":"2019-04-19T15:30:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"934f2e91-8164-46aa-b51d-f0d0e8c63174","html_url":"https://github.com/garrettmac/conventional-changelog-project","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrettmac%2Fconventional-changelog-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrettmac%2Fconventional-changelog-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrettmac%2Fconventional-changelog-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrettmac%2Fconventional-changelog-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/garrettmac","download_url":"https://codeload.github.com/garrettmac/conventional-changelog-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246547388,"owners_count":20794970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-05T01:23:20.467Z","updated_at":"2025-03-31T21:55:43.625Z","avatar_url":"https://github.com/garrettmac.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# V2\n# conventional-changelog-project\n\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n\nCommits that follow a standard and descriptive format can be parsed programmitically to learn much about the state of the repository.\n\nMost particularly...\n\n- The next logical **Semantic Version** bump\n- **CHANGLOG** (for Humans)\n\n(i.e. Releases)\n\nWhile many commit formats exist and you can invent your own, this project templates (and examplifies) the most popular, **Conventional** format.\n\nhttps://github.com/conventional-changelog/conventional-changelog\n\n## How It Works\n\nAll tooling is provided via `npm` packages.\n\n### Commits are Linted\n\nIn order for any of this to be worthwhile and work, commits have to consistently follow the desired, Conventional, format. Therefore, a pre-commit hook linter in order.\n\n`package.json`\n```json\n{\n  \"devDependencies\": {\n    \"@commitlint/cli\": \"^7.3.2\",\n    \"@commitlint/config-conventional\": \"^7.3.1\",\n    \"husky\": \"^1.3.1\"\n  },\n  \"husky\": {\n    \"hooks\": {\n      \"commit-msg\": \"commitlint -E HUSKY_GIT_PARAMS\"\n    }\n  }\n}\n```\n`commitlint.config.js`\n```js\nmodule.exports = {extends: ['@commitlint/config-conventional']};\n```\n\nhttps://marionebl.github.io/commitlint/#/guides-local-setup\n\n### Commits are Assisted\n\nWriting repetitive, descriptive commits is necessary for honoring the standard, Conventional, format. However, writing (let alone, learning) them *completely manually* is tiresome and *not* necessary.\n\nInstead of using `git commit`, use...\n\n```bash\n\u003e npm run cm\n```\n\n`package.json`\n```json\n{\n  \"scripts\": {\n    \"cm\": \"git-cz\"\n  },\n  \"devDependencies\": {\n    \"commitizen\": \"^3.0.5\",\n    \"cz-conventional-changelog\": \"^2.1.0\",\n  },\n  \"config\": {\n    \"commitizen\": {\n      \"path\": \"./node_modules/cz-conventional-changelog\"\n    }\n  }\n}\n```\n\nhttps://github.com/commitizen/cz-cli\n\n### Versioning is Scripted\n\nOnce you have a Conventional commit log, you are ready to enjoy auto-generated Changelog and Version bumps.\n\n```bash\n\u003e npm run release\n```\n\n```bash\n\u003e git push --follow-tags origin master\n```\n(`release` only tags commits locally, so they need to bu pushed up after)\n\n`package.json`\n```json\n{\n  \"scripts\": {\n    \"release\": \"standard-version\"\n  },\n  \"devDependencies\": {\n    \"standard-version\": \"^4.4.0\"\n  }\n```\n\nhttps://github.com/conventional-changelog/standard-version","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarrettmac%2Fconventional-changelog-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgarrettmac%2Fconventional-changelog-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarrettmac%2Fconventional-changelog-project/lists"}