From fadafee2dc2eddc27f40554c74ea914d2b4d654f Mon Sep 17 00:00:00 2001 From: Ignas Anikevicius <240938+aignas@users.noreply.github.com> Date: Sun, 26 Jan 2025 13:10:42 +0900 Subject: [PATCH] revert: Updated pip and packaging versions to work with free-threading packages (#2514) This reverts commit fbf8bc10a466c498fc80c6b58c939a87a8d9e929. Also, update the CHANGELOG about the reverting. Fixes #908. --- CHANGELOG.md | 5 ++++ .../dependency_resolver.py | 30 +++++-------------- python/private/pypi/deps.bzl | 8 ++--- 3 files changed, 16 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24b83e3228..32f700527f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 @@ -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 diff --git a/python/private/pypi/dependency_resolver/dependency_resolver.py b/python/private/pypi/dependency_resolver/dependency_resolver.py index 6f6c20241b..293377dc6d 100644 --- a/python/private/pypi/dependency_resolver/dependency_resolver.py +++ b/python/private/pypi/dependency_resolver/dependency_resolver.py @@ -16,7 +16,6 @@ import atexit import os -import re import shutil import sys from pathlib import Path @@ -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. @@ -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/ - # with: # via -r - # 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) @@ -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 @@ -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 diff --git a/python/private/pypi/deps.bzl b/python/private/pypi/deps.bzl index 21dd7771fa..31a5201659 100644 --- a/python/private/pypi/deps.bzl +++ b/python/private/pypi/deps.bzl @@ -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", @@ -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",