Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ Unreleased changes template.
* (rules) deprecation warnings for deprecated symbols have been turned off by
default for now and can be enabled with `RULES_PYTHON_DEPRECATION_WARNINGS`
env var.
* (pypi) Downgraded versions of packages: `pip` from `24.3.2` to `24.0.0` and
`packaging` from `24.2` to `24.0`.

{#v0-0-0-fixed}
### Fixed
Expand All @@ -67,6 +69,9 @@ Unreleased changes template.
as UTF-8 on all platforms.
* (coverage) Coverage with `--bootstrap_impl=script` is fixed
([#2572](https://github.com/bazelbuild/rules_python/issues/2572)).
* (pypi) Non deterministic behaviour in requirement file usage has been fixed
by reverting [#2514](https://github.com/bazelbuild/rules_python/pull/2514).
The related issue is [#908](https://github.com/bazelbuild/rules_python/issue/908).

{#v0-0-0-added}
### Added
Expand Down
30 changes: 7 additions & 23 deletions python/private/pypi/dependency_resolver/dependency_resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

import atexit
import os
import re
import shutil
import sys
from pathlib import Path
Expand Down Expand Up @@ -118,6 +117,7 @@ def main(
absolute_path_prefix = resolved_requirements_file[
: -(len(requirements_file) - len(repository_prefix))
]

# As srcs might contain references to generated files we want to
# use the runfiles file first. Thus, we need to compute the relative path
# from the execution root.
Expand Down Expand Up @@ -162,19 +162,12 @@ def main(
argv.append(
f"--output-file={requirements_file_relative if UPDATE else requirements_out}"
)
src_files = [
argv.extend(
(src_relative if Path(src_relative).exists() else resolved_src)
for src_relative, resolved_src in zip(srcs_relative, resolved_srcs)
]
argv.extend(src_files)
)
argv.extend(extra_args)

# Replace in the output lock file
# the lines like: # via -r /absolute/path/to/<requirements_file>
# with: # via -r <requirements_file>
# For Windows, we should explicitly call .as_posix() to convert \\ -> /
absolute_src_prefixes = [Path(src).absolute().parent.as_posix() + "/" for src in src_files]

if UPDATE:
print("Updating " + requirements_file_relative)

Expand All @@ -192,14 +185,14 @@ def main(
# and we should copy the updated requirements back to the source tree.
if not absolute_output_file.samefile(requirements_file_tree):
atexit.register(
lambda: shutil.copy(absolute_output_file, requirements_file_tree)
lambda: shutil.copy(
absolute_output_file, requirements_file_tree
)
)
cli(argv, standalone_mode=False)
cli(argv, standalone_mode = False)
requirements_file_relative_path = Path(requirements_file_relative)
content = requirements_file_relative_path.read_text()
content = content.replace(absolute_path_prefix, "")
for absolute_src_prefix in absolute_src_prefixes:
content = content.replace(absolute_src_prefix, "")
requirements_file_relative_path.write_text(content)
else:
# cli will exit(0) on success
Expand All @@ -221,15 +214,6 @@ def main(
golden = open(_locate(bazel_runfiles, requirements_file)).readlines()
out = open(requirements_out).readlines()
out = [line.replace(absolute_path_prefix, "") for line in out]

def replace_via_minus_r(line):
if "# via -r " in line:
for absolute_src_prefix in absolute_src_prefixes:
line = line.replace(absolute_src_prefix, "")
return line
return line

out = [replace_via_minus_r(line) for line in out]
if golden != out:
import difflib

Expand Down
8 changes: 4 additions & 4 deletions python/private/pypi/deps.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ _RULE_DEPS = [
),
(
"pypi__packaging",
"https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl",
"09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759",
"https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl",
"2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
),
(
"pypi__pep517",
Expand All @@ -61,8 +61,8 @@ _RULE_DEPS = [
),
(
"pypi__pip",
"https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl",
"3790624780082365f47549d032f3770eeb2b1e8bd1f7b2e02dace1afa361b4ed",
"https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl",
"ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc",
),
(
"pypi__pip_tools",
Expand Down