Previously, the CLI hardcoded "1.0.0" as the version string in two places (the root command and the generate-entry subcommand).
Introduce pkg/version, a minimal package that exposes a single variable Version, defaulting to "dev". The root command now references such a value; generate-entry does not need it al all
The Makefile computes the version at build time by running:
git describe --tags --always
This produces the exact tag name when HEAD is tagged, or --g when it is not, giving a precise description of the build relative to the nearest ancestor tag. If git is unavailable, the value falls back to "dev".
The resulting string is injected into the binary via:
-ldflags "-X github.com/89luca89/distrobox/pkg/version.Version=<value>" so that distrobox --version and distrobox generate-entry --version both report the exact version of the build.
* chore(repo): remove shell implementation
* chore(repo): remove bash completion for sub-commands
There is no need for separate files as there will be no dedicated binary
for sub-commands
* chore(repo): remove zsh completion for sub-commands
There is no need for separate files as there will be no dedicated binary
for sub-commands
* chore(repo): delete RFC
We are not using RFC at the moment
* chore(repo): move golang project to the root
* chore(ci): move golang project to the root
* chore(repo): use standard .gitignore for golang projects
source: https://github.com/github/gitignore/blob/main/Go.gitignore
* chore(ci): compatibility CI to handle a golang project
* refactor(ci): run shell script checks against the inside-distrobox files
* refactor(ci): merge ci.yml workflow into main.yml