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

Updated pip and packaging versions to work with free-threading packages #2514

Merged
merged 1 commit into from
Jan 3, 2025
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ Unreleased changes template.
* (rules) The version-aware rules have been folded into the base rules and
the version-aware rules are now simply aliases for the base rules. The
`python_version` attribute is still used to specify the Python version.
* (pypi) Updated versions of packages: `pip` to 24.3.1 and
aignas marked this conversation as resolved.
Show resolved Hide resolved
`packaging` to 24.2.

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

import atexit
import os
import re
import shutil
import sys
from pathlib import Path
Expand Down Expand Up @@ -117,7 +118,6 @@ 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,12 +162,19 @@ def main(
argv.append(
f"--output-file={requirements_file_relative if UPDATE else requirements_out}"
)
argv.extend(
src_files = [
(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 @@ -185,14 +192,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 @@ -214,6 +221,15 @@ 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/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl",
"2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
"https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl",
"09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759",
),
(
"pypi__pep517",
Expand All @@ -61,8 +61,8 @@ _RULE_DEPS = [
),
(
"pypi__pip",
"https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl",
"ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc",
"https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl",
"3790624780082365f47549d032f3770eeb2b1e8bd1f7b2e02dace1afa361b4ed",
),
(
"pypi__pip_tools",
Expand Down