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

InvalidRequirement on Python 3.8 #630

Closed
jaraco opened this issue Jun 27, 2023 · 1 comment · Fixed by #631
Closed

InvalidRequirement on Python 3.8 #630

jaraco opened this issue Jun 27, 2023 · 1 comment · Fixed by #631

Comments

@jaraco
Copy link
Member

jaraco commented Jun 27, 2023

In pypa/setuptools#3965, I discovered that build fails to build a dependency with a url req that's part of extras because it stumbles on python/importlib_metadata#357, which was only backported to Python 3.9, but build uses stdlib importlib.metadata for Python 3.8. Build should probably use importlib_metadata for Python 3.8 and maybe for Python 3.9 (quite a few improvements and fixes landed in CPython 3.10).

@jaraco
Copy link
Member Author

jaraco commented Jun 27, 2023

Traceback (most recent call last):
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__main__.py", line 375, in main
    built = build_call(
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__main__.py", line 235, in build_package_via_sdist
    sdist = _build(isolation, builder, outdir, 'sdist', config_settings, skip_dependency_check)
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__main__.py", line 147, in _build
    return _build_in_current_env(builder, outdir, distribution, config_settings, skip_dependency_check)
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__main__.py", line 127, in _build_in_current_env
    missing = builder.check_dependencies(distribution)
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__init__.py", line 369, in check_dependencies
    return {u for d in dependencies for u in check_dependency(d)}
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__init__.py", line 369, in <setcomp>
    return {u for d in dependencies for u in check_dependency(d)}
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__init__.py", line 185, in check_dependency
    yield from check_dependency(other_req_string, ancestral_req_strings + (normalised_req_string,), req.extras)
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/build/__init__.py", line 155, in check_dependency
    req = packaging.requirements.Requirement(req_string)
  File "/Users/jaraco/code/pypa/setuptools/.tox/py38/lib/python3.8/site-packages/packaging/requirements.py", line 37, in __init__
    raise InvalidRequirement(str(e)) from e
packaging.requirements.InvalidRequirement: Expected end or semicolon (after URL and whitespace)
    execnet@ git+https://github.com/jaraco/execnet@bugfix/195-encodingwarning; extra == "testing"
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

ERROR Expected end or semicolon (after URL and whitespace)
    execnet@ git+https://github.com/jaraco/execnet@bugfix/195-encodingwarning; extra == "testing"
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

jaraco added a commit to pypa/setuptools that referenced this issue Jun 27, 2023
henryiii added a commit that referenced this issue Jul 7, 2023
* Consolidate importlib metadata import

* Rely on importlib_metadata for Python 3.9 and earlier. Fixes #630.

* Bump minimum importlib-metadata to 4.6

* Apply suggestions from code review

* Update _importlib.py

---------

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
clrpackages pushed a commit to clearlinux-pkgs/pypi-setuptools that referenced this issue Aug 17, 2023
…version 68.1.0

Anderson Bravalheri (46):
      Remove dependency on `pip-run`.
      Avoid pytest-perf on Cygwin
      Rewrite noqa directive for the bennefit of ruff
      Add workaround for towncrier
      Revert changes in _EditableFinder
      Reuse PathFinder to deal with fs case sensitivity in editable_wheel
      Add more checks for case sensitivity in editable_wheel tests
      Adequate tests to the latest changes in wheel 0.41.1
      Allow SystemExit exceptions to pass through unless code = 0
      Remove leftover variable in test_build_meta
      Test setup.py with sys.exit(0) only for non-legacy backend
      Remove unused import
      Exclude __pycache__ and pyc files in MANIFEST.in
      Exclude newsfragments and launcher directories from find_packages
      Ignore newsfragments by default when auto-discovering flat packages
      Add newsfragment
      Fix rst syntax in newsfragment
      Use default encoding when creating .pth files in editable_wheel
      Add newsfragment
      Change UTF-8 example to something simpler to parse
      Add regression tests for sdist
      Simplify handling of relative ext.depends
      Update changelog entry
      Change classification of PR from bugfix to feature
      Improve logic operations on path handling
      Use 'resolve' instead of 'abspath'
      Add test for auto inclusion of depends in the case of symlinks
      Allow symlinked Extension.depends to be auto-included by sdist
      Add test case for when dependency files don't exit
      Capture expectation about (gui-)scripts in pyproject.toml/setup.py
      Make sure user is notified that (gui-)scripts have to be defined in dynamic
      Add news fragment
      Remove beta warning for pyproject tool.setuptools
      Update docs to remove beta status for tool.setuptools
      Remove unused import
      Mention setup.py install for zip-safe and eager-resources
      Prefer the obsolete nomenclature
      Retain warning for tool.distutils (still internal/experimental)
      Retouch pyproject config docs
      Add news fragment
      Ignore warnings about tool.distutils
      Remove confusing bit of doc
      Refactor TestRegressions to use symlink_or_skip_test
      Fix tools/finalize to use NEWS instead of CHANGES (towncrier-related)
      Improve rendering of newsfragment
      Bump version: 68.0.0 → 68.1.0

Arcadiy Ivanov (1):
      Handle `setup.py` possibly using `sys.exit`

Ashley Anderson (11):
      Fix sphinx-lint errors in docs
      Add failing test
      Update _EditableFinder (in _FINDER_TEMPLATE) to be case-sensitive on case-insensitive filesystems
      Add news fragment
      Remove redundant logic
      Ensure posix paths to enforce case-sensitivity on Windows
      Expand case-sensitivity tests
      More robust checking of path case for imports from editable installations
      Move _check_case within the template
      Fix for Python <3.10
      Small refactor to fix off-by-one, lint

Bart Broere (1):
      Fix a sentence (minor change)

Dimitri Papadopoulos (1):
      Fix a couple typos found by codespell

Hang (2):
      Update package_discovery.rst
      Update package_discovery.rst

Jason R. Coombs (29):
      Adopt towncrier for managing changelog. Fixes jaraco/skeleton#83.
      ⚫ Fade to black.
      Use a different variable name. Fixes #3961. Workaround for astral-sh/ruff#5249.
      Move towncrier config to its own file.
      Use the default 'newsfragments' for news fragments.
      Use jaraco.develop.towncrier to check changes and determine the release kind.
      Revert to towncrier default types.
      Normalized headings in changelog.
      Remove excess config
      Add newsfragment
      Exclude jaraco.develop on cygwin
      Remove code reliant on bdist_wininst. Ref #3525.
      Replace workaround for actions/setup-python#508 with 'allow-prereleases'
      Remove tox boilerplate, no longer necessary with later versions of tox.
      Require Python 3.8 or later.
      Expand 'finalize' to commit and tag the change.
      Leverage pytest-enabler 2.2 for the default config.
      Update config to honor black.
      Apply black styling to all but vendored modules.
      Manually correct line too long errors.
      Grab workaround for pytest-dev/execnet#195.
      Rely on unreleased build. Workaround for pypa/build#630.
      Move workarounds to tox.ini to avoid url references in project metadata.
      Prefer 3.x for Python version (latest stable).
      Collapse skeleton history. Workaround for jaraco/skeleton#87.
      Add links to project home page and pypi. Fixes jaraco/skeleton#77.
      Replace redundant step names with simple 'Run'.
      Increase visibility of security policy. (#4)
      Remove TOX_WORK_DIR workaround, no longer necessary with tox 4. Ref tox-dev/tox#3050.

Joyce (4):
      Feat: set ci-sage.yml top level as contents read
      feat: initial permissions to main.yml
      Create 3833.misc.rst
      Add user to changelog.d file.

Oliver Mannion (1):
      docs: remove mention of include_package_data and package_data interaction

Stefano Rivera (4):
      Exclude debian dirs from the default namespace search
      Exclude "debian" from top_level.txt.
      A news fragment
      Explain where we are ignoring Debian

Thomas Kluyver (1):
      Remove execnet workaround

ruro (14):
      add Extension.depends to build_ext.get_source_files
      add tests for Extension sdist handling
      add news fragment for PR
      improve backwards compatibility and warning messages
      remove test_auto_include_symlinked_depends
      reimplement _get_internal_depends according to the new logic
      remove no longer used functions in _path
      refactor the tests a bit
      move test project root to subdir, use source_dir fixture
      improve the touch helper function
      add test_symlinked_extension_sources
      add test_invalid_extension_depends
      inline is_relative_to (it's not available in Python 3.8)
      don't run logging verification tests under stdlib distutils

wim glenn (1):
      Typo fix pyproject_config.rst
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant