Change Log

Changes for the upcoming release can be found in the “changelog.d” directory in our repository.

Version 3.0.0-dev.3

Released

2022-01-19

Maintainer

Tom Schraitle

Bug Fixes

  • #310: Rework API documentation. Follow a more “semi-manual” attempt and add auto directives into docs/api.rst.

Improved Documentation

  • #312: Rework “Usage” section.

    • Mention the rename of VersionInfo to Version class

    • Remove semver. prefix in doctests to make examples shorter

    • Correct some references to dunder methods like __getitem__(), __gt__() etc.

    • Remove inconsistencies and mention module level function as deprecated and discouraged from using

    • Make empty super() call in semverwithvprefix.py example

  • #315: Improve release procedure text

Trivial/Internal Changes

  • #309: Some (private) functions from the semver.version module has been changed.

    The following functions got renamed:

    • function semver.version.comparator got renamed to semver.version._comparator() as it is only useful inside the Version class.

    • function semver.version.cmp got renamed to semver.version._cmp() as it is only useful inside the Version class.

    The following functions got integrated into the Version class:

    • function semver.version._nat_cmd as a classmethod

    • function semver.version.ensure_str

  • #313: Correct tox.ini for changelog entry to skip installation for semver. This should speed up the execution of towncrier.

  • #316: Comparisons of Version class and other types return now a NotImplemented constant instead of a TypeError exception.

    The NotImplemented section of the Python documentation recommends returning this constant when comparing with __gt__, __lt__, and other comparison operators to “to indicate that the operation is not implemented with respect to the other type”.

  • #319: Introduce stages in .travis.yml The config file contains now two stages: check and test. If check fails, the test stage won’t be executed. This could speed up things when some checks fails.

  • #322: Switch from Travis CI to GitHub Actions.

  • #347: Support Python 3.10 in GitHub Action and other config files.


Version 3.0.0-dev.2

Released

2020-11-01

Maintainer

Tom Schraitle

Deprecations

  • #169: Deprecate CLI functions not imported from semver.cli.

Features

  • #169: Create semver package and split code among different modules in the packages.

    • Remove semver.py

    • Create src/semver/__init__.py

    • Create src/semver/cli.py for all CLI methods

    • Create src/semver/_deprecated.py for the deprecated decorator and other deprecated functions

    • Create src/semver/__main__.py to allow calling the CLI using python -m semver

    • Create src/semver/_types.py to hold type aliases

    • Create src/semver/version.py to hold the Version class (old name VersionInfo) and its utility functions

    • Create src/semver/__about__.py for all the metadata variables

  • #305: Rename VersionInfo to Version but keep an alias for compatibility

Improved Documentation

  • #304: Several improvements in documentation:

    • Reorganize API documentation.

    • Add migration chapter from semver2 to semver3.

    • Distinguish between changlog for version 2 and 3

  • #305: Add note about Version rename.

Trivial/Internal Changes

  • #169: Adapted infrastructure code to the new project layout.

    • Replace setup.py with setup.cfg because the setup.cfg is easier to use

    • Adapt documentation code snippets where needed

    • Adapt tests

    • Changed the deprecated to hardcode the semver package name in the warning.

    Increase coverage to 100% for all non-deprecated APIs

  • #304: Support PEP-561 py.typed.

    According to the mentioned PEP:

    “Package maintainers who wish to support type checking of their code MUST add a marker file named py.typed to their package supporting typing.”

    Add package_data to setup.cfg to include this marker in dist and whl file.


Version 3.0.0-dev.1

Released

2020-10-26

Maintainer

Tom Schraitle

Deprecations

  • PR #290: For semver 3.0.0-alpha0:

    • Remove anything related to Python2

    • In tox.ini and .travis.yml Remove targets py27, py34, py35, and pypy. Add py38, py39, and nightly (allow to fail)

    • In setup.py simplified file and remove Tox and Clean classes

    • Remove old Python versions (2.7, 3.4, 3.5, and pypy) from Travis

  • #234: In setup.py simplified file and remove Tox and Clean classes

Features

  • PR #290: Create semver 3.0.0-alpha0

    • Update README.rst, mention maintenance branch maint/v2.

    • Remove old code mainly used for Python2 compatibility, adjusted code to support Python3 features.

    • Split test suite into separate files under tests/ directory

    • Adjust and update setup.py. Requires Python >=3.6.* Extract metadata directly from source (affects all the __version__, __author__ etc. variables)

  • #270: Configure Towncrier (PR #273:)

    • Add changelog.d/.gitignore to keep this directory

    • Create changelog.d/README.rst with some descriptions

    • Add changelog.d/_template.rst as Towncrier template

    • Add [tool.towncrier] section in pyproject.toml

    • Add “changelog” target into tox.ini. Use it like tox -e changelog -- CMD whereas CMD is a Towncrier command. The default tox -e changelog calls Towncrier to create a draft of the changelog file and output it to stdout.

    • Update documentation and add include a new section “Changelog” included from changelog.d/README.rst.

  • #276: Document how to create a sublass from VersionInfo class

  • #213: Add typing information

Bug Fixes

  • #291: Disallow negative numbers in VersionInfo arguments for major, minor, and patch.

Improved Documentation

  • PR #290: Several improvements in the documentation:

    • New layout to distinguish from the semver2 development line.

    • Create new logo.

    • Remove any occurances of Python2.

    • Describe changelog process with Towncrier.

    • Update the release process.

Trivial/Internal Changes

  • PR #290: Add supported Python versions to black.