Skip to content

2.0.0

Latest

Choose a tag to compare

@RuedigerVoigt RuedigerVoigt released this 02 Nov 21:56
· 1 commit to main since this release
  • Supported Python versions:
    • Dropped support for old Python versions including 3.9 due to EOL of these versions.
    • Add support for Python 3.10 to 3.14.
  • Quality:
    • Ensure with an automatic workflow that coverage is 97% or higher.
    • Enabled stricter mypy type checking (disallow_untyped_defs and disallow_incomplete_defs).
    • Converted all docstrings to Google format.
  • Security:
  • New:
    • Use package-specific logger (logging.getLogger('compatibility')) instead of root logger. This allows users to selectively control compatibility's log verbosity independently from their application's logging.
    • Use custom exceptions (ParameterContradiction and BadDate).
    • Improved messages
    • Translations:
      • Translations now use the gettext standard module instead of a custom solution. That makes it easier to add new languages.
      • All messages are now available in English and German.
      • The language_messages parameter now works correctly - each Check instance uses the language specified in its parameter rather than the environment variable.
  • Bugfixes:
    • Fixed inverted comparison logic in max_tested_version check. Previously warned when running an older Python version than tested; now correctly warns when running a newer version than tested.
    • Map Darwin to MacOS for proper macOS detection (platform.system() returns 'Darwin' on macOS).
    • Fixed version regex to properly capture release levels (alpha, beta, candidate, final). Changed from lazy ?? to greedy ? quantifier, which now correctly parses version strings like "3.10.alpha".
    • Replaced logger.exception() with logger.error() before raising intentional exceptions to avoid noisy duplicate tracebacks in logs.