* fix: don't mutate cached parsed_pipfile when locking deps
get_locked_dep popped ``version`` and ``ref`` directly off the entry it
received from ``pipfile_section``. Since #6649 made ``parsed_pipfile``
return a cached TOMLDocument by reference, those pops persisted across
the rest of the pipenv invocation — a subsequent ``write_toml`` (e.g.
``add_pipfile_entry_to_pipfile`` for the newly installed package) would
emit ``six = {}`` instead of ``six = {version = "*"}`` and strip the
version from any inline-table or outline-table siblings.
Copy the dict before scrubbing those keys. Add a unit regression test
that asserts get_locked_dep leaves the section untouched.
Fixes the integration regression hit by ``test_rewrite_outline_table``
and ``test_rewrite_outline_table_ooo`` on main since the pip 26.1
vendoring run.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Fix recursive pipenv test bootstrap dependency
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes#4053 - Added a dedicated 'Installing on Windows' section to
docs/installation.md with the recommended pipx-based approach and
PATH setup instructions.
Closes#4577 - Added an 'Upgrading the Python Version' workflow to
docs/workflows.md with step-by-step instructions for migrating a
project to a new Python interpreter.
Closes#4636 - Documented that python_version in [requires] only
accepts an exact version string (e.g. '3.10'), not range specifiers
like '>= 3.6', and added a warning with the misleading error message.
Closes#5129 - Enhanced the 'Moving or Renaming Projects' section in
docs/virtualenv.md with a recovery workflow for users who already
moved their project without running 'pipenv --rm', plus a tip about
PIPENV_VENV_IN_PROJECT.
Closes#5130 - Added a 'Multi-Platform Considerations' section to
docs/locking.md explaining that Pipfile.lock is platform-specific,
with workarounds for cross-platform teams (Docker locking, CI, etc.).
Closes#5324 - Added a 'News Fragments' section to
docs/dev/contributing.md covering all towncrier fragment types and
explaining why 'trivial' entries are intentionally omitted from the
CHANGELOG.
Closes#5528 - Documented the behavior when a package pinned in
[dev-packages] conflicts with the version resolved through [packages]
dependencies, and how to enforce a specific version.
Closes#6028 - Added a 'Platform Markers and Locking' note to
docs/specifiers.md explaining that pip resolves all packages at lock
time regardless of sys_platform markers, and providing workarounds.
* Check point progress on moving tests to pypiserver.
* Allow other indexes to mimic the pypi json API for package hashes.
* Fix these tests that run on lower python versions only.
* Try adding the pypiserver to the github actions to only run once.
* Expand the scope of fixtures for pypiserver.
* try to accomedate microsoft runner.
* Windows networking troubles.
* Remove running as a background job.
* Try to condtionally invoke different start pypi-server commands
* Try to condtionally invoke different start pypi-server commands
* Try to condtionally invoke different start pypi-server commands
* Try to condtionally invoke different start pypi-server commands
* Try to condtionally invoke different start pypi-server commands
* Try to condtionally invoke different start pypi-server commands
* Try to condtionally invoke different start pypi-server commands
* Try to introduce pypi as the root index because setuptools-scm is not in our pypi artifacts.
* see if the windows tests run faster (and the other tests) by supplying waitress.
* Only use waitress on windows because the others are fast on the default. Fix requests pollution.
* Supply a suitable Pipfile instead for these two failing tests.
* More requests resolver cross test contamination cleanup.
* remove problematic tests because even on my version of python 3.8.12 this does not work due to AttributeError: 'HTMLParser' object has no attribute 'unescape'
* fix mirror install test.
* Fix Pipfile.
* Fix Pipfile for real
* Fix tests
* Cleanup test naming and more test enhancements.
* Save this optimization for a subsequent PR.
* Cleanup the TemporaryDirectory between tests.
* resolve merge conflict.
* Cleanup path initalization -- it hsould always be a TemporaryDirectory for tests that gets cleanedup.
* Cleanup path initalization -- it hsould always be a TemporaryDirectory for tests that gets cleanedup.
* tableflip on those requests tests that read the setup metadata in reqlib from other tests.
* Update developer documentation for running tests.
* add news fragment.
* Try gunicorn perfoormance for linux/mac
* Only use gunicorn on linux based on the results of last run.
* Add .pre-commit-config.yaml to the project and exclude tests (for now). This does not include the MyPy linting that pip does but does include everything else.
This document is no longer useful. KR has stepped down
and all the other maintainers are emeritus.
The rest of the philosophy is exlusive and could be removed
without doing any harm. KR still has earned his respect starting
this project.
`dig pipenv.org ns` currently shows no nameserver for that domain;
pipenv.pypa.io is the new home for documentation, so use that
everywhere (contributors guides, `pipenv --envs` output).
The canonical Pipenv documentation is now at pipenv.pypa.io.
Also, the canonical GitHub repositories for Pipenv and
Requests have changed, and some other communications links
(Twitter, mailing list, "thank you") were no longer
operational. This commit updates those and clarifies that
Pipenv is a project maintained by the PyPA.
Fixes#4137.
Signed-off-by: Sumana Harihareswara <sh@changeset.nyc>
Removed ppa mentions from documentation, and re-organised the page a bit
to make it structurally easier to upderstand.
Both the documentation's front page and README.rst now actively refer to
the page so user can be directed to better installation methods. (I
don't think this is very useful TBT because people don't use manuals,
but we should still do it.)
Also fixed many Sphinx warnings during documentation builds.