README.md
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
## conver
**conver** is a simple tool to manage projects implementing [Convergent Versioning](https://h3rald.com/conver).
### Usage
```
conver - Convergent Versioning Tool v100-D
(c) Copyright 2026 Fabio Cevasco
SYNTAX
conver [<flag> | <command>]
Where:
<flag> can be one of the following:
-v, --version: Print the version of the program.
-h, --help: Print this help message.
<command> can be one of the following:
init: Initialize the project for ConVer usage.
draft: Draft a new release by specifying score and metadata.
status: Display the current Draft and Release versions, if any.
release: Move the current draft version to release.
semver: Generate SemVer version number based on history.
history: Print the full version history of the project.
```
### The .conver directory and the VERSIONING.md file
By running `conver init` in the root folder of your project, the following files are created:
* ./conver — This directory contains some files used to internally manage Convergent Versioning via the _conver_ tool.
* draft.txt — This file is used to store the current _draft_ version of the project you are working on.
* history.txt — This file contains the full Convergent Versioning history (all ConVer releases) of your project.
* legacy.txt — This file can be used to set the legacy Semantic Versioning release number, which will be used to calculate the equivalent SemVer number of your ConVer releases.
* release.txt — This file is used to store the current _release_ version of the project you are working on.
* semver.txr — This file will contain the equivalent SemVer release number generated via `conver semver`.
* VERSIONING.md — This file contains a standard notice informing users that this project follow Convergent Versioning.
### Commands
`conver` provides different sub commands, described in the following sections.
#### init
This project initializes your project to use ConVer by creating the `.conver` directory and the `VERSIONING.md` file.
#### draft
This command asks you some questions about the version of your project you are working on, to determine the correct ConVer number.
#### release
This command is used to _release_ an existing draft version of your project. It will write the ConVer version number to the `.conver/release.txt` file and append an entry to the `.conver/history.txt` file.
#### status
This command displays the current draft and the current release versions of your project, if any.
#### history
This comman prints the full details of each ConVer release of your project by processing the `.conver/history.txt` file.
#### semver
This command generates a SemVer-compatible version number for your project by processing the `.conver/history.txt` file, and stores it in `.conver.semver.txt`.
### Building conver
`conver` is written in C99 and has no external dependencies. To generate the `conver` or `conver.exe` executable:
* Clone the [conver-tool](https://git.sr.ht/~h3rald/conver-tool) repository.
* Run `make`
|