From 99dddc1616c98c0a3c0adc79431677cc3cb1ce38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sat, 28 Jan 2023 13:48:14 +0100 Subject: [PATCH 1/3] pip inspect format declared stable --- docs/html/reference/inspect-report.md | 7 ++----- src/pip/_internal/commands/inspect.py | 7 +------ tests/functional/test_inspect.py | 2 +- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/docs/html/reference/inspect-report.md b/docs/html/reference/inspect-report.md index 50d83365c..e2c7301fd 100644 --- a/docs/html/reference/inspect-report.md +++ b/docs/html/reference/inspect-report.md @@ -10,10 +10,7 @@ environment, including installed distributions. The report is a JSON object with the following properties: -- `version`: the string `0`, denoting that the inspect command is an experimental - feature. This value will change to `1`, when the feature is deemed stable after - gathering user feedback (likely in pip 22.3 or 23.0). Backward incompatible changes - may be introduced in version `1` without notice. After that, it will change only if +- `version`: the string `1`. It will change only if and when backward incompatible changes are introduced, such as removing mandatory fields or changing the semantics or data type of existing fields. The introduction of backward incompatible changes will follow the usual pip processes such as the @@ -72,7 +69,7 @@ this (metadata abriged for brevity): ```json { - "version": "0", + "version": "1", "pip_version": "22.2.dev0", "installed": [ { diff --git a/src/pip/_internal/commands/inspect.py b/src/pip/_internal/commands/inspect.py index a4e359930..27c8fa3d5 100644 --- a/src/pip/_internal/commands/inspect.py +++ b/src/pip/_internal/commands/inspect.py @@ -46,11 +46,6 @@ class InspectCommand(Command): self.parser.insert_option_group(0, self.cmd_opts) def run(self, options: Values, args: List[str]) -> int: - logger.warning( - "pip inspect is currently an experimental command. " - "The output format may change in a future release without prior warning." - ) - cmdoptions.check_list_path_option(options) dists = get_environment(options.path).iter_installed_distributions( local_only=options.local, @@ -58,7 +53,7 @@ class InspectCommand(Command): skip=set(stdlib_pkgs), ) output = { - "version": "0", + "version": "1", "pip_version": __version__, "installed": [self._dist_to_dict(dist) for dist in dists], "environment": default_environment(), diff --git a/tests/functional/test_inspect.py b/tests/functional/test_inspect.py index 464bdbaa1..18abf1a46 100644 --- a/tests/functional/test_inspect.py +++ b/tests/functional/test_inspect.py @@ -28,7 +28,7 @@ def test_inspect_basic(simple_script: PipTestEnvironment) -> None: """ Test default behavior of inspect command. """ - result = simple_script.pip("inspect", allow_stderr_warning=True) + result = simple_script.pip("inspect") report = json.loads(result.stdout) installed = report["installed"] assert len(installed) == 4 From 126e6f67a55220cc28596d25326e4fdaccbd120b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sat, 28 Jan 2023 13:48:33 +0100 Subject: [PATCH 2/3] Install report format declared stable --- docs/html/reference/installation-report.md | 7 ++----- src/pip/_internal/commands/install.py | 6 ------ src/pip/_internal/models/installation_report.py | 2 +- tests/functional/test_install_report.py | 11 ----------- 4 files changed, 3 insertions(+), 23 deletions(-) diff --git a/docs/html/reference/installation-report.md b/docs/html/reference/installation-report.md index de67528cf..e0f241318 100644 --- a/docs/html/reference/installation-report.md +++ b/docs/html/reference/installation-report.md @@ -23,10 +23,7 @@ When considering use cases, please bear in mind that The report is a JSON object with the following properties: -- `version`: the string `0`, denoting that the installation report is an experimental - feature. This value will change to `1`, when the feature is deemed stable after - gathering user feedback (likely in pip 22.3 or 23.0). Backward incompatible changes - may be introduced in version `1` without notice. After that, it will change only if +- `version`: the string `1`. It will change only if and when backward incompatible changes are introduced, such as removing mandatory fields or changing the semantics or data type of existing fields. The introduction of backward incompatible changes will follow the usual pip processes such as the @@ -92,7 +89,7 @@ will produce an output similar to this (metadata abriged for brevity): ```json { - "version": "0", + "version": "1", "pip_version": "22.2", "install": [ { diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py index accceeaec..cecaac2bc 100644 --- a/src/pip/_internal/commands/install.py +++ b/src/pip/_internal/commands/install.py @@ -417,12 +417,6 @@ class InstallCommand(RequirementCommand): ) if options.json_report_file: - logger.warning( - "--report is currently an experimental option. " - "The output format may change in a future release " - "without prior warning." - ) - report = InstallationReport(requirement_set.requirements_to_install) if options.json_report_file == "-": print_json(data=report.to_dict()) diff --git a/src/pip/_internal/models/installation_report.py b/src/pip/_internal/models/installation_report.py index 965f09523..b54afb109 100644 --- a/src/pip/_internal/models/installation_report.py +++ b/src/pip/_internal/models/installation_report.py @@ -38,7 +38,7 @@ class InstallationReport: def to_dict(self) -> Dict[str, Any]: return { - "version": "0", + "version": "1", "pip_version": __version__, "install": [ self._install_req_to_dict(ireq) for ireq in self._install_requirements diff --git a/tests/functional/test_install_report.py b/tests/functional/test_install_report.py index b61fd89c6..70f71e223 100644 --- a/tests/functional/test_install_report.py +++ b/tests/functional/test_install_report.py @@ -26,7 +26,6 @@ def test_install_report_basic( str(shared_data.root / "packages/"), "--report", str(report_path), - allow_stderr_warning=True, ) report = json.loads(report_path.read_text()) assert "install" in report @@ -59,7 +58,6 @@ def test_install_report_dep( str(shared_data.root / "packages/"), "--report", str(report_path), - allow_stderr_warning=True, ) report = json.loads(report_path.read_text()) assert len(report["install"]) == 2 @@ -78,7 +76,6 @@ def test_install_report_index(script: PipTestEnvironment, tmp_path: Path) -> Non "Paste[openid]==1.7.5.1", "--report", str(report_path), - allow_stderr_warning=True, ) report = json.loads(report_path.read_text()) assert len(report["install"]) == 2 @@ -114,7 +111,6 @@ def test_install_report_vcs_and_wheel_cache( str(cache_dir), "--report", str(report_path), - allow_stderr_warning=True, ) report = json.loads(report_path.read_text()) assert len(report["install"]) == 1 @@ -142,7 +138,6 @@ def test_install_report_vcs_and_wheel_cache( str(cache_dir), "--report", str(report_path), - allow_stderr_warning=True, ) assert "Using cached pip_test_package" in result.stdout report = json.loads(report_path.read_text()) @@ -176,7 +171,6 @@ def test_install_report_vcs_editable( "#egg=pip-test-package", "--report", str(report_path), - allow_stderr_warning=True, ) report = json.loads(report_path.read_text()) assert len(report["install"]) == 1 @@ -203,11 +197,6 @@ def test_install_report_to_stdout( str(shared_data.root / "packages/"), "--report", "-", - allow_stderr_warning=True, - ) - assert result.stderr == ( - "WARNING: --report is currently an experimental option. " - "The output format may change in a future release without prior warning.\n" ) report = json.loads(result.stdout) assert "install" in report From 46ec9368fb406b0d51e1d39dcd9fac244f49b009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sat, 28 Jan 2023 14:13:08 +0100 Subject: [PATCH 3/3] Add news --- news/11757.feature.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 news/11757.feature.rst diff --git a/news/11757.feature.rst b/news/11757.feature.rst new file mode 100644 index 000000000..594fb6271 --- /dev/null +++ b/news/11757.feature.rst @@ -0,0 +1,2 @@ +The inspect and installation report formats are now declared stabled, and their version +has been bumped from ``0`` to ``1``.