all repos — conver-tool @ b7d6bed761fa790bafc46a9f881d0202d704b7da

A command line tool to manage ConVer projects.

Added support for writing VERSIONING.md if not present.
h3rald h3rald@h3rald.com
Fri, 12 Jun 2026 12:44:32 +0200
commit

b7d6bed761fa790bafc46a9f881d0202d704b7da

parent

ddbb2902791eb80cfeddae59a5624a5a3e8d16c4

4 files changed, 43 insertions(+), 1 deletions(-)

jump to
M README.mdREADME.md

@@ -1,3 +1,25 @@

# conver -**conver** is a simple tool to manage projects implementing Convergent Versioning.+**conver** is a simple tool to manage projects implementing Convergent Versioning. + +## 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. + history: Print the full version history of the project. +```
A VERSIONING.md

@@ -0,0 +1,7 @@

+This project uses the Convergent Versioning system. + +The version number is a 2-byte hexadecimal integer from 0x0000 to 0xFFFF, with the first three digitsindicating the project _dependability score_ and the last digit encoding the version impact, compatibility, and purpose. + +A version number compliant with Semantic Versioning can be derived from the project history, and will still be used if required by package managers or similar software. + +For more information, see the [Convergent Versioning specification](https://h3rald.com/conver).
M src/conver.csrc/conver.c

@@ -3,6 +3,13 @@

conver_release_t history[0xFFFF]; uint16_t history_size = 0; +const char *versioning = "This project uses the Convergent Versioning system.\n\n" +"The version number is a 2-byte hexadecimal integer from 0x0000 to 0xFFFF, with the first three digits" +"indicating the project _dependability score_ and the last digit encoding the version impact, compatibility, and purpose. \n\n" +"A version number compliant with Semantic Versioning can be derived from the project history, " +"and will still be used if required by package managers or similar software. \n\n" +"For more information, see the [Convergent Versioning specification](https://h3rald.com/conver).\n"; + #if defined(_WIN32) || defined(_WIN64) # define FS_WINDOWS # ifndef WIN32_LEAN_AND_MEAN

@@ -403,6 +410,11 @@ if (write_all || !fs_file_exists(CONVER_HISTORY_FILE))

{ printf("Creating %s...\n", CONVER_HISTORY_FILE); result += print_result(fs_file_create(CONVER_HISTORY_FILE)); + } + if (!fs_file_exists(CONVER_VERSIONING_FILE)) + { + printf("Writing %s...\n", CONVER_VERSIONING_FILE); + result += print_result(fs_write(CONVER_VERSIONING_FILE, versioning)); } return result; }
M src/conver.hsrc/conver.h

@@ -8,6 +8,7 @@ #define CONVER_DRAFT_FILE ".conver/draft.txt"

#define CONVER_RELEASE_FILE ".conver/release.txt" #define CONVER_LEGACY_FILE ".conver/legacy.txt" #define CONVER_HISTORY_FILE ".conver/history.txt" +#define CONVER_VERSIONING_FILE "VERSIONING.md" #include <stddef.h> #include <stdio.h>