@techalchemy techalchemy released this Jun 25, 2018 · 1153 commits to master since this release

Assets 2

2018.6.25 (2018-06-25)

Features & Improvements

  • Pipenv-created virtualenvs will now be associated with a .project folder (features can be implemented on top of this later or users may choose to use pipenv-pipes to take full advantage of this.) #1861
  • Virtualenv names will now appear in prompts for most Windows users. #2167
  • Added support for cmder shell paths with spaces. #2168
  • Added nested JSON output to the pipenv graph command. #2199
  • Dropped vendored pip 9 and vendored, patched, and migrated to pip 10. Updated patched piptools version. #2255
  • PyPI mirror URLs can now be set to override instances of PyPI urls by passing the --pypi-mirror argument from the command line or setting the PIPENV_PYPI_MIRROR environment variable. #2281
  • Virtualenv activation lines will now avoid being written to some shell history files. #2287
  • Pipenv will now only search for requirements.txt files when creating new projects, and during that time only if the user doesn't specify packages to pass in. #2309
  • Added support for mounted drives via UNC paths. #2331
  • Added support for Windows Subsystem for Linux bash shell detection. #2363
  • Pipenv will now generate hashes much more quickly by resolving them in a single pass during locking. #2384
  • pipenv run will now avoid spawning additional COMSPEC instances to run commands in when possible. #2385
  • Massive internal improvements to requirements parsing codebase, resolver, and error messaging. #2388
  • pipenv check now may take multiple of the additional argument --ignore which takes a parameter cve_id for the purpose of ignoring specific CVEs. #2408

Behavior Changes

  • Pipenv will now parse & capitalize platform_python_implementation markers
    • This could cause an issue if you have an out of date Pipfile which lowercases the comparison value (e.g. cpython instead of CPython). #2123
  • Pipenv will now only search for requirements.txt files when creating new projects, and during that time only if the user doesn't specify packages to pass in. #2309

Bug Fixes

  • Massive internal improvements to requirements parsing codebase, resolver, and error messaging. #1962, #2186, #2263, #2312
  • Pipenv will now parse & capitalize platform_python_implementation markers. #2123
  • Fixed a bug with parsing and grouping old-style setup.py extras during resolution #2142
  • Fixed a bug causing pipenv graph to throw unhelpful exceptions when running against empty or non-existent environments. #2161
  • Fixed a bug which caused --system to incorrectly abort when users were in a virtualenv. #2181
  • Removed vendored cacert.pem which could cause issues for some users with custom certificate settings. #2193
  • Fixed a regression which led to direct invocations of virtualenv, rather than calling it by module. #2198
  • Locking will now pin the correct VCS ref during pipenv update runs. Running pipenv update with a new vcs ref specified in the Pipfile will now properly obtain, resolve, and install the specified dependency at the specified ref. #2209
  • pipenv clean will now correctly ignore comments from pip freeze when cleaning the environment. #2262
  • Resolution bugs causing packages for incompatible python versions to be locked have been fixed. #2267
  • Fixed a bug causing pipenv graph to fail to display sometimes. #2268
  • Updated requirementslib to fix a bug in pipfile parsing affecting relative path conversions. #2269
  • Windows executable discovery now leverages os.pathext. #2298
  • Fixed a bug which caused --deploy --system to inadvertently create a virtualenv before failing. #2301
  • Fixed an issue which led to a failure to unquote special characters in file and wheel paths. #2302
  • VCS dependencies are now manually obtained only if they do not match the requested ref. #2304
  • Added error handling functionality to properly cope with single-digit Requires-Python metatdata with no specifiers. #2377
  • pipenv update will now always run the resolver and lock before ensuring your dependencies are in sync with your lockfile. #2379
  • Resolved a bug in our patched resolvers which could cause nondeterministic resolution failures in certain conditions. Running pipenv install with no arguments in a project with only a Pipfile will now correctly lock first for dependency resolution before installing. #2384
  • Patched python-dotenv to ensure that environment variables always get encoded to the filesystem encoding. #2386

Improved Documentation

  • Update documentation wording to clarify Pipenv's overall role in the packaging ecosystem. #2194
  • Added contribution documentation and guidelines. #2205
  • Added instructions for supervisord compatibility. #2215
  • Fixed broken links to development philosophy and contribution documentation. #2248

Vendored Libraries

  • Removed vendored cacert.pem which could cause issues for some users with custom certificate settings. #2193

  • Dropped vendored pip 9 and vendored, patched, and migrated to pip 10. Updated patched piptools version. #2255

  • Updated requirementslib to fix a bug in pipfile parsing affecting relative path conversions. #2269

  • Added custom shell detection library shellingham, a port of our changes to pew. #2363

  • Patched python-dotenv to ensure that environment variables always get encoded to the filesystem encoding. #2386

  • Updated vendored libraries. The following vendored libraries were updated:

    • distlib from version 0.2.6 to 0.2.7.
    • jinja2 from version 2.9.5 to 2.10.
    • pathlib2 from version 2.1.0 to 2.3.2.
    • parse from version 2.8.0 to 2.8.4.
    • pexpect from version 2.5.2 to 2.6.0.
    • requests from version 2.18.4 to 2.19.1.
    • idna from version 2.6 to 2.7.
    • certifi from version 2018.1.16 to 2018.4.16.
    • packaging from version 16.8 to 17.1.
    • six from version 1.10.0 to 1.11.0.
    • requirementslib from version 0.2.0 to 1.0.1.

    In addition, scandir was vendored and patched to avoid importing host system binaries when falling back to pathlib2. #2368