Skip to content

Latest commit

 

History

History
253 lines (186 loc) · 8.86 KB

changelog.rst

File metadata and controls

253 lines (186 loc) · 8.86 KB

versioningit

Changelog

v3.1.0 (2024-03-16)

  • When git describe fails to retrieve a tag, the resulting log/error message now includes all options passed to the command (based on contribution by @jenshnielsen)
  • When hg log fails to retrieve a tag, the resulting log/error message now includes the tag pattern passed to latesttag(), if any

v3.0.0 (2023-12-13)

  • Migrated from setuptools to hatch
  • Support using the onbuild step with Hatch
  • Breaking: The build_dir argument passed to Versioningit.do_onbuild() and onbuild method callables has been changed to an OnbuildFileProvider ABC

v2.3.0 (2023-11-19)

  • Always read .hg_archival.txt files using UTF-8 encoding
  • Added support for using versioningit with Hatch

v2.2.1 (2023-09-22)

  • Raise a ConfigError if the selected tool.versioningit.format field is not a string
  • Update tests for pydantic 2.0
  • Update tests for Python 3.12
  • Support Python 3.12

v2.2.0 (2023-02-11)

  • The custom setuptools command classes can now be imported directly from the versioningit.cmdclass module as an alternative to calling get_cmdclasses()

v2.1.0 (2022-10-25)

  • Drop support for Python 3.6
  • Support Python 3.11
  • Use tomllib on Python 3.11

v2.0.1 (2022-08-01)

  • Don't run the onbuild step under setuptools' upcoming PEP 660 editable mode (contributed by @abravalheri)

v2.0.0 (2022-06-12)

  • 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.2 (2022-08-12)

  • Backport "Don't run the onbuild step under setuptools' upcoming PEP 660 editable mode" from v2.0.1 (contributed by @abravalheri)

v1.1.1 (2022-04-08)

  • Do not import setuptools unless needed (contributed by @jenshnielsen)

v1.1.0 (2022-03-03)

  • 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 (2022-02-06)

  • 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 (2022-02-04)

  • 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 (2022-01-16)

  • Call importlib.metadata.entry_points() only once and reuse the result for a speedup (contributed by @jenshnielsen)

v0.3.1 (2022-01-02)

  • Support Python 3.10
  • Support tomli 2.0

v0.3.0 (2021-09-27)

  • 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 (2021-08-02)

  • Update for tomli 1.2.0

v0.2.0 (2021-07-13)

  • 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

v0.1.0 (2021-07-08)

  • Add more logging messages
  • Changed default version formats to something that doesn't use {next_version}
  • "basic" tag2version method:
    • If regex is given and it does not contain a group named "version," the entire text matched by the regex will be used as the version
    • Added a require-match parameter for erroring if the regex does not match
  • "basic" write method: encoding now defaults to UTF-8
  • New next-version methods: "minor-release", "smallest-release", and "null"
  • Replaced entrypoints dependency with importlib-metadata
  • Added tool.versioningit.default-version for setting the version to use if an error occurs
  • When building a project from a shallow clone or in a non-sdist directory without VCS information, display an informative error message.

v0.1.0a1 (2021-07-05)

Alpha release