diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ba9d2967..8daa1130 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,15 @@ +2022.12.19 (2022-12-19) +======================= +Pipenv 2022.12.19 (2022-12-19) +============================== + + +Bug Fixes +--------- + +- Fix for ``requirementslib`` hanging during install of remote wheels files. `#5546 `_ + + 2022.12.17 (2022-12-17) ======================= Pipenv 2022.12.17 (2022-12-17) diff --git a/README.md b/README.md index b3705f45..3b8c8fa6 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,7 @@ Table Of Contents - [Installation](#installation) -- [User Testimonals](#☤-user-testimonials) - -- [Features](#☤-features) +- [Features](#features) - [Basic Concepts](#basic-concepts) @@ -54,7 +52,7 @@ Table Of Contents - [Shell Completion](#shell-completion) -- [Usage](#☤-usage) +- [Usage](#usage) - [Usage Examples](#usage-examples) @@ -82,7 +80,7 @@ Table Of Contents - [Use the shell](#use-the-shell) -- [Documentation](#☤-documentation) +- [Documentation](#documentation) Installation ------------ @@ -121,23 +119,7 @@ Otherwise, refer to the [documentation](https://pipenv.pypa.io/en/latest/#instal ✨🍰✨ -☤ User Testimonials -------------------- - -**David Gang**--- - -: *This package manager is really awesome. For the first time I know - exactly what my dependencies are which I installed and what the - transitive dependencies are. Combined with the fact that installs - are deterministic, makes this package manager first class, like - cargo*. - -**Justin Myles Holmes**--- - -: *Pipenv is finally an abstraction meant to engage the mind instead - of merely the filesystem.* - -☤ Features +Features ---------- - Enables truly *deterministic builds*, while easily specifying *only @@ -195,7 +177,7 @@ Alternatively, with bash, add this to your configuration `~/.bashrc` or `~/.bash Magic shell completions are now enabled! -☤ Usage +Usage ------- $ pipenv --help @@ -372,7 +354,7 @@ You can read more about [pip's implementation of vcs support here](https://pip.p Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return. $ ▯ -☤ Documentation +Documentation --------------- Documentation resides over at [pipenv.pypa.io](https://pipenv.pypa.io/en/latest/). diff --git a/pipenv/__version__.py b/pipenv/__version__.py index 33e21700..f7f4d57c 100644 --- a/pipenv/__version__.py +++ b/pipenv/__version__.py @@ -2,4 +2,4 @@ # // ) ) / / // ) ) //___) ) // ) ) || / / # //___/ / / / //___/ / // // / / || / / # // / / // ((____ // / / ||/ / -__version__ = "2022.12.18.dev0" +__version__ = "2022.12.20.dev0" diff --git a/pipenv/cli/options.py b/pipenv/cli/options.py index 928c64de..55aed0c1 100644 --- a/pipenv/cli/options.py +++ b/pipenv/cli/options.py @@ -2,6 +2,7 @@ import os from pipenv.project import Project from pipenv.utils.internet import is_valid_url +from pipenv.vendor import click from pipenv.vendor.click import ( BadArgumentUsage, BadParameter, @@ -156,6 +157,15 @@ def keep_outdated_option(f): def callback(ctx, param, value): state = ctx.ensure_object(State) state.installstate.keep_outdated = value + if value: + click.secho( + "The flag --keep-outdated has been deprecated for removal." + "The flag does not respect package resolver results and leads to inconsistent lock files. " + "Please pin relevant requirements in your Pipfile and discontinue use of this flag.", + fg="yellow", + bold=True, + err=True, + ) return value return option( diff --git a/pipenv/core.py b/pipenv/core.py index 00ed14e5..e42f184d 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -750,20 +750,28 @@ def batch_install( deps_by_index[project.sources_default["name"]].append(dependency) # Treat each index as its own pip install phase for index_name, dependencies in deps_by_index.items(): - install_source = next(filter(lambda s: s["name"] == index_name, sources)) - batch_install_iteration( - project, - dependencies, - [install_source], - procs, - failed_deps_queue, - requirements_dir, - no_deps=no_deps, - ignore_hashes=ignore_hashes, - allow_global=allow_global, - retry=retry, - extra_pip_args=extra_pip_args, - ) + try: + install_source = next(filter(lambda s: s["name"] == index_name, sources)) + batch_install_iteration( + project, + dependencies, + [install_source], + procs, + failed_deps_queue, + requirements_dir, + no_deps=no_deps, + ignore_hashes=ignore_hashes, + allow_global=allow_global, + retry=retry, + extra_pip_args=extra_pip_args, + ) + except StopIteration: + click.secho( + f"Unable to find {index_name} in sources, please check dependencies: {dependencies}", + fg="red", + bold=True, + ) + sys.exit(1) def batch_install_iteration( diff --git a/pipenv/pipenv.1 b/pipenv/pipenv.1 index 26eabddf..17611d57 100644 --- a/pipenv/pipenv.1 +++ b/pipenv/pipenv.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PIPENV" "1" "Dec 17, 2022" "2022.12.17" "pipenv" +.TH "PIPENV" "1" "Dec 19, 2022" "2022.12.19" "pipenv" .sp Pipenv uses a set of commands to manage your Project\(aqs dependencies and custom scripts. It replaces the use of \fBMakefile\fP, direct calls to \fBpip\fP and \fBpython \-m venv\fP or \fBvirtualenv\fP\&.