Skip to content

jsonschema == 3.0.0a2 is not compatible with python 3.8 and above #34

@MartinWallgren

Description

@MartinWallgren

Description

jsonschema generates the below deprecation warning in python 3.7

======================================================================================================================= warnings summary ========================================================================================================================
../../../../.cache/pypoetry/virtualenvs/reactor-MehGalhR-py3.7/lib/python3.7/site-packages/jsonschema/compat.py:6
../../../../.cache/pypoetry/virtualenvs/reactor-MehGalhR-py3.7/lib/python3.7/site-packages/jsonschema/compat.py:6
  /home/martinwa/.cache/pypoetry/virtualenvs/reactor-MehGalhR-py3.7/lib/python3.7/site-packages/jsonschema/compat.py:6: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
    from collections import MutableMapping, Sequence  # noqa

-- Docs: https://docs.pytest.org/en/stable/warnings.html

The issue has been fixed in newer versions of jsonschema (python-jsonschema/jsonschema#694) but since there is a hard requirement on an explicit version in eiffellib all users of the lib are stuck on python 3.7

I propose a less restrictive version declaration of jsonschema (at least a proven version but no more than the next major).
If all libraries require explicit versions it would be near impossible to use more than a handful of dependencies before dependency resolution becomes impossible due to conflicting version requirements.

Motivation

All users of the eiffellib are stuck on python 3.7

Exemplification

All users of the eiffellib are stuck on python 3.7

Benefits

Users of this lib can use the latest python versions.
Users of this lib will have an easier time to combine this lib with other libraries that also depend on jsonschema.

Possible Drawbacks

The drawback is of course less control of the version. But should a client of this lib be nervous about that they should use a constraints with explicit versions of transient dependencies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions