Skip to content

Commit 06902b5

Browse files
authored
Issue #701: Note pipenv project maintenance problems (#715)
* set public deadline for tutorial removal if the pipenv release doesn't happen * emphasise poetry more as an option for library developers (and developers of applications that can be distributed as libraries) * update GitHub URL for poetry project
1 parent 0751e36 commit 06902b5

2 files changed

Lines changed: 43 additions & 10 deletions

File tree

source/tutorials/managing-dependencies.rst

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,35 @@ applicable to the development and deployment of network services (including
2121
web applications), but is also very well suited to managing development and
2222
testing environments for any kind of project.
2323

24-
.. Note:: This guide is written for Python 3, however, these instructions
25-
should also work on Python 2.7.
24+
Developers of Python libraries, or of applications that support distribution
25+
as Python libraries, should also consider the
26+
`poetry <https://github.com/python-poetry/poetry>`_ project as an alternative dependency
27+
management solution.
28+
29+
30+
Recommendation caveats (as of April 2020)
31+
-----------------------------------------
32+
33+
While this tutorial covers the ``pipenv`` project as a tool that focuses
34+
primarily on the needs of Python application development rather than Python
35+
library development, the project itself is currently working through several
36+
`process and maintenance issues <https://github.com/pypa/pipenv/issues/3369>`_
37+
that are preventing bug fixes and new features from being published (with the
38+
entirety of 2019 passing without a new release).
39+
40+
This means that in the near term, ``pipenv`` still suffers from several quirks
41+
and performance problems without a clear timeline for resolution of those isses.
42+
43+
While this remains the case, project maintainers are likely to want to
44+
investigate :ref:`other-dependency-management-tools` for use instead of, or
45+
together with, ``pipenv``.
46+
47+
Assuming the April 2020 ``pipenv`` release goes ahead as planned, and the
48+
release after that also remains on track, then this caveat on the tutorial will
49+
be removed. If those releases *don't* remain on track, then the tutorial itself
50+
will be removed, and replaced with a discussion page on the available dependency
51+
management options.
52+
2653

2754
Installing Pipenv
2855
-----------------
@@ -143,18 +170,24 @@ they (and their dependencies) can be added to your ``pipenv`` environment with
143170
``pipenv install -e <relative-path-to-source-directory>`` (e.g.
144171
``pipenv install -e .`` or ``pipenv install -e src``).
145172

173+
174+
.. _other-dependency-management-tools:
175+
176+
Other Tools for Application Dependency Management
177+
-------------------------------------------------
178+
146179
If you find this particular approach to managing application dependencies isn't
147180
working well for you or your use case, you may want to explore these other tools
148181
and techniques to see if one of them is a better fit:
149182

150-
* `pip-tools <https://github.com/jazzband/pip-tools>`_ to build your own
151-
custom workflow from lower level pieces like ``pip-compile`` and ``pip-sync``
152-
* `hatch <https://github.com/ofek/hatch>`_ for opinionated coverage of even
153-
more steps in the project management workflow (such as incrementing versions,
154-
tagging releases, and creating new skeleton projects from project templates)
155-
* `poetry <https://github.com/sdispater/poetry>`_ for a tool comparable in scope
156-
to `pipenv` that focuses more directly on use cases where the repository being
183+
* `poetry <https://github.com/python-poetry/poetry>`__ for a tool comparable in scope
184+
to ``pipenv`` that focuses more directly on use cases where the repository being
157185
managed is structured as a Python project with a valid ``pyproject.toml`` file
158186
(by contrast, ``pipenv`` explicitly avoids making the assumption that the
159187
application being worked on that's depending on components from PyPI will
160188
itself support distribution as a ``pip``-installable Python package).
189+
* `hatch <https://github.com/ofek/hatch>`_ for opinionated coverage of even
190+
more steps in the project management workflow (such as incrementing versions,
191+
tagging releases, and creating new skeleton projects from project templates)
192+
* `pip-tools <https://github.com/jazzband/pip-tools>`_ to build your own
193+
custom workflow from lower level pieces like ``pip-compile`` and ``pip-sync``

source/tutorials/packaging-projects.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,4 +360,4 @@ some things you can do:
360360
and `poetry`_.
361361

362362
.. _hatch: https://github.com/ofek/hatch
363-
.. _poetry: https://github.com/sdispater/poetry
363+
.. _poetry: https://github.com/python-poetry/poetry

0 commit comments

Comments
 (0)