DUNAMAI(1)

πŸ“¦
version 1.26.2 Β· 5 versions
, in fedora 43, fedora 44

✨ 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 --format is used (default: None)
  • --no-metadata β€” never include metadata, bestie. not ever. ignored when --format is used (default: None)
  • --dirty β€” include the dirty flag if it applies. ignored when --format is 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 --format is 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 stage and revision, 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 epoch for the PEP 440 concept.
    • if the base group is not present, then instead this will be interpreted as a named preset, which may be one of the following: default, default-unprefixed.

(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 to 0.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 version base by 1, unless the stage is set, in which case increment the revision by 1 or set it to a default of 2 if there was no revision. 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