{"id":22379121,"url":"https://github.com/sky-uk/what-bump","last_synced_at":"2025-07-31T01:31:48.402Z","repository":{"id":57672139,"uuid":"218491010","full_name":"sky-uk/what-bump","owner":"sky-uk","description":"Detect required version bump based on conventional commit messages","archived":false,"fork":false,"pushed_at":"2024-03-04T10:14:15.000Z","size":104,"stargazers_count":10,"open_issues_count":3,"forks_count":1,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2024-08-08T20:40:47.119Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sky-uk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-30T09:32:23.000Z","updated_at":"2024-04-07T19:56:10.000Z","dependencies_parsed_at":"2023-01-22T02:02:51.290Z","dependency_job_id":null,"html_url":"https://github.com/sky-uk/what-bump","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fwhat-bump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fwhat-bump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fwhat-bump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky-uk%2Fwhat-bump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sky-uk","download_url":"https://codeload.github.com/sky-uk/what-bump/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228204606,"owners_count":17884711,"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-12-04T23:09:01.162Z","updated_at":"2024-12-04T23:09:01.802Z","avatar_url":"https://github.com/sky-uk.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What Bump?\n\n[![CircleCI](https://circleci.com/gh/sky-uk/what-bump.svg?style=svg\u0026circle-token=bcb5547b4ce67d86715e1ce8f2a5c45b4bedba7d)](https://circleci.com/gh/sky-uk/what-bump)\n\n`what-bump` is a simple tool that reads the commit history of a git repository,\nand uses commit messages to decide what kind of version bump is required.\n\n`what-bump` assumes that commit messages are written according to the \n[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)\nspecification, and that your software uses [Semantic Versioning](https://semver.org).\n\nMoreover, if you provide `what-bump` with the current version number of your software,\nit will tell you what the next version number has to be.\n\n## Rationale\n\nPlenty of tools exist that can read Conventional Commit messages and manage software\nreleases: see for example the [list](https://www.conventionalcommits.org/en/v1.0.0/#tooling-for-conventional-commits)\nin the conventional commit website, as well as [calcver](https://github.com/sanisoclem/calcver-cli).\n\nHowever, most of those tools are deeply integrated with NPM, or somehow assume that you're\nusing NPM, try to manage the entire release process of your software, and are not trivial\nto set up (especially if you're not using NPM!). \nThe only tool I could find that does not integrate with NPM is `calcver`, but it is very\nyoung, very undocumented, and probably more powerful and/or complex than I need a tool \nto be.\n\nThis tool, `what-bump`, sets out to be a simple, self-explanatory, zero-configuration\nutility to do one and only one thing: determine your software's next version number\nbased on all the commit messages up to a previous revision. You need to specify what\nthe previous revision is (we assume you have it tagged and know enough `bash` magic to\ndo it) and what the current version is (ditto).\n\n## Installation\n\nThe easiest way to get `what-bump` is installing it using [cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html),\nwith the following command:\n\n    cargo install what-bump\n\nIf you prefer Docker, there is an official image on dockerhub: https://hub.docker.com/r/albx79/what-bump\n\n## Usage\n\nJust type\n\n    what-bump --help\n\nTo get all the explanation you need. \n\nBasically, assuming you tagged your previous version as `v1.0.2`, just type\n  \n    what-bump v1.0.2 --from 1.0.2\n  \nto get the next version number printed to standard output.\n\n## Compliance\n\n`what-bump` is a little bit more accepting than Conventional Commits specifies.\n\nIn particular, it only checks that the commit type **starts** with \"fix\" or \"feat\" \n(case insensitive), therefore it will also accept things like \"feature\", \"fixed\", or\n\"fixing\". \n\nAlso, any other commit type, or commits that don't comply with the spec,\nwill be ignored and won't contribute to a version bump. \n\n## Build\n\n### With Cargo\n\n`what-bump` is written in [Rust](https://www.rust-lang.org). You'll need at least version \n1.36 to build (that's what I used). Install rust following the instructions on the official\nwebsite. \n\nIt depends on [git2-rs](https://github.com/alexcrichton/git2-rs), which requires\nlibgit2 to be installed on your system. It should already be available if you're using git.\n\nTo build from sources, clone the repository and build with:\n\n    cargo build --release\n    \nThen you can install it locally with\n\n    cargo install --path .\n\n#### For macOS\nInstall cargo and then:\n\n```shell\ncargo build --release --target=x86_64-apple-darwin\n```\nExecutable will be found at `target/x86_64-apple-darwin/release/what-bump`\n\n### With Docker\n\nAlternatively, if you have docker, you can build `what-bump` using \nthe Dockerfile provided:\n\n    docker build . -t what-bump\n\nAnd then run it with e.g.:\n\n    docker run -v $PWD:/data what-bump --path /data --help\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky-uk%2Fwhat-bump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsky-uk%2Fwhat-bump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky-uk%2Fwhat-bump/lists"}