DUNAMAI(1)
β¨ DUNAMAI β¨
okay so bestie, buckle up π this is the dunamai page from section 1 of the User Commands manual, and she is iconic. we're getting versions out of literally any VCS you throw at us. no cap.
πΈ NAME πΈ
dunamai β dunamai from any π
π¦ DESCRIPTION π¦
the way this thing works is you run it like this, and it's giving effortless:
usage: dunamai from any [-h] [--metadata] [--no-metadata] [--dirty]
[--ignore-untracked] [--tagged-metadata]
[--pattern PATTERN] [--pattern-prefix PATTERN_PREFIX] [--format
FORMAT] [--style {pep440,semver,pvp}] [--latest-tag]
[--highest-tag] [--strict] [--path PATH] [--debug] [--bump]
[--full-commit] [--commit-length COMMIT_LENGTH] [--commit-prefix
COMMIT_PREFIX] [--escape-with ESCAPE_WITH] [--tag-branch
TAG_BRANCH] [--tag-dir TAG_DIR]
Generate version from any detected VCS β¨ like. any of them. she doesn't play favorites π«Ά
π options π
-h,--helpβ show this help message and exit. the classic. the moment. π«Ά--metadataβ always include metadata. ignored when--formatis used (default:None)--no-metadataβ never include metadata, bestie. not ever. ignored when--formatis used (default:None)--dirtyβ include the dirty flag if it applies. ignored when--formatis used (default:False)--ignore-untrackedβ when she's figuring out whether the repo is dirty, just pretend untracked files aren't there. (only: Git) (default:False)--tagged-metadataβ include tagged metadata if it applies. ignored when--formatis used (default:False)--pattern PATTERNβ a regular expression matched against the version source. this one has rules, so listen up:- it must contain one capture group named
base, and that group corresponds to the release segment of the source. - optionally, it may contain another two groups named
stageandrevision, corresponding to a prerelease type (such as'alpha'or'rc') and number (such as in'alpha-2'or'rc3'). - it may also contain a group named
tagged_metadata, corresponding to extra metadata after the main part of the version (typically after a plus sign). - there may also be a group named
epochfor the PEP 440 concept. - if the
basegroup is not present, then instead this will be interpreted as a named preset, which may be one of the following:default,default-unprefixed.
- it must contain one capture group named
(default:)
(?x) (?# ignore whitespace)
^v((?P<epoch>\d+)!)?(?P<base>\d+(\.\d+)*) (?# v1.2.3 or v1!2000.1.2) ([-._]?((?P<stage>[a-zA-Z]+)[-._]?(?P<revision>\d+)?))? (?# b0) (\+(?P<tagged_metadata>.+))?$
(?# +linux)
--pattern-prefix PATTERN_PREFIXβ insert this right after the pattern's start anchor (^). (default:None)--format FORMATβ custom output format, your own little aesthetic β¨ available substitutions:{base},{stage},{revision},{distance},{commit},{dirty},{tagged_metadata},{epoch},{branch},{branch_escaped},{timestamp},{major},{minor},{patch}(default:None)--style {pep440,semver,pvp}β a preconfigured output format. will default to PEP 440 if not set and no custom format given. if you specify both a style and a custom format, then the format will be validated against the style's rules. (default:None)--latest-tagβ only inspect the latest tag on the latest tagged commit for a pattern match. (default:False)--highest-tagβ only inspect the numerically highest tag across all tagged commits for a pattern match. (default:False)--strictβ elevate warnings to errors. when there are no tags, fail instead of falling back to0.0.0. she's not letting it slide. (default:False)--path PATHβ directory to inspect, if it's not the current working directory. (default:None)--debugβ display additional information on stderr for troubleshooting. π΅οΈ (default:False)--bumpβ increment the last part of the versionbaseby 1, unless thestageis set, in which case increment therevisionby 1 or set it to a default of2if there was norevision. does nothing when on a commit with a version tag. (default:False)--full-commitβ get the full commit hash instead of the short form. (only: Git, Mercurial) (default:False)--commit-length COMMIT_LENGTHβ use this many characters from the start of the full commit hash. (default:None)--commit-prefix COMMIT_PREFIXβ add this prefix when serializing commit IDs. (default:None)--escape-with ESCAPE_WITHβ when escaping, replace with this substitution. the default is simply to remove invalid characters. (default:None)--tag-branch TAG_BRANCHβ branch on which to find tags, if it's different than the current branch. (only: Git) (default:None)--tag-dir TAG_DIRβ location of tags relative to the root. (only: Subversion) (default:tags)
okay that's the whole thing, you ate that π
this was dunamai from any 1.26.2, dated August 2026 π mwah, go generate some versions bestie πβ¨π¦
π¦ where this page comes from
- fedora 43: python3-dunamai 1.26.2-1.fc43 Β· MIT
- fedora 44: python3-dunamai 1.26.2-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms