Issue description
There was a regression in the ability to lock Pipfiles containing packages with extras on the 2022.8.13 release. This was working fine on versions prior to 2022.8.13. I believe this is as a result of the changes introduced in #5234
Expected result
Given the Pipfile in the replicate section, it should lock, showing
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Updated Pipfile.lock (3e8e27)!
Actual result
[ResolutionFailure]: File "***.venv/lib/python3.10/site-packages/pipenv/resolver.py", line 824, in _main
[ResolutionFailure]: resolve_packages(
[ResolutionFailure]: File "***.venv/lib/python3.10/site-packages/pipenv/resolver.py", line 772, in resolve_packages
[ResolutionFailure]: results, resolver = resolve(
[ResolutionFailure]: File "***.venv/lib/python3.10/site-packages/pipenv/resolver.py", line 751, in resolve
[ResolutionFailure]: return resolve_deps(
[ResolutionFailure]: File "***.venv/lib/python3.10/site-packages/pipenv/utils/resolver.py", line 1126, in resolve_deps
[ResolutionFailure]: results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
[ResolutionFailure]: File "***.venv/lib/python3.10/site-packages/pipenv/utils/resolver.py", line 919, in actually_resolve_deps
[ResolutionFailure]: resolver.resolve()
[ResolutionFailure]: File "***.venv/lib/python3.10/site-packages/pipenv/utils/resolver.py", line 723, in resolve
[ResolutionFailure]: raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: Constraints cannot have extras
Steps to replicate
With the following Pipfile
[packages]
"uvicorn[standard]" = "~=0.18.2"
[dev-packages]
pytest = "~=7.1.1"
[requires]
python_version = "3.9"
Run pipenv lock
Note that there is a package with 'extras', namely uvicorn[standard]. This issue does not occur with normal packages.
The change to lock the packages first and then treat that lock as constraints for the dev packages seems to raise the exception that the extras are not allowed.
Issue description
There was a regression in the ability to lock Pipfiles containing packages with extras on the 2022.8.13 release. This was working fine on versions prior to 2022.8.13. I believe this is as a result of the changes introduced in #5234
Expected result
Given the Pipfile in the replicate section, it should lock, showing
Actual result
Steps to replicate
With the following Pipfile
Run
pipenv lockNote that there is a package with 'extras', namely uvicorn[standard]. This issue does not occur with normal packages.
The change to lock the packages first and then treat that lock as constraints for the dev packages seems to raise the exception that the extras are not allowed.