{"id":22777533,"url":"https://github.com/mulecode/vertere","last_synced_at":"2025-07-03T06:04:58.925Z","repository":{"id":48503837,"uuid":"324770121","full_name":"mulecode/vertere","owner":"mulecode","description":"Semantic Versioning CLI tool","archived":false,"fork":false,"pushed_at":"2024-01-12T13:29:00.000Z","size":30,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-06T07:07:16.367Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mulecode.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2020-12-27T13:41:20.000Z","updated_at":"2024-01-12T13:29:04.000Z","dependencies_parsed_at":"2025-03-30T13:32:12.943Z","dependency_job_id":"946d5306-006d-44d2-9693-63d5aae72710","html_url":"https://github.com/mulecode/vertere","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulecode%2Fvertere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulecode%2Fvertere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulecode%2Fvertere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulecode%2Fvertere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mulecode","download_url":"https://codeload.github.com/mulecode/vertere/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulecode%2Fvertere/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258441989,"owners_count":22701424,"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-11T19:14:44.606Z","updated_at":"2025-07-03T06:04:58.903Z","avatar_url":"https://github.com/mulecode.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vertere\n### Semantic Versioning CLI tool\n\n### About\n\nA command line program to generate semantic versioning for Git. \n\n### Basic usage - Initialise versioning\nScenario - Given a project with Git initialised and with no semantic version tags.\n\n```shell\n\u003e vertere init --initial-version=v1.0.0\nInitialising project with version: v1.0.0\n```\n\nThe command above will prepare the project for a git tag `v1.0.0`\nbut it won't commit either push to git. \n\nExecute the next command to commit and push the changes to remote:\n\n```shell\n\u003e vertere push\nTag v1.0.0 pushed.\n```\n\nThe push command will tag `v1.0.0` in current \ngit head branch and push to remote.\n\n\n### Basic usage - Versioning Patch, Minor or Major\nScenario - Given a project with Git initialised and already initialised with a \nsemantic version git tag.\n\n```shell\n\u003e vertere init --incrementer=patch --prefix v\nFound highest tag: v1.0.0\nNext version v1.0.1\n```\nThen execute `vertere push` command to push to git.\n\n### Supported prefix\n\nVertere supports prefixes that can change how to print the version.\n\n```shell\n\u003e vertere init --prefix v\n```\n\n**Important!** Prefixes should contain string values only and no blank spaces.\n\n### Supported postfix\n\n- BUILD-SNAPSHOT\n- M[sequencer]\n- RC[sequencer]\n- RELEASE\n\nVersion with postfix structure:\n```\n1.2.3.\u003cPostfix\u003e\u003cSequencer\u003e\n```\n\n**Details**\n\nBUILD-SNAPSHOT - This postfix is configured to be not promotable, \nthis means that if the `highest tag` is equals to `1.0.0.BUILD-SNAPSHOT` the \nnext tag will be the same, and the push command will delete the previous tag and \ncommit it again in the HEAD of the current branch.\n \nMilestone and Release-Candidate (M and RC) - Those are postfixes with auto sequencers,\nif the latest tag have same postfix (M or RC). The `vertere init` command will\nincrementer the sequencer only. Example from a tag `1.2.3RC4` -\u003e `1.2.3RC5`\n\nRELEASE - This postfix means a end version. Any promotion from a previous \nversion postfix with Release will increment the semantic version. Example from\n`1.2.3.RELEASE` and properties set to `--incrementer=MINOR --postfix=RELEASE` will generate\na version: `1.3.0.RELEASE`\n\n### Postfix weights Details\n\nAll tags have a weight value that is used in the version promotion, where this \nprogram will use to determine what to promote.\n\n**Important!** A version without postfix have the highest weight of all configured\npostfixes.\n\nVersion ordering example: highest to lowest\n\n```\n1.1.0.BUILD-SNAPSHOT\n1.0.0\n1.0.0.RELEASE\n1.0.0.RC1\n1.0.0.M2\n1.0.0.M1\n1.0.0.BUILD-SNAPSHOT \n```\n\n**Important!** prefixes do not interfere in version ordering\n\n### Promotion Scenarios - examples\n\n**Scenario 1:**\n\nFrom: `v1.2.3`\n\nConfig: `vertere init --prefix=vv --incrementer=PATCH`\n\nResult: `vv1.2.4`\n\n\n**Scenario 2:**\n\nFrom: `v1.2.3`\n\nConfig: `vertere init --prefix=v --incrementer=PATCH --postfix=RC`\n\nResult: `v1.2.4.RC1`\n\n**Scenario 3:**\n\nFrom: `v1.2.4.RC1`\n\nConfig: `vertere init --prefix=v --incrementer=PATCH --postfix=RC`\n\nResult: `v1.2.4.RC2`\n\n**Scenario 4:**\n\nFrom: `v1.2.4.RC2`\n\nConfig: `vertere init --prefix=v --incrementer=MINOR --postfix=RELEASE`\n\nResult: `v1.2.4.RELEASE`\n\n**Scenario 5:**\n\nFrom: `v1.2.4.RELEASE`\n\nConfig: `vertere init --prefix=v --incrementer=MINOR --postfix=RELEASE`\n\nResult: `v1.3.0.RELEASE`\n\n**Scenario 6:**\n\nFrom: `v1.2.4.RELEASE`\n\nConfig: `vertere init --prefix=v --incrementer=MINOR`\n\nResult: `v1.3.0`\n\n### CLI Properties\n```\nvertere --help\n\nUsage: vertere [OPTIONS] [ init | push | read ]\n\nOptions:\n\n--initial-version TEXT \nRequired when a project has not been yet initialised. \nIt will determine the initial version for a git project. \nDefault value: 1.0.0\n\n--prefix TEXT\nOptional property that sets a prefix for a version. \nDefault value: '' (empty string)\nExample.: when --prefix=v, the version will be displayed as v1.2.3\n\n--incrementer [ PATCH | MINOR | MAJOR]\nValue that dictates how the next version will be incremented. \nDefault value: PATCH\n\n--postfix TEXT\nOptional property that can be used to append a known postfix to the version.\nIt supports [BUILD-SNAPSHOT, M, RC and RELEASE].\nExample: --postfix=RELEASE, the next version will be displayed as 1.2.3.RELEASE. \n\n--config-path TEXT\nOptional property, used to point to vertere file configuration.\nDefault value: vertere.yml\n\n--debug BOOLEAN \nEnables extra log lines while executing this program. \nit might help to identify a possible problem. \nDefault value: false\n\n ```\n\n### File configuration\n\nThis CLI program can have the properties persisted in the git project. \nby default, it tries to load `vertere.yml`\n\nFile format example:\n\n```yaml\nversioning:\n  initial-version: 1.0.0.BUILD-SNAPSHOT\n  prefix: v\n  postfix: BUILD-SNAPSHOT | M | RC | RELEASE\n  incrementer: MAJOR | MINOR | PATCH\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmulecode%2Fvertere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmulecode%2Fvertere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmulecode%2Fvertere/lists"}