Files
obitools4/autodoc/docmd/pkg/obioptions/version.md
T
Eric Coissac 8c7017a99d ⬆️ version bump to v4.5
- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5"
- Update version.txt from 4.29 → .30
(automated by Makefile)
2026-04-13 13:34:53 +02:00

36 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OBIOptions Package Semantic Description
The `obioptions` package provides a lightweight, version-aware utility for the OBITools suite. Its core functionality is centered around exposing runtime version information in a standardized and programmatic way.
## Key Features
- **Version Exposure**:
Exposes the current version of OBITools via a simple, read-only function `VersionString()`. This allows other modules or external tools to query the package version at runtime.
- **Automated Versioning**:
The `_Version` variable is automatically populated from an external `version.txt` file during the build process (via Makefile), ensuring consistency between source metadata and compiled artifacts.
- **Patch-Level Tracking**:
The version follows semantic conventions (`MAJOR.MINOR.PATCH`), with the patch number incremented automatically on each repository push—enabling precise tracking of development iterations.
- **No Side Effects**:
The `VersionString()` function is pure: it takes no parameters and performs only a string return, making it safe for use in logging, diagnostics, or compatibility checks.
- **Documentation Ready**:
Includes inline GoDoc comments for clarity and tooling support (e.g., `go doc`), improving maintainability.
## Use Cases
- Debugging and logging (e.g., including version in error reports).
- Conditional logic based on OBITools compatibility.
- CI/CD validation (e.g., verifying deployed version matches expectations).
## Version Format
`"Release X.Y.Z"` (e.g., `"Release 4.4.29"`), where:
- `X` = Major release (breaking changes),
- `Y` = Minor release (new features, backward-compatible),
- `Z` = Patch level (incremented per push for hotfixes/bug fixes).
No external dependencies or configuration required.