diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 00000000..14f85760 --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,149 @@ +2018.05.18 (2018-06-17) +======================= + + +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 vendor, patch, and migrate 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 + `_ + + +Behavior Changes +---------------- + +- Pipenv will now parse & capitalize ``platform_python_implementation`` markers + -- **note** 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 `_ + + +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 + -- **note** 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 `_ + +- 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 `_ + + +Vendored Libraries +------------------ + +- Removed vendored ``cacert.pem`` which could cause issues for some users with + custom certificate settings. `#2193 + `_ + +- Dropped vendored pip 9 and vendor, patch, and migrate 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 `_ + +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 `_ diff --git a/HISTORY.txt b/HISTORY.txt index 5082485a..8127c6b0 100644 --- a/HISTORY.txt +++ b/HISTORY.txt @@ -1,3 +1,52 @@ + - Virtualenv names will now appear in prompts for most Windows users. 2167 feature + - Resolver runtime and caching has been improved. + - Improved virtualenv discovery when using `pipenv --venv`. + - Improved error messages when failing to activate virtualenvs. + - Dependency resolver reliability has been improved. + - Added nested JSON output to the `pipenv graph` command. + - Added support for mounted drives via UNC paths. + - Added support for Windows Subsystem for Linux bash shell detection. + - Added custom shell detection library `shellingham`, a port of our changes to `pew`. + - Requirements are only auto-imported in new projects created without passing any packages + to install and without an initial Pipfile. + - Added support for cmder shell paths with spaces. + - Dropped vendored pip 9 and vendor, patch, and migrate to pip 10. + - Virtualenv activation lines will now avoid being written to some shell history files. + - 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.) + - Lock and update VCS dependencies properly by checking them out and cloning them + manually before installing and generating a lockfile to guarantee dependencies are + locked. + - 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. + - 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. + - Pipenv will now parse & capitalize`platform_python_implementation` markers -- **note** this + could cause an issue if you have an out of date Pipfile which lowercases the comparison + value (e.g. `cpython` instead of `CPython`). + - Massive internal improvements to requirements parsing codebase, resolver, and error + messaging. + - Fixed a regression which led to direct invocations of `virtualenv`, rather than calling + it by module. + - Resolution bugs causing packages for incompatible python versions to be locked + have been fixed. + - VCS dependencies are now manually obtained only if they do not match the requested ref. + - Windows executable discovery now leverages `os.pathext`. + - Pipenv will now correctly unqoute special characters in wheel URIs. + - Fixed a bug with parsing and grouping old-style setup.py extras during resolution. + - Fixed a bug which caused `--system` to incorrectly abort when users were in a virtualenv. + - Pipenv clean will now ignore comments when cleaning the environment. + - Fixed a bug which caused `--deploy --system` to inadvertently create a virtualenv + before failing. + - Errors when running `pipenv graph` running against empty or non-existent environments. + will now contain helpful information. + - Removed vendored `cacert.pem` which could cause issues for some users with custom + certificate settings. + - Updated requirementslib to fix a bug in pipfile parsing affecting relative path conversions on Windows. + - Fixed a bug causing pipenv graph to fail to display sometimes. 2018.05.12: - Switch to calver for versioning. 11.10.4: diff --git a/news/1861.feature b/news/1861.feature new file mode 100644 index 00000000..2af59f0e --- /dev/null +++ b/news/1861.feature @@ -0,0 +1 @@ +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.) diff --git a/news/1962.bugfix b/news/1962.bugfix new file mode 100644 index 00000000..2286baf7 --- /dev/null +++ b/news/1962.bugfix @@ -0,0 +1 @@ +Massive internal improvements to requirements parsing codebase, resolver, and error messaging. diff --git a/news/2123.behavior b/news/2123.behavior new file mode 100644 index 00000000..2d0603e0 --- /dev/null +++ b/news/2123.behavior @@ -0,0 +1 @@ +Pipenv will now parse & capitalize ``platform_python_implementation`` markers -- **note** this could cause an issue if you have an out of date ``Pipfile`` which lowercases the comparison value (e.g. ``cpython`` instead of ``CPython``). diff --git a/news/2123.bugfix b/news/2123.bugfix new file mode 100644 index 00000000..2d0603e0 --- /dev/null +++ b/news/2123.bugfix @@ -0,0 +1 @@ +Pipenv will now parse & capitalize ``platform_python_implementation`` markers -- **note** this could cause an issue if you have an out of date ``Pipfile`` which lowercases the comparison value (e.g. ``cpython`` instead of ``CPython``). diff --git a/news/2142.bugfix b/news/2142.bugfix new file mode 100644 index 00000000..b36d5d9d --- /dev/null +++ b/news/2142.bugfix @@ -0,0 +1 @@ +Fixed a bug with parsing and grouping old-style setup.py extras during resolution diff --git a/news/2161.bugfix b/news/2161.bugfix new file mode 100644 index 00000000..ecab3232 --- /dev/null +++ b/news/2161.bugfix @@ -0,0 +1 @@ +Fixed a bug causing pipenv graph to throw unhelpful exceptions when running against empty or non-existent environments. diff --git a/news/2167.feature b/news/2167.feature new file mode 100644 index 00000000..2ce83ecc --- /dev/null +++ b/news/2167.feature @@ -0,0 +1 @@ +Virtualenv names will now appear in prompts for most Windows users. diff --git a/news/2168.feature b/news/2168.feature new file mode 100644 index 00000000..ad280b2f --- /dev/null +++ b/news/2168.feature @@ -0,0 +1 @@ +Added support for cmder shell paths with spaces. diff --git a/news/2181.bugfix b/news/2181.bugfix new file mode 100644 index 00000000..f72cc260 --- /dev/null +++ b/news/2181.bugfix @@ -0,0 +1 @@ +Fixed a bug which caused ``--system`` to incorrectly abort when users were in a virtualenv. diff --git a/news/2184.trivial b/news/2184.trivial new file mode 100644 index 00000000..14ffb69c --- /dev/null +++ b/news/2184.trivial @@ -0,0 +1 @@ +Added an invoke task to generate patches against vendored dependencies. diff --git a/news/2186.bugfix b/news/2186.bugfix new file mode 100644 index 00000000..2286baf7 --- /dev/null +++ b/news/2186.bugfix @@ -0,0 +1 @@ +Massive internal improvements to requirements parsing codebase, resolver, and error messaging. diff --git a/news/2193.bugfix b/news/2193.bugfix new file mode 100644 index 00000000..133f8716 --- /dev/null +++ b/news/2193.bugfix @@ -0,0 +1 @@ +Removed vendored ``cacert.pem`` which could cause issues for some users with custom certificate settings. diff --git a/news/2193.vendor b/news/2193.vendor new file mode 100644 index 00000000..133f8716 --- /dev/null +++ b/news/2193.vendor @@ -0,0 +1 @@ +Removed vendored ``cacert.pem`` which could cause issues for some users with custom certificate settings. diff --git a/news/2194.docs b/news/2194.docs new file mode 100644 index 00000000..562e52c0 --- /dev/null +++ b/news/2194.docs @@ -0,0 +1 @@ +Update the wording to clarify Pipenv's overall role in the packaging ecosystem. diff --git a/news/2198.bugfix b/news/2198.bugfix new file mode 100644 index 00000000..78ee0287 --- /dev/null +++ b/news/2198.bugfix @@ -0,0 +1 @@ +Fixed a regression which led to direct invocations of ``virtualenv``, rather than calling it by module. diff --git a/news/2199.feature b/news/2199.feature new file mode 100644 index 00000000..32840747 --- /dev/null +++ b/news/2199.feature @@ -0,0 +1 @@ +Added nested JSON output to the ``pipenv graph`` command. diff --git a/news/2205.docs b/news/2205.docs new file mode 100644 index 00000000..4c34230c --- /dev/null +++ b/news/2205.docs @@ -0,0 +1 @@ +Added contribution documentation and guidelines. diff --git a/news/2209.bugfix b/news/2209.bugfix new file mode 100644 index 00000000..8496363d --- /dev/null +++ b/news/2209.bugfix @@ -0,0 +1,2 @@ +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. diff --git a/news/2215.docs b/news/2215.docs new file mode 100644 index 00000000..f2308c26 --- /dev/null +++ b/news/2215.docs @@ -0,0 +1 @@ +Added instructions for supervisord compatibility. diff --git a/news/2248.docs b/news/2248.docs new file mode 100644 index 00000000..123a56c4 --- /dev/null +++ b/news/2248.docs @@ -0,0 +1 @@ +Fixed broken links to development philosophy and contribution documentation. diff --git a/news/2255.feature b/news/2255.feature new file mode 100644 index 00000000..7acb52bc --- /dev/null +++ b/news/2255.feature @@ -0,0 +1,2 @@ +Dropped vendored pip 9 and vendor, patch, and migrate to pip 10. +Updated patched piptools version. diff --git a/news/2255.vendor b/news/2255.vendor new file mode 100644 index 00000000..7acb52bc --- /dev/null +++ b/news/2255.vendor @@ -0,0 +1,2 @@ +Dropped vendored pip 9 and vendor, patch, and migrate to pip 10. +Updated patched piptools version. diff --git a/news/2262.bugfix b/news/2262.bugfix new file mode 100644 index 00000000..30bc4e98 --- /dev/null +++ b/news/2262.bugfix @@ -0,0 +1 @@ +``pipenv clean`` will now correctly ignore comments from ``pip freeze`` when cleaning the environment. diff --git a/news/2263.bugfix b/news/2263.bugfix new file mode 100644 index 00000000..2286baf7 --- /dev/null +++ b/news/2263.bugfix @@ -0,0 +1 @@ +Massive internal improvements to requirements parsing codebase, resolver, and error messaging. diff --git a/news/2267.bugfix b/news/2267.bugfix new file mode 100644 index 00000000..c0d4ad41 --- /dev/null +++ b/news/2267.bugfix @@ -0,0 +1 @@ +Resolution bugs causing packages for incompatible python versions to be locked have been fixed. diff --git a/news/2268.bugfix b/news/2268.bugfix new file mode 100644 index 00000000..307580fa --- /dev/null +++ b/news/2268.bugfix @@ -0,0 +1 @@ +Fixed a bug causing pipenv graph to fail to display sometimes. diff --git a/news/2269.bugfix b/news/2269.bugfix new file mode 100644 index 00000000..7b63b595 --- /dev/null +++ b/news/2269.bugfix @@ -0,0 +1 @@ +Updated requirementslib to fix a bug in pipfile parsing affecting relative path conversions. diff --git a/news/2269.vendor b/news/2269.vendor new file mode 100644 index 00000000..7b63b595 --- /dev/null +++ b/news/2269.vendor @@ -0,0 +1 @@ +Updated requirementslib to fix a bug in pipfile parsing affecting relative path conversions. diff --git a/news/2281.feature b/news/2281.feature new file mode 100644 index 00000000..42f9fb76 --- /dev/null +++ b/news/2281.feature @@ -0,0 +1 @@ +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. diff --git a/news/2287.feature b/news/2287.feature new file mode 100644 index 00000000..bea636a7 --- /dev/null +++ b/news/2287.feature @@ -0,0 +1 @@ +Virtualenv activation lines will now avoid being written to some shell history files. diff --git a/news/2298.bugfix b/news/2298.bugfix new file mode 100644 index 00000000..b6a2709a --- /dev/null +++ b/news/2298.bugfix @@ -0,0 +1 @@ +Windows executable discovery now leverages ``os.pathext``. diff --git a/news/2301.bugfix b/news/2301.bugfix new file mode 100644 index 00000000..0ad1ab5d --- /dev/null +++ b/news/2301.bugfix @@ -0,0 +1 @@ +Fixed a bug which caused ``--deploy --system`` to inadvertently create a virtualenv before failing. diff --git a/news/2302.bugfix b/news/2302.bugfix new file mode 100644 index 00000000..16b1cce2 --- /dev/null +++ b/news/2302.bugfix @@ -0,0 +1 @@ +Fixed an issue which led to a failure to unquote special characters in file and wheel paths. diff --git a/news/2304.bugfix b/news/2304.bugfix new file mode 100644 index 00000000..86b9cccf --- /dev/null +++ b/news/2304.bugfix @@ -0,0 +1 @@ +VCS dependencies are now manually obtained only if they do not match the requested ref. diff --git a/news/2307.trivial b/news/2307.trivial new file mode 100644 index 00000000..2db3d023 --- /dev/null +++ b/news/2307.trivial @@ -0,0 +1 @@ +Change function name of ``pipenv.utils.actually_resolve_reps`` to ``pipenv.utils.actually_resolve_deps``. diff --git a/news/2309.feature b/news/2309.feature new file mode 100644 index 00000000..2650524f --- /dev/null +++ b/news/2309.feature @@ -0,0 +1 @@ +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. diff --git a/news/2311.trivial b/news/2311.trivial new file mode 100644 index 00000000..d23379b0 --- /dev/null +++ b/news/2311.trivial @@ -0,0 +1 @@ +Removed unnecessary comma from documentation. diff --git a/news/2312.bugfix b/news/2312.bugfix new file mode 100644 index 00000000..2286baf7 --- /dev/null +++ b/news/2312.bugfix @@ -0,0 +1 @@ +Massive internal improvements to requirements parsing codebase, resolver, and error messaging. diff --git a/news/2312.trivial b/news/2312.trivial new file mode 100644 index 00000000..baa7508f --- /dev/null +++ b/news/2312.trivial @@ -0,0 +1 @@ +Added ``pipenv run`` suggestion for users who are first creating environment. diff --git a/news/2331.feature b/news/2331.feature new file mode 100644 index 00000000..eff70e5e --- /dev/null +++ b/news/2331.feature @@ -0,0 +1 @@ +Added support for mounted drives via UNC paths. diff --git a/news/2363.feature b/news/2363.feature new file mode 100644 index 00000000..aee00776 --- /dev/null +++ b/news/2363.feature @@ -0,0 +1 @@ +Added support for Windows Subsystem for Linux bash shell detection. diff --git a/news/2363.vendor b/news/2363.vendor new file mode 100644 index 00000000..1ed55bce --- /dev/null +++ b/news/2363.vendor @@ -0,0 +1 @@ +Added custom shell detection library ``shellingham``, a port of our changes to ``pew``. diff --git a/news/2368.vendor b/news/2368.vendor new file mode 100644 index 00000000..8a6860e3 --- /dev/null +++ b/news/2368.vendor @@ -0,0 +1,26 @@ +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. diff --git a/news/towncrier_template.rst b/news/towncrier_template.rst new file mode 100644 index 00000000..8aff2057 --- /dev/null +++ b/news/towncrier_template.rst @@ -0,0 +1,40 @@ +{% for section in sections %} +{% set underline = "-" %} +{% if section %} +{{section}} +{{ underline * section|length }}{% set underline = "~" %} + +{% endif %} +{% if sections[section] %} +{% for category, val in definitions.items() if category in sections[section] and category != 'trivial' %} + +{{ definitions[category]['name'] }} +{{ underline * definitions[category]['name']|length }} + +{% if definitions[category]['showcontent'] %} +{% for text, values in sections[section][category]|dictsort(by='value') %} +- {{ text }}{% if category != 'process' %} + {{ values|sort|join(',\n ') }} + {% endif %} + +{% endfor %} +{% else %} +- {{ sections[section][category]['']|sort|join(', ') }} + + +{% endif %} +{% if sections[section][category]|length == 0 %} + +No significant changes. + + +{% else %} +{% endif %} +{% endfor %} +{% else %} + +No significant changes. + + +{% endif %} +{% endfor %} diff --git a/pipenv/__init__.py b/pipenv/__init__.py index fd582617..e62e6584 100644 --- a/pipenv/__init__.py +++ b/pipenv/__init__.py @@ -4,6 +4,8 @@ # | import os import sys +from .__version__ import __version__ + PIPENV_ROOT = os.path.dirname(os.path.realpath(__file__)) PIPENV_VENDOR = os.sep.join([PIPENV_ROOT, 'vendor']) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..a799764c --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,45 @@ +[build-system] +requires = ["setuptools", "wheel"] + +[tool.towncrier] +package = "pipenv" +filename = "CHANGELOG.rst" +issue_format = "`#{issue} `_" +directory = "news/" +title_format = "{version} ({project_date})" +template = "news/towncrier_template.rst" + + [[tool.towncrier.type]] + directory = "feature" + name = "Features & Improvements" + showcontent = true + + [[tool.towncrier.type]] + directory = "behavior" + name = "Behavior Changes" + showcontent = true + + [[tool.towncrier.type]] + directory = "bugfix" + name = "Bug Fixes" + showcontent = true + + [[tool.towncrier.type]] + directory = "vendor" + name = "Vendored Libraries" + showcontent = true + + [[tool.towncrier.type]] + directory = "doc" + name = "Improved Documentation" + showcontent = true + + [[tool.towncrier.type]] + directory = "trivial" + name = "Trivial Changes" + showcontent = false + + [[tool.towncrier.type]] + directory = "removal" + name = "Removals and Deprecations" + showcontent = true