Changelog

2025.1.8 : Fixed the union type annotation ( https://todo.sr.ht/~sthagen/versioalueet/2 ) and enhanced debug handling

  • adapted report to new debug mode management
  • added new debug option including tests
  • fixed the union type annotation to restore python 3.9 compatibility
  • increased test coverage
  • VERSIOALUEET_DEBUG environment variable now only used to overwrite the new debug option (which it should not, ahem) to simplify the state machine

2025.1.6 : Fixed the env report and refactored fail function

2024.12.30 : Simplified optimization code, added tests, inceased consistency

  • added (real) repr and str methods
  • added doctest execution via pytest
  • added hash and eq methods to only consider the version range string
  • added test for round trip dump to and load from string
  • added tests for identity and comparisons
  • better names for optimizing and squeezing
  • better names for the stencil variables
  • extracted function for the squeeze
  • guaranteed consistent comparator typed pair containers in model
  • removal of unused variables
  • removed YAGNI doctest stub
  • replaced use of pkg_resources - untested
  • simplified function return types
  • simplified squeezing algorithm
  • updated and amended API and CLI docs
  • updated the doctests

2024.12.29 : Added constraints optimization, unified EQ handling, optimized resource import, and refactored literals of relevance

  • added compressed version constraints string to model
  • added test cases for version constraints optimization
  • added test for normalize with explicit argument
  • added tests for version and report capabilities
  • aligned an EQ test case to the new unified handling
  • cosmetics for help example in API doc
  • empty and EQ comparator now are both mapped to EQ in the model
  • fixed failed CPSR-coding for README and documentation index
  • implemented the specified example algorithm from spec to validate and optimize the contingent version constraints
  • map classical two letter abbreviations for comparators to literals to ease maintenance
  • name a special indicator for URL encoded version strings
  • on output the optimized version constraints string is stripped of all EQ comparators
  • replaced the clumsy try-except around resource import with the more natural use of importlib.util.find_spec
  • updated version call example

2024.12.27 : Added environment reporting and updated documentation

  • added clarification to example in usage doc
  • added custom stylesheet to enlarge content width
  • added env module to provide process level environment reports
  • added JSON and dict format to report function
  • added report capability to CLI
  • added some 'pragma: no cover' exemptions
  • added tests for the new reporting module (env)
  • added validator and optimizer for version constraint pair sets (no implementation yet)
  • changed report command to prduce JSON
  • fixed failed CPSR-coding of pyproject.toml and requirements.txt
  • fixed heading and amended intro of API document
  • had to ignore a lot of type errors
  • included some import juggling to test dummy values in case the resource module is not available
  • no third-party dependencies besides python standard library
  • refactored CLI test to enhance maintenance with changing capabilities and changing terminal widths (in the test runs)
  • refactored env report into separate module
  • refactored unique version validation to be inside version constraint pair parsing
  • replaced debug version of an example
  • replaced help screen info
  • simplified flattening for log format reports (verbose or debug mode)
  • split assessment from report
  • updated API and CLI usage docs
  • updated benchmark to cover latest published version
  • updated third-party documentation
  • widened the content area in documentation

2024.12.26 : Fixed meta data, amended capabilities, and optimized version ranges parser

  • added a version option for the library / package
  • added conditional validation of aby version arguments given
  • added positional version argument(s) to complete command line interface for version inclusion
  • added the python 3.13 interoperability claim (untested)
  • amended documentation on usage and API
  • ensured the normalize method works as intended (still maybe add a free function)
  • fixed corner case in normalize when receiving explicit empty string
  • fixed meta data that caused an implementation less package publication
  • harmonized the order of short and long options for the help page
  • moved from replace to classic python split-join idiom for un-spacing
  • updated test (for now with many copies of the changed brittle usage tagline)

2024.12.25 : Initial release on PyPI allowing some version ranges validation already

  • warning: this release was broken as no implementation was included (cf. 2024.12.26 for the fix)