Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] setuptools doesn't build with Python 3.11.0a7 / upgrade bundled pyparsing #3274

Closed
hrnciar opened this issue Apr 19, 2022 · 4 comments · Fixed by #3276
Closed

[BUG] setuptools doesn't build with Python 3.11.0a7 / upgrade bundled pyparsing #3274

hrnciar opened this issue Apr 19, 2022 · 4 comments · Fixed by #3276
Labels
bug Needs Triage Issues that need to be evaluated for severity and status.

Comments

@hrnciar
Copy link

hrnciar commented Apr 19, 2022

setuptools version

60.9.3

Python version

3.11.0a7

OS

Fedora Rawhide

Additional environment information

No response

Description

Pyparsing bundled in setuptools uses sre_constants module. Since Python 3.11.0a7 this module is deprecated and setuptools build fails with DeprecationWarning. This was already fixed in pyparsing 3.0.8 so updating bundled pyparsing should fix this problem.

Expected behavior

Setuptools builds with Python 3.11.0a7+.

How to Reproduce

Build setuptools with Python 3.11.0a7.

Output

+ /usr/bin/pytest --ignore=setuptools/tests/test_integration.py --ignore=setuptools/tests/integration/ --ignore=setuptools/tests/test_develop.py -k 'not test_pip_upgrade_from_source'
Traceback (most recent call last):
  File "/usr/bin/pytest", line 8, in <module>
    sys.exit(console_main())
             ^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 188, in console_main
    code = main()
           ^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 146, in main
    config = _prepareconfig(args, plugins)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 325, in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 55, in _multicall
    gen.send(outcome)
    ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/helpconfig.py", line 102, in pytest_cmdline_parse
    config: Config = outcome.get_result()
                     ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1013, in pytest_cmdline_parse
    self.parse(args)
    ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1301, in parse
    self._preparse(args, addopts=addopts)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1203, in _preparse
    self.hook.pytest_load_initial_conftests(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 60, in _multicall
    return outcome.get_result()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1080, in pytest_load_initial_conftests
    self.pluginmanager._set_initial_conftests(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 529, in _set_initial_conftests
    self._try_load_conftest(current, namespace.importmode, rootpath)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 534, in _try_load_conftest
    self._getconftestmodules(anchor, importmode, rootpath)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 565, in _getconftestmodules
    mod = self._importconftest(conftestpath, importmode, rootpath)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 620, in _importconftest
    self.consider_conftest(mod)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 701, in consider_conftest
    self.register(conftestmodule, name=conftestmodule.__file__)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 467, in register
    self.consider_module(plugin)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 709, in consider_module
    self._import_plugin_specs(getattr(mod, "pytest_plugins", []))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 716, in _import_plugin_specs
    self.import_plugin(import_spec)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 743, in import_plugin
    __import__(importspec)
    ^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/setuptools/__init__.py", line 16, in <module>
    import setuptools.version
    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/setuptools/version.py", line 1, in <module>
    import pkg_resources
    ^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/__init__.py", line 84, in <module>
    __import__('pkg_resources.extern.packaging.requirements')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/_vendor/packaging/requirements.py", line 10, in <module>
    from pkg_resources.extern.pyparsing import (  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 676, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 573, in module_from_spec
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/extern/__init__.py", line 52, in create_module
    return self.load_module(spec.name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/extern/__init__.py", line 37, in load_module
    __import__(extant)
    ^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/_vendor/pyparsing.py", line 87, in <module>
    import sre_constants
    ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/sre_constants.py", line 2, in <module>
    warnings.warn(f"module {__name__!r} is deprecated",
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DeprecationWarning: module 'sre_constants' is deprecated
@hrnciar hrnciar added bug Needs Triage Issues that need to be evaluated for severity and status. labels Apr 19, 2022
@hroncok
Copy link
Contributor

hroncok commented Apr 19, 2022

@abravalheri
Copy link
Contributor

Thank you very much @hrnciar. I created a PR with the update of the bundled package.

Ps: Either the previous bundled version had patches that I could not find or it would seem that pyparsing grew massively in size between v2 and v3...

@encukou
Copy link
Contributor

encukou commented Apr 21, 2022

FWIW, it seems pyparsing is only needed as a dependency of packaging, which has an approved but unmerged PR to remove the dependency: pypa/packaging#484

@abravalheri
Copy link
Contributor

Thank you very much @encukou. I believe that PR would make things easier, so I am hoping it lands soon.

(Interestingly @hrnciar is precisely the author 😄, thank you very much Tomáš!)

Meanwhile we can go with #3276. I will adopt the approach I usually follow with the PRs: leave it open for a while waiting to see if any other maintainer or contributor have feedback or would like to present a reason for us not to merge it.

Julian added a commit to python-jsonschema/jsonschema that referenced this issue May 5, 2022
clrpackages pushed a commit to clearlinux-pkgs/pypi-jsonschema that referenced this issue Jun 17, 2022
…ersion 4.6.0

AleksaC (1):
      Add pre-commit hook config

Andrew Scheller (1):
      Remove stray double-quote

Bastien Vallet (1):
      [compat] Drop support of PY2

Damien Tardy-Panis (1):
      add json_path error attribute

Dmitry Dygalo (6):
      perf: Undesired fallback to brute force container uniqueness check on certain input types
      perf: Cache reference lookups for subschemas
      perf: Use cached lookups for resolving fragments if the referent document is known
      perf: Replace the `Validator.evolve` method with an equivalent class attribute
      docs: Update changelog
      perf: Cache subschemas

DrGFreeman (2):
      Revert "Temporarily skip the failing tests from #866."
      Ensure all items of array are checked for uniqueness

Floyd Hightower (1):
      Add package_url for changelog

Francisco Couzo (1):
      Delete unused dependency

GermanoGuerrini (1):
      Avoid setup_requires offline installation issues

Harald Nezbeda (35):
      Fixes validation for uri-template format
      python-jsonschema/jsonschema#686: Fixes unique and equal checks
      Add test for list_equal and dict_equal
      Add test case with custom sequance type
      Extend sequance and mapping check
      Use python 3.9 for coverage
      Remove pathlib2 compatibility code.
      python-jsonschema/jsonschema#782: Enable draft2020-12 test suite
      python-jsonschema/jsonschema#782: Split format and regular test cases on draft2020-12
      python-jsonschema/jsonschema#782: Add dependentRequired and dependentSchemas validation
      python-jsonschema/jsonschema#782: Extend format check for draft2020-12, add duration format check
      python-jsonschema/jsonschema#782: Add checks for prefixItems, basic check for unevaluatedItems
      python-jsonschema/jsonschema#782: Adapt items to work with prefixItems
      python-jsonschema/jsonschema#782: Extend contains with minContains and maxContaints, add contains legacy validator
      python-jsonschema/jsonschema#782: Implements unevaluatedItems validations
      python-jsonschema/jsonschema#782: Implements unevaluatedProperties validations
      python-jsonschema/jsonschema#782: Extend implementation of ref
      python-jsonschema/jsonschema#782: Fixes ref validation priority
      python-jsonschema/jsonschema#782: Fixes ref resolver for folders
      python-jsonschema/jsonschema#782: Extend resolver for anchor
      python-jsonschema/jsonschema#782: Implements defs validations
      python-jsonschema/jsonschema#782: Add validation for uuid format
      python-jsonschema/jsonschema#782: Implements dynamicRef validations
      python-jsonschema/jsonschema#782: Load dependencies from legacy validators
      python-jsonschema/jsonschema#782: Fixes relative json pointer format validation for leading zero on digit
      python-jsonschema/jsonschema#782: Adapt validator test for draft2020-12, fixes code styles
      python-jsonschema/jsonschema#782: Fixes failing styles
      python-jsonschema/jsonschema#782: Update validation message for unevaluatedProperties and unevaluatedItems
      python-jsonschema/jsonschema#782: Refactor items behavior with prefixItems
      python-jsonschema/jsonschema#782: Resolve meta schema vocabularies from local cache
      python-jsonschema/jsonschema#782: Extend format tests
      python-jsonschema/jsonschema#782: Code clenaup, fixes validation messages
      python-jsonschema/jsonschema#782: Add compatibility to draft7 and older
      python-jsonschema/jsonschema#782: Remove ecmascript validation, extend dynamicRef skip description
      Extend dynamicRef keyword

Hillel Arnold (7):
      improve date parsing
      unskip tests
      skip tests on python 3.6
      fix formatting error
      better handling for Python 3.6
      renames message and function
      use correct format check globally

Hugo van Kemenade (2):
      No need to build universal wheels for Python 3-only
      Ignore build files

Jacob D. Moorman (2):
      Remove outdated instructions for benching.
      Remove old instructions for comparing benchmarks.

Jacob Moorman (1):
      Add test test-requirements to perf deps.

Jesús García Crespo (2):
      Load schemas via importlib.resources
      Add version constraint to importlib_resources

Jonathan Hashkes (1):
      fix prefixItems index reporting in ValidationError

Julian Berman (406):
      Add setuptools-scm to the pyproject.toml.
      Squashed 'json/' changes from 689d2f28..0f344a69
      Stop depending on setuptools.
      Include the pyproject.toml in sdists.
      Add a packaging GHA.
      And a coverage GHA.
      Hacky running of tox in CI.
      tox-venv for windows
      python -m pip install everywhere.
      Run on pull request.
      Development stuff isn't supported on Windows
      More python -m.
      Run daily.
      Use runner, which always exists even if we are not matrixed.
      Do this only on Windows, since 3.5's venv is super old.
      {envbindir}/python -> {envpython}
      Skip the rest of the obscurely failing Windows builds.
      Squashed 'json/' changes from 0f344a69..6c00de64
      More -ms.
      Remove the appveyor badge.
      Just rely on pep517.check.
      Set a user agent for the Sphinx role.
      Bump doc requirements (via pip-compile)
      Tighten up the wording here.
      Might as well just inline it.
      Move to twine check.
      Fix the warnings emitted by twine check.
      Either twine check or pep517 doesn't work on Windows.
      Give up and make the coverage token public.
      Test directly with pip show.
      Sigh, bytes everywhere...
      Sigh, Windows somewhere...
      setup.py is dead.
      The Windows 3.6 is so old its pip/venv don't support PEP517.
      2 is more than 1.
      Squashed 'json/' changes from 6c00de64..a863dbab
      Newer webcolors has a new API apparently.
      Sigh... but also drops Py2 compat.
      Squashed 'json/' changes from a863dbab..d52866b3
      Maybe fix RTD.
      Check the changelog for valid reST.
      A 406 HTTP error, so hipster.
      Sigh, no shell.
      Squashed 'json/' changes from d52866b3..b70c5626
      Py2 new-style class.
      Share the parsing error message.
      Minor style.
      assertTrue -> assertIn.
      attrs'ed.
      Bit clearer display of the error message in the actual source via dedent.
      Specify the type of error in pretty error messages.                                                                                                                                     julian@Air ●
      Py3.
      Add/update some info on why format works the way it does.
      Add the upstream link here too.
      Squashed 'json/' changes from b70c5626..33791274
      HTTP -> HTTPS for specification URIs.
      Test parsing errors for the plain output writer.
      Test parsing errors for stdin + the pretty output writer.
      Move where errors are written outside of cli writers.
      Only used in one place now.
      Follow how other places tend to indicate the path for stdin.
      Call all the args 'error' consistently.
      Clarify what parts of the CLI output are public.
      Slightly less exception for flow control.
      Move compat code to compat.
      Temporarily inline these, there will be a better way to combine them.
      Sigh, remove -q from spelling which is required to see the misspelled words.
      Sigh, remove -q from spelling which is required to see the misspelled words.
      Spelling.
      type=str is the default.
      Move the asserts out of the with block.
      Minor safety guard.
      Equivalent but consistent.
      Don't even bother keeping the whole list of valid/invalid.
      Minor style.
      Squash.
      Show full tracebacks for parsing errors in pretty output.
      And now bundle up stdout/stderr into an object.
      The validation already can handle not having instances.
      Error rather than fail for miswritten tests.
      Document that non-zero error codes are also not public.
      Make fake_open work the same across both test cases.
      DRY up cli.run calls.
      OK TestParser doesn't actually open files at all...
      Clarify the test case name.
      Transparent fixture names.
      DRY up asserting about exit codes.
      And dry up calling .getvalue.
      repr paths in plain CLI outputted errors.
      Note that --error-format is for schema and validation errors specifically.
      argparse does funny wrapping by default, so no need for continuations.
      Reorder the CLI tests.
      Squashed 'json/' changes from 33791274..8e2a05a9
      Only the draft2019-09 draft actually uses an HTTPS URI.
      Remove the rest of the incorrectly added HTTPS for older metaschemas.
      Put the more important test case first.
      Separate out the tests that spawn subprocesses.
      Introduce TestCLI.assertOutput.
      Fill in the remaining missing tests.
      Mostly centralize the error handling for loading files.
      Less nest.
      Keep going when encountering invalid instance files.
      Bit shorter.
      Make sure no args shows help info.
      Fix Py3.
      Drop support for python3.5.
      Everything can cd now.
      Reorder the draft3 metaschema to match the upstream version.
      Reorder the draft4 metaschema to match the upstream version.
      Squashed 'json/' changes from 8e2a05a9..d17e1ba2
      Squashed 'json/' changes from d17e1ba2..2576db4d
      Squashed 'json/' changes from 2576db4df..71f55b36b
      zeroTerminatedFloats moved to required.
      2 is more than 1.
      Squashed 'json/' changes from 71f55b36b..361620ecf
      non-bmp-regex moved to optional
      Squashed 'json/' changes from 361620ecf..9d0e0eb31
      Fix the broken reST.
      Just require full coverage from codecov.
      Maybe GHA doesn't actually run apt-get update before runs...
      Just remove the codecov badge entirely.
      Flail again on running update.
      Bump the docs requirements.
      Fix the benchmark runner for the whole suite.
      FilePath -> pathlib
      Sigh. Windows... Use utf-8 everywhere.
      Squashed 'json/' changes from 9d0e0eb..817b724
      Add support for the comment field in upstream tests.
      Cope with the format test structure change upstream.
      Handle broken punycode in IDN hostnames.
      Skip some additional tests.
      Squashed 'json/' changes from 817b724b7..57001d26b
      Squashed 'json/' changes from 57001d26b..fc05651cc
      Don't include `if` in the schema_path of errors.
      Squashed 'json/' changes from fc05651cc..40601f628
      Shorten the lead-in sentence.
      The mailing list isn't really monitored, so remove it from the README.
      Squashed 'json/' changes from 40601f6..ea41553
      Skip the complex email validation tests.
      Format passes by default, so only skip invalid tests when missing the checker.
      Same for content type validation, skip only the invalid ones.
      Remove the 3 :: Only classifier.
      Drop building the package on Py2 in CI.
      No more need for pathlib2 without Py2.
      Ref Py3 in the docs.
      Kill jsonschema.compat as well.
      Remove the reference to jsonschema.compat in the compatibility policy.
      Enable automatic section heading labels in the docs.
      Pick a format checker that has no external dep now that fqdn exists.
      Run CI against all setuptools extras separately.
      Unbreak non-format-setuptools-extra-installed jsonschema.
      isorted.
      Kill Py2 in the sphinx role.
      Trailing whitespace
      pre-commit setup.
      Bump the version in the notebooks.io requirements.
      Squashed 'json/' changes from ea415537..86f52b87
      Skip more tests for #686.
      Validate IP addresses using the ipaddress module.
      Squashed 'json/' changes from 86f52b87..fce9e9b3
      Temporarily skip the tests that will be unskipped by #722.
      Simplify the schemas in the tests for CLI validator detection.
      Move the latest validator CLI test to where it must go now.
      Remove the rest of the notebooks.ai related resources.
      And two last ones...
      Update pre-commit hooks.
      Sigh, this appears to be a regex, not exact match, so it was ignoring everything.
      Minor doc formatting.
      Remove docformatter, it's too unwieldy.
      Run pre-commit in CI.
      Remove the Py2 coding declaration.
      Bump doc requirements (via pip-compile)
      Use the longer form of the CLI option for clarity.
      Remove outdated release notes.
      Be able to run coverage on all toxenvs.
      Whoops, send coverage to codecov again.
      Squashed 'json/' changes from fce9e9b3..21555a85
      Squashed 'json/' changes from 21555a85..96742ba3
      Sigh, ugly, but assrtRegexpMatches is deprecated.
      Temporarily skip the failing tests for #743.
      pep517.build is dead or dying.
      Don't fail when codecov.io flakes.
      Minor formatting and wording.
      And now tidy up the tests.
      Test on Py39.
      Tidy up the URLs in the docutils role.
      Vanilla flake8.
      Bump the meaningless role version number.
      Cope with IPv6Address now allowing zone IDs in 3.9.
      Work around danielrichman/strict-rfc3339#5.
      Squashed 'json/' changes from 96742ba3..3627cc11
      Actually exercise Validator.is_type on an unknown type.
      Make utils.indent exit stage left.
      Sigh more spelling.
      Doc requirements bump.
      Run more toxenvs on 3.9.
      Go back to skipping the windows envs that are annoying to fix.
      Update pre-commit.
      Update pre-commit.
      Unskip most of the skipped windows builds.
      Test via PyPy3.7
      No, don't use venv.
      Try the Twisted prerelease, which hopefully obviates installing IOCP.
      Reskip the PyPy-on-Windows tests.
      Minor style fixes.
      Move the fuzz workflow to fuzz.yml.
      Add language, remove dry-run: false which is the default.
      Module docstring
      Go back to fuzz_* naming.
      Ignore the fuzz module from coverage for now as well.
      Extra newline.
      Minor style fixes.
      Bump lxml (and the rest of the doc requirements).
      Squashed 'json/' changes from 3627cc1..15ec577
      Allowing leading zeros is allowed by the JSON Schema spec...
      Skip tests that actually rely on location-independent IDs.
      Install package for perf toxenvs too.
      Fix IDs of remotes in the test suite on Windows.
      Squashed 'json/' changes from 15ec577f..09fd353f
      Unsupport leap seconds.
      Style.
      Remove default types (in favor of the TypeChecker API).
      Evade the pip safety warning.
      v4.0.0a1
      Add #746 to the changelog.
      Squashed 'json/' changes from 09fd353f..0aefbb3d
      Skip the tests which tickle known bugs.
      Revert an accidentally removed test.
      Squashed 'json/' changes from 0aefbb3d..1326f36e
      And skip a few more new ref tests.
      Squashed 'json/' changes from 1326f36e..17fa9589
      Rename the test skip (to match the renamed tests).
      Install with --in-tree-build in the tox.ini.
      Don't allow warnings during test runs.
      Tests, not coverage toxenv.
      Ignore another warning from importlib_metadata.
      And one from setuptools_scm from shallow git clones...
      Another try at filtering the setuptools_scm warning.
      Twisted 21.2.0 was released.
      Hopefully the last warning, which seems to only fire on PyPy.
      Proper syntax.
      Fix the DeprecationWarning from importing abcs from collections.
      Test only through _util.equal.
      Simplify the implementations of the equal checks.
      Minor rewording of the docstring.
      Add #686 to the changelog.
      Squashed 'json/' changes from 17fa9589..6327a3bc
      Squashed 'json/' changes from 6327a3bc..fd0aa9f8
      Tidy the docstring slightly.
      Fix missing trailing commas.
      Squashed 'json/' changes from fd0aa9f8..f9acc454
      Squashed 'json/' changes from f9acc454..bb2a20d3
      Fix the UUID format.
      Remove some u prefixes leftover from Py2.
      Fix the names of internal test cases for newer drafts.
      Freenode is dead.
      Spelling
      Bump doc requirements.
      Don't check schemas in test suite runs.
      Fix Draft2020-12Validator's name to be Draft202012Validator.
      And add it to the docs.
      Remove the $defs validator.
      May as well add support for Draft 2019 as well.
      Update the draft info in the README.
      Unnecessary `len`s.
      Add the drafts to the changelog.
      Add a linter to ensure single quotes aren't added.
      And a linter to forbid slash-line-continuation.
      Remove more unneeded u prefixes.
      Squashed 'json/' changes from bb2a20d3e..878b0ad5f
      Run the unicode and float-overflow optional tests on all drafts.
      Tidy up validation error messages, particularly using f-strings.
      Remove types_msg which implements really old draft-3 behavior.
      Reimplement contains.
      More strict style, now via bugbear.
      Squashed 'json/' changes from 878b0ad5f..eb619047f
      yield from everywhere, saving precious lines
      Minor style.
      Let format_index handle the container too.
      Deprecate jsonschema.__version__.
      Drop support for Python 3.6.
      Build RTD with 3.8
      And deprecate importing ErrorTree from jsonschema.validators.
      Sigh, flake8.
      Fix the schema path used by prefixItems errors.
      Remove a test that is only relevant for Py2+3 combined codebases.
      Slightly nicer error message for not.
      And simplify items as well.
      Fix items' instance path as well.
      Unskip more passing tests.
      Be furoious.
      Minor restructure of which html sphinx builder we build in the tox.ini.
      Remove resolve_local.
      Squashed 'json/' changes from eb619047f..ab0b1ae71
      Skip more new leap second tests.
      Minor local variable tweaking.
      Add a pre-commit.ci badge.
      Actually add the badge.
      Squashed 'json/' changes from ab0b1ae71..20c1bb1d9
      Depend on rfc3339-validator for format, even for non-nonGPL.
      Remove 3.6-related code.
      Add an explicit ASCII check.
      Always depend on the newer webcolors API.
      Use contextmanager.suppress to kill a bit of boilerplate.
      Kill an old testing helper now that it mostly lives in contextlib.
      Add a test for the 2019-09 $id lookup.
      Ensure message_for allows only one error.
      Properly set the failing validator for min/maxContains.
      Minor tweak to the OSSFuzz workflow.
      FileNotFoundError and FileExistsError in more places.
      Minor tweak of local variables.
      Remove 3.6-related code.
      Remove dead code.
      Remove more dead code.
      Deprecate jsonschema.RefResolver.in_scope.
      Bit of coverage tweaking.
      Remove RefResolver.scopes_stack_copy.
      Temporarily simplify _finditem, and unskip some tests.
      Suppress the KeyError in unknown type exception tracebacks.
      Set __qualname__ for validator classes.
      Test iter_errors independent of a draft validator.
      Remove 2-arg-using form of is_valid from tests.
      Add Validator.evolve, deprecating passing _schema to methods.
      Add test cases for error details hidden behind a $ref
      Style
      Deprecate jsonschema.validators.validators and .meta_schemas.
      Make it clear that support for draft2020-12 is partial unfortunately.
      Remove the added argument to jsonschema.validators.create.                                                                                                                julian@Airm ●
      Style
      Add the Zenodo badge.
      Add the missing format dependency documentation.
      Re-allow the fuzz to fail.
      Squashed 'json/' changes from 20c1bb1d9..54440eab4
      Skip the tests which tickle known bugs.
      Combine the CI and precommit workflows.
      Add support for Python 3.10.
      Ignore distutils warnings coming from pip which needs a release.
      Skip tests on 3.10 + Windows which fail for annoying compilation reasons.
      Try autocreating release notes.
      Sigh, back to full clones.
      Add 4.1.0 to the changelog.
      Slightly reword the tagline.
      Squashed 'json/' changes from 54440eab4..ba3a90534
      Skip more more new leap second tests.
      Add v4.1.1 to the CHANGELOG.
      Remove the Patreon link.
      Squashed 'json/' changes from ba3a90534..329efe59c
      Add v4.1.2 to the CHANGELOG.
      in-tree-build is now the default in pip
      Set PYTHONWARNINGS only for the test run itself.
      Remove uses of SynchronousTestCase.
      Add some other links which will show up on PyPI.
      Squashed 'json/' changes from 329efe59c..9263b5250
      Temporarily skip the failing tests from #866.
      Add in some missing internal draft2019-09 tests.
      v4.2.0 -> CHANGELOG
      v4.2.1 -> CHANGELOG
      Update requirements.
      Update the doc requirements.
      Minor CHANGELOG twiddling in prep for v4.3.0.
      Remove a last use of 'interface' instead of 'protocol'.
      Schemas can be bools too in newer drafts.
      Remove relative imports
      Shorten the protocol test.
      v4.3.1 -> CHANGELOG
      Privated.
      Add v4.3.2 to the changelog.
      v4.3.3 -> CHANGELOG
      Squashed 'json/' changes from 9263b5250..20fb14bde
      Skip the vocabulary tests that don't pass yet.
      Bump doc requirements.
      Squashed 'json/' changes from 20fb14bde..3731ed32a
      Run more things with 3.10 in CI.
      pypy3.7 -> 3.8
      Run 3.11 in CI.
      Move the skips for Windows to the right version (3.10)
      Add the 3.11 classifier.
      v4.4.0 -> CHANGELOG
      Minor style.
      Bump the default type checker and format checker.
      Fix style issues.
      Update hyperlinks from the GitHub organization move.
      Ignore a style warning from bugbear.
      Skip annoying compiling Windows builds on 3.11 as well.
      Update pre-commit hooks.
      Squashed 'json/' changes from 3731ed32a..060caae0d
      Skip more complex email validation tests.
      Add sponsorship links to the PyPI page.
      Unskip two passing tests.
      Disable 3.11 CI until pypa/setuptools#3274 is fixed.
      v4.5.0 -> CHANGELOG
      Revert "Extend dynamicRef keyword"
      Squashed 'json/' changes from 060caae0d..387d690ae
      Skip the failing unevaluated* tests until #949 is merged.
      Revert "Merge pull request #954 from ssbarnea/fix/py.typed"
      Update docs requirements.
      Update various GHA versions.
      Modernize the packaging setup via PEP 621 and Hatch.
      Re-enable Python 3.11 testing in CI.
      Let RTD be authoritative about what the default doc version is.
      Combine the CI and packaging workflows.
      Make project.urls be valid URLs.
      Add basic CONTRIBUTING guidelines.
      Ignore a deprecation warning coming from pkg_resources on 3.11
      Ignore the badge URLs, they seem super unreliable from CI.
      v4.6.0 -> CHANGELOG

Karthikeyan Singaravelan (1):
      Move python_requires to options for correct METADATA generation.

Laurie O (2):
      Only validate unevaluated props/items on applicable types
      Revert "Skip the failing unevaluated* tests until #949 is merged."

Martin Zugnoni (1):
      Remove demo links from README file

Milly (1):
      Fix test to windows path matching

Nikita Kniazev (1):
      Move warnings to user context

Rob Herring (1):
      validators: Fix dependentSchemas when instance is not an object

Romain Taprest (14):
      [CLI] Remove heading-style comments
      [CLI] Improve --help message about --instance
      [CLI] Change write_valid_* into write_validation_*, less confusing.
      [tests] replace assertTrue by assertIn for nicer error
      [CLI] Remove mandatory \n at the end of plain error.
      [tests] Revert test_unsuccessful_validation_multiple_instances to its original behaviour.
      [CLI] Split CliOutputWriter to use object polymorphism
      [tests] Fix test_unsuccessful_validation
      [tests] Simplify check in test_none_instance
      [CLI] Fix compatibility with Python2 (about metaclass)
      [tests] Add test_unknown_output_format
      [CLI] Forbid --error-format if --output is not plain
      [tests] Add test_schema_validation
      [CLI] Switch public methods to private.

RomainTT (24):
      [CLI] Improve the default display of the errors
      [CLI] Remove Linux-specific command for error delimiter
      [CLI] Remove incompatible character, replaced by '='
      [CLI] General improvement of CLI output readability
      [CLI] Remove --human and add --output. Add more helper functions.
      [CLI] Improve stdin management and factorize more code
      [CLI] Add newline at end of oneline error
      [tests] Update existing CLI tests for the new implementation.
      [tests] remove external files for CLI tests
      [CLI] Fix STDIN management.
      [CLI] Replace JSONDecodeError by ValueError for 2.7 compat
      [CLI] Replace FileNotFoundError by IOError for 2.7 compat
      [tests] Remove unused import SchemaError
      [tests] Remove unused import os
      [tests] Finish to fix existing tests.
      [tests] Add new tests for the new CLI output formatting
      [CLI] Add pragma no cover for some safenet code
      [tests] Add some test to the cli parser, about None arguments
      Fix some flake8 style errors
      [CLI] Remove abstract class for output writers
      [CLI] Fix coding style errors in parse_args
      [tests] Remove use of unittest mocks. Add contextmanager capture_output instead
      [tests] Fix some linter errors
      [tests] Improve test_unknown_output and test_useless_error_format

Sergey Fedoseev (2):
      remove uneeded backtick from docstring of validators.extend()
      Add release note about dropping support for Py 3.6

Sorin Sbarnea (2):
      Ensure proper sorting of list in error message
      Mark library as typed (PEP-561)

Stephen Rosen (14):
      Add `jsonschema.protocols.IValidator`
      Update docs/validate.rst
      Apply suggestions from code review
      Fix references to IValidator; add protocol tests
      Fix doc linting build
      Setup mypy in `tox -e typing` and get it to pass
      Fix typing_extensions import handling for mypy
      Parenthesize dict-tuple to pacify pypy3.7 parser
      Use future import for type annotations
      Fix nitpick error on type annotation
      Fix sphinx nitpick error arising from annotations
      Cleanup internal type annotation variables
      Omit 'if TYPE_CHECKING' blocks from coverage
      Add v4.5.1 to changelog

Talha Malik (4):
      Get input from commandline when instance(s) not provided
      Add mock for pypy
      Text stdin without mock
      Refactor to not leak global state

Tibor Völcker (2):
      Use standard .gitignore
      Add FORMAT_CHECKER

Tomas Hrnciar (1):
      Remove shebangs from nonexecutable scripts

Zac-HD (1):
      Handle multipleOf overflow

davkor (13):
      Added fuzzer to be run with OSS-Fuzz
      Fix up syntax
      Removed os import
      fuzzer: fix remaining style CI complaints
      Add CI-fuzz to ensure fuzzers are run.
      Set CI fuzz to be 30 seconds.
      set continue on error in fuzzing CI job.
      Move continue-on-error to build step.
      Try adding an success statement in CI
      switch to checking steps output.
      Add suggestions from Zac
      Make fuzzer friendly for pytest.
      fixed fuzzer.

dependabot[bot] (5):
      Bump lxml from 4.6.1 to 4.6.2 in /docs
      Bump urllib3 from 1.26.2 to 1.26.3 in /docs
      Bump jinja2 from 2.11.2 to 2.11.3 in /docs
      Bump pygments from 2.7.2 to 2.7.4 in /docs
      Bump urllib3 from 1.26.4 to 1.26.5 in /docs

johnthagen (3):
      Add license file (COPYING) metadata to packaged distributions
      Rename COPYING file to LICENSE to allow pip-licenses to locate it
      Add tox/CI test for license file

pre-commit-ci[bot] (6):
      [pre-commit.ci] pre-commit autoupdate
      [pre-commit.ci] auto fixes from pre-commit.com hooks
      [pre-commit.ci] pre-commit autoupdate
      [pre-commit.ci] pre-commit autoupdate
      [pre-commit.ci] pre-commit autoupdate
      [pre-commit.ci] auto fixes from pre-commit.com hooks

willson-chen (13):
      fix bug about hostname by import fqdn
      regenerated the requirements.txt
      fix issue_669
      --base-uri flag instead -r
      Add the specified base-uri function in the CLI
      modify style issues
      Fix the bug of processing arguments[validator] in parse_args
      Delete the failed test case
      add test case
      support for cli specifying --base-uri local or remote and add test cases
      Support --base-uri. and local full path and remote URI
      Optimize the input parameters of '--base-uri'
      Optimizing test cases and add invalid '--base-uri' test

wilson chen (2):
      Modify the code based on review comments
      Resolve conflicts

杨鹏 (1):
      Update setup.cfg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Needs Triage Issues that need to be evaluated for severity and status.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants