dunamai

Dynamic versioning library and CLI

MIT License

Downloads
2.6M
Stars
322
Committers
14

Bot releases are hidden (Show)

dunamai - v1.11.1 (2022-04-05)

Published by mtkennerly over 2 years ago

  • Fixed the --bump CLI option and the bump argument of Version.serialize bumping even on a commit with a version tag. Now, no bumping occurs on such a commit.
dunamai - v1.11.0 (2022-03-15)

Published by mtkennerly over 2 years ago

  • Explicitly specified Optional[...] typing on arguments with a default of None. (Contributed by jonathangreen)
  • Made VERSION_SOURCE_PATTERN public for consumption by other tools.
dunamai - v1.10.0 (2022-03-08)

Published by mtkennerly over 2 years ago

  • Added branch and timestamp to the Version class, along with associated format placeholders (branch, branch_escaped, timestamp). Branch info is not populated for Darcs and Subversion repositories.

  • Fixed validation for PEP 440, where the local segment was allowed to contain any characters.

  • Fixed validation for Semantic Versioning, where some segments were allowed to contain these additional characters:

    [ \ ] ^ _ `
    
dunamai - v1.9.0 (2022-02-20)

Published by mtkennerly over 2 years ago

dunamai - v1.8.0 (2022-01-27)

Published by mtkennerly over 2 years ago

  • Changed the build backend to poetry-core. (Contributed by fabaff)
  • Clarified serialization options that are ignored when using a custom format.
  • Relaxed dependency range of importlib-metadata for compatibility with Poetry.
  • Added epoch to Version class, default tag pattern, and format placeholders.
  • Fixed PEP 440 validation to allow multiple digits in the epoch.
  • Improved parsing of optional pattern groups so that we don't stop checking at the first one that's omitted.
  • Fixed handling of tags with post/dev stages so that they are serialized and bumped correctly when using PEP 440.
dunamai - v1.7.0 (2021-10-31)

Published by mtkennerly almost 3 years ago

  • Broadened the default version tag pattern to allow more separator styles recognized in PEP 440 pre-normalized forms (-, ., and _).
  • Enhanced serialize_pep440() to normalize the alternative prerelease names (alpha -> a, beta -> b, c/pre/preview -> rc) and capitalizations (RC -> rc, etc).
  • Added a py.typed file for PEP-561. (Contributed by wwuck)
  • Replaced pkg_resources dependency with packaging and importlib_metadata. (Contributed by flying-sheep)
  • Added some missing public items to __all__.
dunamai - v1.6.0 (2021-08-09)

Published by mtkennerly about 3 years ago

  • Fixed an oversight where the default version tag pattern would only find tags with exactly three parts in the base (e.g., v1.0.0 and v1.2.3). This is now relaxed so that v1, v1.2.3.4, and so on are also recognized.

    If you prefer the old default, you can pass a custom --pattern on the command line or a custom pattern to the Version.from_* methods. Specifically, the previous default used ^v(?P<base>\d+\.\d+\.\d+) instead of the new ^v(?P<base>\d+(\.\d+)*), but the rest of the pattern is the same in both defaults.

  • Added support for execution via python -m dunamai. (Contributed by jstriebel)

dunamai - v1.5.5 (2021-04-26)

Published by mtkennerly over 3 years ago

dunamai - v1.5.4 (2021-01-20)

Published by mtkennerly over 3 years ago

  • Fixed handling of Git tags that contain commas.
dunamai - v1.5.3 (2021-01-13)

Published by mtkennerly almost 4 years ago

  • Fixed Semantic Versioning enforcement to allow metadata segments with more than two dot-separated identifiers.
dunamai - v1.5.2 (2020-12-17)

Published by mtkennerly almost 4 years ago

  • For Git, avoided use of --decorate-refs to maintain compatibility with older Git versions.
dunamai - v1.5.1 (2020-12-16)

Published by mtkennerly almost 4 years ago

dunamai - v1.5.0 (2020-12-02)

Published by mtkennerly almost 4 years ago

  • Added the --tagged-metadata option and corresponding attribute on the Version class. (Contributed by mariusvniekerk)
  • Added explicit dependency on setuptools (because of using pkg_resources) for environments where it is not installed by default.
dunamai - v1.4.1 (2020-11-17)

Published by mtkennerly almost 4 years ago

  • For Git, replaced --porcelain=v1 with --porcelain to maintain compatibility with older Git versions.
dunamai - v1.4.0 (2020-11-17)

Published by mtkennerly almost 4 years ago

  • Added the --bump command line option and the bump argument to Version.serialize().
  • Fixed an issue with Git annotated tag sorting. When there was a newer annotated tag A on an older commit and an older annotated tag B on a newer commit, Dunamai would choose tag A, but will now correctly choose tag B because the commit is newer.
  • With Git, trigger the dirty flag when there are untracked files. (Contributed by jpc4242)
dunamai - v1.3.1 (2020-09-27)

Published by mtkennerly about 4 years ago

  • Fixed ambiguous reference error when using Git if a tag and branch name were identical.
dunamai - v1.3.0 (2020-07-04)

Published by mtkennerly over 4 years ago

  • Previously, when there were not yet any version-like tags, the distance would be set to 0, so the only differentiator was the commit ID. Now, the distance will be set to the number of commits so far. For example:

    • No commits: base = 0.0.0, distance = 0
    • 1 commit, no tags: base = 0.0.0, distance = 1
    • 10 commits, no tags: base = 0.0.0, distance = 10
dunamai - v1.2.0 (2020-06-12)

Published by mtkennerly over 4 years ago

  • Added --debug flag in the from command.
dunamai - v1.1.0 (2020-03-22)

Published by mtkennerly over 4 years ago

  • Added these functions to the public API:
    • serialize_pep440
    • serialize_semver
    • serialize_pvp
    • bump_version
dunamai - v1.0.0 (2019-10-26)

Published by mtkennerly almost 5 years ago

  • Changed the Version class to align with Dunamai's own semantics instead of PEP 440's semantics.

    Previously, Version implemented all of PEP 440's features, like epochs and dev releases, even though Dunamai itself did not use epochs (unless you created your own Version instance with one and serialized it) and always set dev to 0 in the from_git/etc methods. The serialize method then tried to generalize those PEP 440 concepts to other versioning schemes, as in 0.1.0-epoch.1 for Semantic Versioning, even though that doesn't have an equivalent meaning in that scheme.

    Now, the Version class implements the semantics used by Dunamai, giving it more power in the serialization to map those concepts in an appropriate way for each scheme. For example, dev0 is now only added for PEP 440 (in order to be compatible with Pip's --pre flag), but dev.0 is no longer added for Semantic Versioning because it served no purpose there.

    API changes:

    • post has been renamed to distance, and its type is simply int rather than Optional[int]
    • epoch and dev have been removed
    • pre_type has been renamed to stage
    • pre_number has been renamed to revision, and it is no longer required when specifying a stage
  • Improved error reporting when the version control system cannot be detected and when a specified VCS is unavailable.

  • Improved the default regular expression for tags:

    • It now requires a full match of the tag.
    • It now recognizes when the base and stage are separated by a hyphen.
    • It now recognizes when the stage and revision are separated by a dot.
    • It now allows a stage without a revision.
Package Rankings
Top 41.96% on Formulae.brew.sh
Top 22.55% on Conda-forge.org
Top 13.16% on Alpine-edge
Top 2.52% on Pypi.org
Top 15.84% on Spack.io
Top 39.55% on Anaconda.org