{"id":19530165,"url":"https://github.com/tpope/git-bump","last_synced_at":"2025-03-17T14:17:00.044Z","repository":{"id":16373184,"uuid":"19123529","full_name":"tpope/git-bump","owner":"tpope","description":"Create Git release commits and tags with changelogs","archived":false,"fork":false,"pushed_at":"2022-02-13T16:36:05.000Z","size":11,"stargazers_count":257,"open_issues_count":4,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-02T13:08:18.340Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"cms-gem-daq-project/cmsgemos","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tpope.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":"CONTRIBUTING.markdown","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-24T20:45:55.000Z","updated_at":"2024-11-20T17:13:42.000Z","dependencies_parsed_at":"2022-09-12T04:01:36.171Z","dependency_job_id":null,"html_url":"https://github.com/tpope/git-bump","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fgit-bump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fgit-bump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fgit-bump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fgit-bump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tpope","download_url":"https://codeload.github.com/tpope/git-bump/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244047646,"owners_count":20389206,"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-11-11T01:29:25.480Z","updated_at":"2025-03-17T14:17:00.022Z","avatar_url":"https://github.com/tpope.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git bump\n\nHere's a popular set of best practices for doing releases for code bases\nstored in Git:\n\n* Update version-related minutiae in the code base.\n* Commit with a message like `projectname 1.2.3`.\n* Create a signed, annotated tag with the same message with a name like\n  `v1.2.3`.\n\nI like these practices.  They're the ones used by Git itself for its own\nsource code.  You might quibble over details (why is there a `v` at the\nbeginning of the tag?), but I think this is a place consistency should\noutshine bikeshedding.\n\nThere's one more practice that I'd like to add:\n\n* Include release notes in the release commit.\n\nThis isn't always a good fit, but for smaller projects, I find this to be a\ngreat alternative to maintaining a formal document inside the repository.  You\ncan easily scrape the information out of the commits later if your needs\nchange.\n\nI made git bump to encapsulate these practices.\n\n## Installation\n\nAssuming you want to install with your system's Ruby:\n\n    sudo gem install git-bump\n\n## Usage\n\nThe primary interface is `git bump`.  Here's how you would use it for a new\nproject.\n\n### Initial release\n\nStage the changes needed to create the release (this could be the entire\nrepository if it's an initial commit), and run `git bump \u003cversion\u003e`, where\n`\u003cversion\u003e` is the version you want to release (try `1.0.0`).  You'll be\ngreeted with a familiar sight:\n\n    spline-reticulator 1.0.0\n\n    # Please enter the commit message for your changes. Lines starting\n    # with '#' will be ignored, and an empty message aborts the commit.\n\nAdjust the project name if necessary, and save and quit the editor.  Your\ncommit and tag will be created, and you'll be shown instructions for pushing\nonce you're sure everything is okay.\n\n### Second release\n\nThis is where the fun begins.  Stage the changes necessary for release, and\nrun one of the following commands:\n\n* `git bump` -- bump the rightmost number in the previous version.\n* `git bump point` -- bump the third number in the previous version, and\n  reset everything afterwards to zero.\n* `git bump minor` -- bump the second number in the previous version, and\n  reset everything afterwards to zero.\n* `git bump major` -- bump the first number in the previous version, and\n  reset everything afterwards to zero.\n* `git bump \u003cversion\u003e` -- bump to an exact version.\n\nThe commit message body will be pre-populated with a bulleted list of commit\nmessages since the previous release.  My practice is to heavily edit this into\na higher level list of changes by discarding worthless messages like typo\nfixes and making related commits into a single bullet point.  If you aren't\ninterested in this practice, delete the body and `git bump` won't bother you\nwith it again.\n\n### Subsequent releases\n\nOn subsequent releases, if no changes are staged, `git bump` will replay the\nprevious release commit, replacing the appropriate version numbers.  This\nworks fine as long as your version numbers are committed as literal strings.\nIf you're doing something more clever like `MAJOR = 1` and `MINOR = 2`, you'll\nhave to do the edit by hand and stage it.\n\n### Existing projects\n\nYou'll need to create one existing release commit and tag in the proper format\nby hand, if your project doesn't already have one.  After that you can use\n`git bump` normally.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpope%2Fgit-bump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftpope%2Fgit-bump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpope%2Fgit-bump/lists"}