Switch to packaging.{markers,requirements}, destroying _markerlib

#173 Declined
Repository
stevenk_
Branch
default
Repository
pypa
Branch
default
Author
  1. Steve Kowalik
Reviewers
Description

Given the release of Packaging 16.1, this PR can now be considered ready for a release of setuptools once we all agree.

  • First shot at removing usage of _markerlib and switching to the PEP 508 implementation in packaging.

  • Update to the newest packaging, and collapse _parse_requirement_specs

  • Add tests capturing platform_python_implementation and implementation_version

  • Destroy MarkerEvaluation for being pointless, fix two silly mistakes in tests and update packaging changes.

  • Properly merge from default.

  • Shift packaging to use shiny extern.

  • Switch back to SyntaxError for invalid markers, stops consumers having to import packaging themselves

  • Update to packaging 16.1

  • Correct tests after the move to packaging 16.1.

Comments (3)

  1. Jason R. Coombs

    I'm still eager to accept this work, but because it's based on the setuptools-scm commit, it won't be acceptable until that commit can be accepted, and I'm not at all comfortable releasing that, as it adds a setup_requires requirement to setuptools, which would likely break installation on systems that don't have network connectivity and probably other edge cases. I'll see if I can pull in these changes and rebase them without the setuptools-scm head.

  2. Jason R. Coombs

    I rebased the commits:

    $ hg rebase -s 7b3adabc2b2f -d f2894a03299 --keep
    rebasing 4297:7b3adabc2b2f "Switch back to SyntaxError for invalid markers, stops consumers having to import packaging themselves"
    rebasing 4298:6761aee34b69 "Update to packaging 16.1"
    rebasing 4299:0fabf2bcc620 "Correct tests after the move to packaging 16.1."
    rebasing 4300:4739d78a5064 "Merge from master, resolving conflicts." (tip pr-164)
    merging setup.py
    merging setuptools/__init__.py
    

    And I've pushed those rebased commits in the pr-164 bookmark.

    Unfortunately, it seems the tests for Python 3 aren't passing. They show the same error I get on my system under Python 3 (though at a slightly different stage).

    Can you look into that?