Skip to content

Releases: jwodder/versioningit

v2.0.0 — `{version_tuple}` write + onbuild placeholder, et alii

12 Jun 22:23
v2.0.0
Compare
Choose a tag to compare
  • The {version} placeholder in the "basic" format step has been renamed to {base_version}. The old name remains usable, but is deprecated.
    • Breaking: The version argument passed to Versioningit.do_format() and format method callables has been renamed to base_version.
  • A {version_tuple} field, along with the fields available in the format step, is now available for use in templates in the write and onbuild steps.
    • New step and subtable: "template-fields"
    • Breaking: The version arguments passed to Versioningit.do_write(), Versioningit.do_onbuild(), run_onbuild(), and write & onbuild method callables have been replaced with template_fields arguments
    • Added a get_template_fields_from_distribution() function for use by callers of run_onbuild()
  • Versioningit.get_version() now takes optional write and fallback arguments
  • The onbuild step is no longer run when building from an sdist; the configuration therefore no longer needs to be idempotent
  • Drop setuptools runtime dependency
    • setuptools is only needed for get_cmdclasses(), which should only be called in an environment where setuptools is already installed.
  • Prevent log messages from being printed twice under recent versions of setuptools
  • Values supplied for the require-match parameters of the tag2version and onbuild steps must now actually be booleans; previously, values of any type were accepted and were converted to booleans.
  • Added a Versioningit.run() method that returns a structure containing all intermediate & final values
  • "git" method: {author_date} and {committer_date} are no longer "clamped" to less than or equal to {build_date}. This undocumented behavior was based on a misinterpretation of the SOURCE_DATE_EPOCH spec, and was even applied when SOURCE_DATE_EPOCH was not set.
  • When resolving entry points, if multiple entry points with the given group & name are found, error instead of using the first one returned

v1.1.1 — Speed up package import

08 Apr 18:02
v1.1.1
Compare
Choose a tag to compare
  • Do not import setuptools unless needed (contributed by @jenshnielsen)

v1.1.0 — "onbuild" step

03 Mar 21:34
v1.1.0
Compare
Choose a tag to compare
  • Added custom setuptools commands for inserting the project version into a source file at build time
    • New step and subtable: "onbuild"
    • New public get_cmdclasses() and run_onbuild() functions
  • Moved documentation from the README to a Read the Docs site
    • Established external documentation for the public library API
  • When falling back to using tool.versioningit.default-version, emit a warning if the version is not PEP 440-compliant.
  • The versioningit command now honors the VERSIONINGIT_LOG_LEVEL environment variable

v1.0.0 — "git-archive" improvements and some breaking changes

06 Feb 18:20
v1.0.0
Compare
Choose a tag to compare
  • Changes to custom methods:
    • The signatures of the method functions have changed; user-supplied parameters are now passed as a single params: Dict[str, Any] argument instead of as keyword arguments.
    • User-supplied parameters with the same names as step-specific method arguments are no longer discarded.
  • Changes to the "git-archive" method:
    • Lightweight tags are now ignored (by default, but see below) when installing from a repository in order to match the behavior of the %(describe) format placeholder.
    • The "match" and "exclude" settings are now parsed from the describe-subst parameter, which is now required, and the old match and exclude parameters are now ignored.
    • Git 2.35's "tags" option for honoring lightweight tags is now recognized.
    • Added a dedicated error message when an invalid %(describe) placeholder is "expanded" into itself in an archive
  • The file parameter to the "basic" write method is now required when the [tool.versioningit.write] table is present. If you don't want to write the version to a file, omit the table entirely.
  • Library API:
    • Config is no longer exported; it should now be considered private.
    • Merged Versioningit.from_config() functionality into Versioningit.from_project_dir()
    • Renamed Versioningit.from_config_obj() to Versioningit.from_config(); it should now be considered private

v0.3.3 — Support Git 1.8.0

04 Feb 13:35
v0.3.3
Compare
Choose a tag to compare
  • Git 1.8.0 is now the minimum required version for the git methods, and this is documented. (Previously, the undocumented minimum version was Git 1.8.5.)
  • Document the minimum supported Mercurial version as 5.2.

v0.3.2 — Speedup

16 Jan 19:05
v0.3.2
Compare
Choose a tag to compare
  • Call importlib.metadata.entry_points() only once and reuse the result for
    a speedup (contributed by @jenshnielsen)

v0.3.1 — Support tomli 2.0

02 Jan 19:40
v0.3.1
Compare
Choose a tag to compare
  • Support Python 3.10
  • Support tomli 2.0

v0.3.0 — Calculating just the next version

27 Sep 13:16
v0.3.0
Compare
Choose a tag to compare
  • Gave the CLI interface an -n/--next-version option for showing a project's next release version
  • Added a get_next_version() function
  • Added a mention to the README of the existence of exported functionality other than get_version()
  • Renamed the individual step-calling methods of Versioningit to have names of the form do_$STEP()

v0.2.1 — Update for tomli 1.2.0

02 Aug 13:41
v0.2.1
Compare
Choose a tag to compare

v0.2.0 — Mercurial and Git archive support

13 Jul 14:26
v0.2.0
Compare
Choose a tag to compare
  • The log messages displayed for unknown parameters are now at WARNING level instead of INFO and include suggestions for what you might have meant
  • "git" vcs method: default-tag will now be honored if the git describe command fails (which generally only happens in a repository without any commits)
  • Added an experimental "git-archive" method for determining a version when installing from a Git archive
  • Project directories under .git/ are no longer considered to be under version control
  • Project directories inside Git working directories that are not themselves tracked by Git are no longer considered to be under version control
  • Support added for installing from Mercurial repositories & archives