{"id":45571907,"url":"https://github.com/thememium/usechange","last_synced_at":"2026-06-13T06:03:48.922Z","repository":{"id":340085690,"uuid":"1158285174","full_name":"thememium/usechange","owner":"thememium","description":"useChange is a Python CLI that generates changelogs and release notes from Conventional Commits, with semver bumping and GitHub release sync.","archived":false,"fork":false,"pushed_at":"2026-06-13T04:56:24.000Z","size":710,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-06-13T05:17:34.787Z","etag":null,"topics":["github","python","release","release-automation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thememium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-15T05:06:46.000Z","updated_at":"2026-06-13T04:56:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/thememium/usechange","commit_stats":null,"previous_names":["thememium/usechange"],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/thememium/usechange","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thememium%2Fusechange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thememium%2Fusechange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thememium%2Fusechange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thememium%2Fusechange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thememium","download_url":"https://codeload.github.com/thememium/usechange/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thememium%2Fusechange/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34273788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["github","python","release","release-automation"],"created_at":"2026-02-23T08:06:58.361Z","updated_at":"2026-06-13T06:03:47.425Z","avatar_url":"https://github.com/thememium.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/thememium/usechange\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/thememium/usechange/refs/heads/master/docs/images/usechange-logo-dark-bg.png\" alt=\"useChange\" width=\"520\" height=\"162\"\u003e\n  \u003c/a\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"#table-of-contents\"\u003e\u003cstrong\u003eExplore the Documentation »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/thememium/usechange/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/thememium/usechange/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n\u003ca name=\"table-of-contents\"\u003e\u003c/a\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#about\"\u003eAbout\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#development\"\u003eDevelopment\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT --\u003e\n\n## About\n\nusechange is a Python CLI for generating changelogs and release notes from\nConventional Commits. It reads git history between refs, groups commits by type,\nrenders Markdown release notes, and can update version numbers based on semantic\nversioning rules.\n\nIt gives you:\n\n- **Changelog generation** - Render release notes and optionally write to\n  CHANGELOG.md.\n- **Semver bumping** - Determine version bumps from commit types and breaking\n  changes.\n- **Release workflows** - Tag and publish using uv and gh.\n- **GitHub sync** - Sync release notes to GitHub releases.\n- **Repo metadata** - Create commit and compare links automatically.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- QUICK START --\u003e\n\n## Quick Start\n\nusechange provides a short alias and command shortcuts:\n\n- `usechange` and `change` are equivalent.\n- `changelog` also supports the `log` alias.\n\n### Install usechange with uv (recommended)\n\n```sh\nuv add usechange\n```\n\n### Install with pip (alternative)\n\n```sh\npip install usechange\n```\n\n### Generate a changelog\n\n```sh\nchange log --write\n```\n\n### Interactive release workflow\n\n```sh\nchange release\n```\n\n### Sync the latest release to GitHub\n\n```sh\nchange github release\n```\n\n### Interactive changelog preview\n\nExample prompt for selecting optional changelog flags:\n\n```\nSelect optional flags (space to select, enter to confirm):\n\u003e [ ] --from - Start commit reference\n  [ ] --to - End commit reference\n  [ ] --dir - Path to a git repository\n  [ ] --clean [bool] - Ensure working directory is clean\n  [ ] --output - Changelog file to write\n  [ ] --write [bool] - Write changelog to CHANGELOG.md\n  [ ] --no-output [bool] - Do not write a changelog file\n  [ ] --noAuthors [bool] - Skip contributors section\n  [ ] --noDate [bool] - Omit date from header\n  [ ] --noEmojis [bool] - Omit emojis from headers\n  [ ] --hideAuthorEmail [bool] - Hide author email if no username is found\n  [ ] --bump [bool] - Determine and update version\n  [ ] -r - Release as a specific version\n  [ ] --release [bool] - Bump, tag, and release\n  [ ] --no-commit [bool] - Skip release commit\n  [ ] --no-tag [bool] - Skip release tag\n  [ ] --push [bool] - Push commits and tags\n  [ ] --no-github [bool] - Skip GitHub release sync\n  [ ] --publish [bool] - Publish after generating\n  [ ] --publishTag - Publish with a custom tag\n  [ ] --nameSuffix - Append suffix to package name\n  [ ] --versionSuffix - Append suffix to version\n  [ ] --canary - Shortcut for --bump and --versionSuffix\n  [ ] --major [bool] - Force major bump\n  [ ] --minor [bool] - Force minor bump\n  [ ] --patch [bool] - Force patch bump\n  [ ] --premajor - Force premajor bump\n  [ ] --preminor - Force preminor bump\n  [ ] --prepatch - Force prepatch bump\n  [ ] --prerelease - Force prerelease bump\nPress \u003cspace\u003e, \u003ctab\u003e for multi-selection and \u003center\u003e to accept\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE --\u003e\n\n## Usage\n\n### Generate changelog\n\n```sh\nchange log --from v0.1.0 --to HEAD --output CHANGELOG.md\n```\n\n### Version bumping\n\n```sh\nchange log --bump --write\nchange log --major --write\n```\n\n### Release workflow\n\n```sh\nchange release --yes\n```\n\n### GitHub release sync\n\n```sh\nchange github release 0.2.0\nchange gh release all\n```\n\n### Configuration\n\nusechange reads configuration from one of the following:\n\n- changelog.config.json\n- .changelogrc\n- changelog.config.toml\n- pyproject.toml under [tool.changelog]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- DEVELOPMENT --\u003e\n\n## Development\n\nCommon tasks:\n\n```sh\nuv run poe test\nuv run poe lint\nuv run poe format\nuv run poe typecheck\nuv run poe clean-full\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\nQuick workflow:\n\n1. Fork and branch: `git checkout -b feature/name`\n2. Make changes\n3. Run checks: `uv run poe clean-full`\n4. Commit and push\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nLicense not yet specified in this repository.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    \u003csub\u003eBuilt by \u003ca href=\"https://github.com/thememium\"\u003ethememium\u003c/a\u003e\u003c/sub\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthememium%2Fusechange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthememium%2Fusechange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthememium%2Fusechange/lists"}