Change Log

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

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.