5

According to PEP 440 and PEP 426 and the pip install manual (if I read them correctly), I SHOULD be able to create pre-release versions of my libraries/wheels, and use them if-and-only-if I include the "--pre" flag.

Furthermore, I took it to mean that given the right installation options (--pre?) pre-release versions would fit within the standard numeric versioning scheme, such that 1.a1 and 1.dev1 would appear as 1.1, just as 1.1+extra_tag also appears as 1.1 (note: +extra_tag does not require the --pre flag to work)

None of this seems to work.

What I see is:

  1. pip install ... wheelname installs EVEN IF the uploaded version of the wheel is something like wheelname.1.dev6. The --pre doesn't seem to make a difference, one way or the other.
  2. Given a requirement file that has a stanza like wheelname==1.6, even with the --pre option, if my wheel is versioned as wheelname.1.dev6, wheelname.1.a1, etc. it is not found.
  3. Same issue for a stanza like wheelname>=1
  4. The "+notation" is honored.

It was my understanding from reading PEP 440 and 426 that the "a", "b", "c" and "cr" midfixes were supposed to be available (i.e. 1.a1 == 1.1) as long as the --pre option was used (of course, --pre isn't explicitly specified by the PEPs themselves, but I assume). Same for the ".devN" suffixes.

Notes:

  • I am using pip 9.0.1
  • --isolated does not make a difference (e.g. it is not an environment issue)
  • Rather than use all the rigamarole to create a wheelhouse, I used a directory when creating/uploading my wheel. My approximate runlines are thus:

    pip install wheelname --use-wheel --find-links=file:///tmp/wheelhouse [--pre] pip install -r requirements.txt --use-wheel --find-links=file:///tmp/wheelhouse [--pre]

Mark Gerolimatos
  • 2,424
  • 1
  • 23
  • 33

0 Answers0