DUNAMAI(1)

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

πŸ‘‘ DUNAMAI(1) β€” the dunamai manual, bestie edition πŸ‘‘

okay so. this is the man page for dunamai, and it lives in section 1 of the manual, which is the User Commands section. it's specifically the dunamai from darcs subcommand. buckle up, it's giving version-generation realness πŸ’…


✨ NAME ✨

dunamai β€” dunamai from darcs πŸ¦‹

like. that's literally it. that's the name. she's simple, she's iconic.


🌸 DESCRIPTION 🌸

here's the whole vibe of how you call her:

usage: dunamai from darcs [-h] [--metadata] [--no-metadata] [--dirty]
                          [--tagged-metadata] [--pattern PATTERN]
                          [--pattern-prefix PATTERN_PREFIX] [--format FORMAT]
                          [--style {pep440,semver,pvp}] [--latest-tag]
                          [--highest-tag] [--strict] [--path PATH] [--debug]
                          [--bump] [--commit-length COMMIT_LENGTH]
                          [--commit-prefix COMMIT_PREFIX]
                          [--escape-with ESCAPE_WITH]

and what does she actually do? Generate version from Darcs πŸŽ€ that's the whole job. she looks at your Darcs repo and produces a version string for you. no cap.


πŸŽ€ options πŸŽ€

okay bestie this is the long part, but every single one of them matters, so we're doing all of them, fr fr. πŸ”₯

  • -h, --help β€” show this help message and exit. the classic. the "not me reading the help again" move πŸ™ˆ
  • --metadata β€” Always include metadata. Ignored when --format is used (default: None).
  • --no-metadata β€” Never include metadata. Ignored when --format is used (default: None).
  • --dirty β€” include the dirty flag if applicable. Ignored when --format is used (default: False).
  • --tagged-metadata β€” include tagged metadata if applicable. Ignored when --format is used (default: False).
  • --pattern PATTERN β€” a regular expression matched against the version source. This must contain one capture group named base corresponding 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.

the default is this whole entire thing, verbatim, do not touch her:

(?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)

(default: None)

  • --pattern-prefix PATTERN_PREFIX β€” insert this after the pattern's start anchor (^). (default: None)
  • --format FORMAT β€” custom output format. Available substitutions: {base}, {stage}, {revision}, {distance}, {commit}, {dirty}, {tagged_metadata}, {epoch}, {branch}, {branch_escaped}, {timestamp}, {major}, {minor}, {patch} (default: None)
  • --style {pep440,semver,pvp} β€” 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 (default: False). she said no chill today 🫢
  • --path PATH β€” directory to inspect, if 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)
  • --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)

πŸ’€ real talk: the ones that say "Ignored when --format is used" β€” that's not a suggestion, that's just how she works. you set --format, those flags clock out. periodt.
πŸ’€ and --strict will literally make your no-tag situation fail instead of coasting on 0.0.0. dramatic? yes. correct? also yes.

and that's the whole page, bestie!! βœ¨πŸ’–πŸŽ€πŸ¦‹πŸŒΈπŸ’…

this was dunamai from darcs version 1.26.2, dated August 2026 β€” go forth and generate versions, you absolute icon πŸ‘‘πŸŒΊβ­

πŸ“¦ where this page comes from