Added support for writing VERSIONING.md if not present.
h3rald h3rald@h3rald.com
Fri, 12 Jun 2026 12:44:32 +0200
4 files changed,
43 insertions(+),
1 deletions(-)
M
README.md
→
README.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.c
→
src/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.h
→
src/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>