Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solve upgrade can create incompatible dependency versions in lock file + other bugs #6282

Merged
merged 23 commits into from
Oct 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
49b0c1f
improvements to pipenv reverse to allow json output as pipdeptree doe…
matteius Oct 23, 2024
68562b8
Improve update routine logic by considering whats already installed a…
matteius Oct 23, 2024
e6cabda
convert this code to the prefered output mechanism
matteius Oct 24, 2024
40d347c
edge case
matteius Oct 24, 2024
1ed6447
correction
matteius Oct 24, 2024
928b6e9
convert this code off click
matteius Oct 24, 2024
73aaf37
refactor to reduce install phases, add pre-sync phase to determine co…
matteius Oct 24, 2024
7bf15fb
Add new test that demonstrates the issue 6281
matteius Oct 24, 2024
2594e3b
add news fragment
matteius Oct 24, 2024
3b086b6
fix ruff
matteius Oct 24, 2024
870226d
fix test
matteius Oct 24, 2024
ef04cd2
Replace the old Entry class with something simpler based on data-clas…
matteius Oct 24, 2024
bc30825
Replace the old Entry class with something simpler based on data-clas…
matteius Oct 24, 2024
4888042
fix tests by including subdir and adjusting expected req string; clea…
matteius Oct 25, 2024
f7bbae8
fix remaining tests
matteius Oct 25, 2024
ee09fb1
fix remaining tests
matteius Oct 25, 2024
332de64
fix remaining tests
matteius Oct 25, 2024
395ae0e
fix ~= specifier
matteius Oct 25, 2024
a2a859a
solves the locally built git wheel wheres the ref? mystery
matteius Oct 26, 2024
06028f8
Tack on fix for markers flip-flopping issue.
matteius Oct 26, 2024
3cb3fc2
fix vcs ref null issue
matteius Oct 26, 2024
7968287
Remove peep process
matteius Oct 26, 2024
0d77a19
PR feedback
matteius Oct 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/Feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ about: Suggest an idea for this project

Be sure to check the existing issues (both open and closed!), and make sure you are running the latest version of Pipenv.

Check the [diagnose documentation](https://pipenv.pypa.io/en/latest/diagnose/) for common issues and the [PEEP list](https://github.com/pypa/pipenv/blob/master/peeps/) before posting! We may close your issue if it is very similar to one of them. Please be considerate and follow the PEEP process, or be on your way.
Check the [diagnose documentation](https://pipenv.pypa.io/en/latest/diagnose/) for common issues as well as the GitHub Issues page.

Make sure to mention your debugging experience if the documented solution failed.

Expand Down
4 changes: 1 addition & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ What is the thing you want to fix? Is it associated with an issue on GitHub? Ple

Always consider opening an issue first to describe your problem, so we can discuss what is the best way to amend it. Note that if you do not describe the goal of this change or link to a related issue, the maintainers may close the PR without further review.

If your pull request makes a non-insignificant change to Pipenv, such as the user interface or intended functionality, please file a PEEP.

https://github.com/pypa/pipenv/blob/master/peeps/PEEP-000.md
If your pull request makes a significant change to Pipenv, such as the user interface or intended functionality, please open a discussion or issue report first.

### The fix

Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ on:
- "**/*.txt"
- "examples/**"
- "news/**"
- "peeps/**"
branches:
- main
pull_request:
Expand All @@ -36,7 +35,6 @@ on:
- "**/*.txt"
- "examples/**"
- "news/**"
- "peeps/**"
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
Expand Down
1 change: 0 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ recursive-include docs/_templates *.html
recursive-include docs/_static *.js *.css *.png
recursive-exclude tests/test_artifacts *.pyd *.so *.pyc *.egg-info PKG-INFO

prune peeps
prune .azure-pipelines
prune .github
prune pipenv/vendor/importlib_metadata/tests
Expand Down
18 changes: 18 additions & 0 deletions news/6281.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Fix dependency resolution edge cases and versioning constraints handling:
* Allow JSON format options for ``--reverse`` dependency graph output matching pipdeptree
* Improve installation and upgrade routines to better handle dependencies
* Add ability to specify json output as pipdeptree does
* Add more consistent handling of VCS dependencies and references
* Fix synchronization of development and default dependencies during updates
* Ensure proper propagation of version constraints during updates
* Fix handling of ``~=`` and other version specifiers during updates

Key Changes:
* Improved reverse dependency analysis to catch conflicts earlier in resolution
* Better handling of VCS package lock data, preserving refs and subdirectories
* Fixed issue where VCS references could be lost in lock file when installed via commit hash
* Better handling of pipfile categories during installation and updates
* Corrected logic for development dependency resolution and constraint propagation
* Improved validation and preservation of version specifiers during updates

This improves stability when working with complex dependency trees and version constraints.
9 changes: 0 additions & 9 deletions peeps/PEEP-000.md

This file was deleted.

23 changes: 0 additions & 23 deletions peeps/PEEP-001.md

This file was deleted.

33 changes: 0 additions & 33 deletions peeps/PEEP-002.md

This file was deleted.

9 changes: 0 additions & 9 deletions peeps/PEEP-003.md

This file was deleted.

9 changes: 0 additions & 9 deletions peeps/PEEP-004.md

This file was deleted.

65 changes: 0 additions & 65 deletions peeps/PEEP-005.md

This file was deleted.

62 changes: 0 additions & 62 deletions peeps/PEEP-006.md

This file was deleted.

54 changes: 0 additions & 54 deletions peeps/PEEP-044.md

This file was deleted.

9 changes: 0 additions & 9 deletions peeps/PEEP-TEMPLATE.md

This file was deleted.

2 changes: 1 addition & 1 deletion pipenv/cli/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ def install(state, **kwargs):
editable_packages=state.installstate.editables,
site_packages=state.site_packages,
extra_pip_args=state.installstate.extra_pip_args,
categories=state.installstate.categories,
pipfile_categories=state.installstate.categories,
skip_lock=state.installstate.skip_lock,
)

Expand Down
Loading
Loading