{"id":32172930,"url":"https://github.com/lud/mix_version","last_synced_at":"2026-02-22T14:43:33.064Z","repository":{"id":57528322,"uuid":"294847806","full_name":"lud/mix_version","owner":"lud","description":"A simple version tool for Elixir","archived":false,"fork":false,"pushed_at":"2026-02-03T07:32:16.000Z","size":171,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-03T20:31:52.836Z","etag":null,"topics":["elixir","mix"],"latest_commit_sha":null,"homepage":"https://hex.pm/packages/mix_version","language":"Elixir","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/lud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-09-12T01:39:44.000Z","updated_at":"2026-02-03T07:32:34.000Z","dependencies_parsed_at":"2025-04-01T18:32:33.413Z","dependency_job_id":"b2846108-f335-471f-9160-209c2e29be27","html_url":"https://github.com/lud/mix_version","commit_stats":{"total_commits":31,"total_committers":1,"mean_commits":31.0,"dds":0.0,"last_synced_commit":"c886e173a39e53e707351f352db422d9bdf9bb08"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/lud/mix_version","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lud%2Fmix_version","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lud%2Fmix_version/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lud%2Fmix_version/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lud%2Fmix_version/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lud","download_url":"https://codeload.github.com/lud/mix_version/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lud%2Fmix_version/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29716358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T13:30:57.152Z","status":"ssl_error","status_checked_at":"2026-02-22T13:30:28.561Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["elixir","mix"],"created_at":"2025-10-21T18:46:42.767Z","updated_at":"2026-02-22T14:43:33.056Z","avatar_url":"https://github.com/lud.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mix version\n\nAutomatically updates the version of Elixir projects:\n\n* Updates the version number in `mix.exs`.\n* Commits the changes.\n* Creates an annotated git tag with the new version.\n* Supports hooks to add additional changes, for instance updating a change log.\n\n\n## Installation\n\n### As a dependency\n\nYou can install MixVersion as a regular dependency in your Elixir projects:\n\n```elixir\ndef deps do\n  [\n    {:mix_version, \"~\u003e 2.4\", only: [:dev, :test], runtime: false},\n  ]\nend\n```\n\n\n### Installing globally\n\nWhen managing multiple projects, it can be easier to install the mix task as an\narchive.\n\n```bash\nmix archive.install hex mix_version\n```\n\n\n\n## Breaking changes in version 2\n\n\nThe v2 is a partial rewrite where most checks are run before attempting to make\nany modification for the project. A few changes to how MixVersion should be used\nwere implemented:\n\n* The configuration of MixVersion from the config files is not supported\n  anymore. This is to support MixVersion as a globally installed archive. When\n  MixVersion is not listed in the dependencies, Elixir would warn if a project\n  contains configuration for an unknown application.\n* The new configuration is provided by listing a `:versioning` from the\n  `project/0` callback of the `mix.exs` file.\n* The `--git-only` option was dropped. MixVersion will warn and prompt if\n  some files are not checked in, allowing to fix those issues before any change\n  is made to the `mix.exs` file and any commit/tag is created.\n* Any unchecked change to the `mix.exs` file will prevent MixVersion to run.\n* The `:annotate` option is now `true` by default, creating annotated tags.\n\n\n\u003c!-- doc-start --\u003e\n\n## Configuration\n\n\nConfiguration can be provided under `:versioning` from the `project/0` callback\nof the project file:\n\n```elixir\n# in mix.exs\n\ndef project do\n  [\n    app: :my_app,\n    version: \"1.2.3\",\n    # ...\n    versioning: versioning()\n  ]\nend\n\ndefp versioning do\n  [\n    annotate:   true,\n    annotation: \"new version %s\",\n    commit_msg: \"new version %s\",\n    tag_prefix: \"v\"\n  ]\nend\n```\n\nIn the commit message and annotation, any occurence of `%s` will be replaced by\nthe new version number. The presence of `%s` is not mandatory.\n\nThis configuration is totally optional. The sample values above are the default\nvalues used by `mix version`.\n\nConfiguration can be overriden by command line options. For instance, if\n`:annotate` is set to `false` in configuration, you can use the `--annotate` CLI\nflag to force it to be `true`.\n\n\u003c!-- doc-end --\u003e\n\n## Usage\n\nCall the command from within a mix project. With no options, you will be\nprompted for the new version number.\n\n```bash\nmix version [options]\n```\n\n\n### Options\n\nVersions managed by Elixir follow the `MAJOR.MINOR.PATCH` scheme, with\noptionnaly a pre-release tag as in `1.0.0-rc2`.\n\n```text\n-i, --info\n      Only outputs the current version and stops. Ignores all other options.\n      Defaults to false.\n\n-M, --major\n      Bump to a new major version. Defaults to false.\n\n-m, --minor\n      Bump to a new minor version. Defaults to false.\n\n-p, --patch\n      Bump the patch version. Defaults to false.\n\n-n, --new-version \u003cstring\u003e\n      Set the new version number. Defaults to nil.\n\n-a, --annotate\n      Create an annotated git tag.\n\n-c, --commit-msg \u003cstring\u003e\n      Define the commit message, with all '%s' replaced by the new VSN.\n\n-A, --annotation \u003cstring\u003e\n      Define the tag annotation message, with all '%s' replaced by the new VSN.\n\n-x, --tag-prefix \u003cstring\u003e\n      Define the tag prefix.\n\n-k, --tag-current\n      Commit and tag with the current version. Defaults to false.\n\n    --help\n      Displays this help.\n```\n\nWhen bumping a part of the version, pre-release tags are dropped. For a major or\nminor bump, the version number changes, but it remains the same with a patch\nbump..\n\n```text\nBump major:\n  1.2.3      -\u003e  2.0.0\n  1.2.3-rc1  -\u003e  2.0.0\n\nBump minor:\n  1.2.3      -\u003e  1.3.0\n  1.2.3-rc1  -\u003e  1.3.0\n\nBump patch:\n  1.2.3      -\u003e  1.2.4\n  1.2.3-rc1  -\u003e  1.2.3  # Still 1.2.3\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flud%2Fmix_version","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flud%2Fmix_version","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flud%2Fmix_version/lists"}