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

Declare inspect and install reports formats to be stable #11757

Merged
merged 3 commits into from
Jan 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 2 additions & 5 deletions docs/html/reference/inspect-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -72,7 +69,7 @@ this (metadata abriged for brevity):

```json
{
"version": "0",
"version": "1",
"pip_version": "22.2.dev0",
"installed": [
{
Expand Down
7 changes: 2 additions & 5 deletions docs/html/reference/installation-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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": [
{
Expand Down
2 changes: 2 additions & 0 deletions news/11757.feature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
The inspect and installation report formats are now declared stabled, and their version
has been bumped from ``0`` to ``1``.
7 changes: 1 addition & 6 deletions src/pip/_internal/commands/inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,14 @@ def add_options(self) -> None:
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,
user_only=options.user,
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(),
Expand Down
6 changes: 0 additions & 6 deletions src/pip/_internal/commands/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -417,12 +417,6 @@ def run(self, options: Values, args: List[str]) -> int:
)

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())
Expand Down
2 changes: 1 addition & 1 deletion src/pip/_internal/models/installation_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def _install_req_to_dict(cls, ireq: InstallRequirement) -> Dict[str, Any]:

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
Expand Down
2 changes: 1 addition & 1 deletion tests/functional/test_inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 0 additions & 11 deletions tests/functional/test_install_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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())
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down