When I reinstall with .dev0 removed, specifier.contains(..) becomes True.
Now I cant fault the logic of Specifer('') not matching develop versions. Matching dev versions should require something explicit to indicate that non-official releases are desired. (I havent tested with .post1 and other suffixes.)
The problem is that the requirement given doesnt have any specifiers.
(split off from https://github.com/di/pytest-reqs/issues/16#issuecomment-404087084)
There are two scenarios with VCS links which are broken, and
packaging
doesnt provide a solution yet: https://github.com/pypa/packaging/issues/133VCS links with versions like
git+https://github.com/baz/foo#egg=foo-1.1
become package names with version embedded likefoo-1.1
and the req object is
The project / package name is broken. The
1.1
should be the version. https://github.com/pypa/setuptools/blob/master/docs/setuptools.txt#L722Little chance that pip is going to fix that in v9
If I have installed https://gitlab.com/coala/package_manager (master), the installed distribution looks like
Now if we use the following requirement, which works for pip and setuptools
git+https://gitlab.com/coala/package_manager#egg=dependency-management
We will have
with specifier
<SpecifierSet('')>
Now the fun part. The empty specifier rejects the
.dev0
in the installed versionWhen I reinstall with
.dev0
removed,specifier.contains(..)
becomes True.Now I cant fault the logic of
Specifer('')
not matching develop versions. Matching dev versions should require something explicit to indicate that non-official releases are desired. (I havent tested with.post1
and other suffixes.)The problem is that the requirement given doesnt have any specifiers.
Then the real kicker ; this also doesnt work: