mdbx: поддержка Semantic Versioning.

Было `MAJOR.MINOR.RELEASE.REVISION`
Теперь `MAJOR.MINOR.PATCH[.TWEAK][-PRERELEASE][+BUILDMETADATA]`

https://semver.org/

 - вместо квартета `MAJOR.MINOR.RELEASE.REVISION`
   триплет c опцинальным четвертым членом `MAJOR.MINOR.PATCH[.TWEAK]`

 - `TWEAK` не входит в тег git, а формируется автоматически и
   соответствует кол-ву коммитов после тега git и опускается если 0.

 - Поле `PRERELEASE` опционально и переносится в версию из тега git.

 - Поле `BUILDMETADATA` опционально, не входит в тег git, а
   добавляется во время сборки если задана опцией `MDBX_BUILD_METADATA`.
This commit is contained in:
Леонид Юрьев (Leonid Yuriev)
2024-11-24 20:46:21 +03:00
parent bcf0a1273f
commit 9daff17c82
12 changed files with 430 additions and 334 deletions

11
mdbx.h
View File

@@ -660,12 +660,13 @@ extern "C" {
#define LIBMDBX_VERINFO_API __dll_export
#endif /* LIBMDBX_VERINFO_API */
/** \brief libmdbx version information */
/** \brief libmdbx version information, \see https://semver.org/ */
extern LIBMDBX_VERINFO_API const struct MDBX_version_info {
uint8_t major; /**< Major version number */
uint8_t minor; /**< Minor version number */
uint16_t release; /**< Release number of Major.Minor */
uint32_t revision; /**< Revision number of Release */
uint16_t major; /**< Major version number */
uint16_t minor; /**< Minor version number */
uint16_t patch; /**< Patch number */
uint16_t tweak; /**< Tweak number */
const char *semver_prerelease; /**< Semantic Versioning `pre-release` */
struct {
const char *datetime; /**< committer date, strict ISO-8601 format */
const char *tree; /**< commit hash (hexadecimal digits) */