Skip to content

Commit 633bb7b

Browse files
[deps] adding include_setuptools flag for depset config (#58580)
Adding optional `include_setuptools` flag for depset configuration If the flag is set on a depset config --unsafe-package setuptools will not be included for depset compilation If the flag does not exist (default false) on a depset config --unsafe-package setuptools will be appended to the default arguments --------- Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com> Co-authored-by: Lonnie Liu <95255098+aslonnie@users.noreply.github.com>
1 parent 292b977 commit 633bb7b

File tree

47 files changed

+90
-48
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+90
-48
lines changed

ci/raydepsets/cli.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
DEFAULT_UV_FLAGS = """
1919
--generate-hashes
20-
--unsafe-package setuptools
2120
--index-url https://pypi.org/simple
2221
--index-strategy unsafe-best-match
2322
--no-strip-markers
@@ -275,6 +274,7 @@ def execute_depset(self, depset: Depset):
275274
append_flags=depset.append_flags,
276275
override_flags=depset.override_flags,
277276
packages=depset.packages,
277+
include_setuptools=depset.include_setuptools,
278278
)
279279
elif depset.operation == "subset":
280280
self.subset(
@@ -284,6 +284,7 @@ def execute_depset(self, depset: Depset):
284284
override_flags=depset.override_flags,
285285
name=depset.name,
286286
output=depset.output,
287+
include_setuptools=depset.include_setuptools,
287288
)
288289
elif depset.operation == "expand":
289290
self.expand(
@@ -294,6 +295,7 @@ def execute_depset(self, depset: Depset):
294295
override_flags=depset.override_flags,
295296
name=depset.name,
296297
output=depset.output,
298+
include_setuptools=depset.include_setuptools,
297299
)
298300
click.echo(f"Dependency set {depset.name} compiled successfully")
299301

@@ -306,10 +308,13 @@ def compile(
306308
override_flags: Optional[List[str]] = None,
307309
packages: Optional[List[str]] = None,
308310
requirements: Optional[List[str]] = None,
311+
include_setuptools: Optional[bool] = False,
309312
):
310313
"""Compile a dependency set."""
311314
args = DEFAULT_UV_FLAGS.copy()
312315
stdin = None
316+
if not include_setuptools:
317+
args.extend(_flatten_flags(["--unsafe-package setuptools"]))
313318
if self._uv_cache_dir:
314319
args.extend(["--cache-dir", self._uv_cache_dir])
315320
if override_flags:
@@ -338,6 +343,7 @@ def subset(
338343
output: str = None,
339344
append_flags: Optional[List[str]] = None,
340345
override_flags: Optional[List[str]] = None,
346+
include_setuptools: Optional[bool] = False,
341347
):
342348
"""Subset a dependency set."""
343349
source_depset = _get_depset(self.config.depsets, source_depset)
@@ -349,6 +355,7 @@ def subset(
349355
output=output,
350356
append_flags=append_flags,
351357
override_flags=override_flags,
358+
include_setuptools=include_setuptools,
352359
)
353360

354361
def expand(
@@ -360,6 +367,7 @@ def expand(
360367
output: str = None,
361368
append_flags: Optional[List[str]] = None,
362369
override_flags: Optional[List[str]] = None,
370+
include_setuptools: Optional[bool] = False,
363371
):
364372
"""Expand a dependency set."""
365373
# handle both depsets and requirements
@@ -377,6 +385,7 @@ def expand(
377385
output=output,
378386
append_flags=append_flags,
379387
override_flags=override_flags,
388+
include_setuptools=include_setuptools,
380389
)
381390

382391
def read_lock_file(self, file_path: Path) -> List[str]:

ci/raydepsets/tests/test_cli.py

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,36 @@ def test_append_uv_flags_with_space_in_flag(self):
319319
output_text = output_file.read_text()
320320
assert "--python-version 3.10" in output_text
321321

322+
def test_include_setuptools(self):
323+
with tempfile.TemporaryDirectory() as tmpdir:
324+
copy_data_to_tmpdir(tmpdir)
325+
manager = _create_test_manager(tmpdir)
326+
manager.compile(
327+
constraints=[],
328+
requirements=["requirements_test.txt"],
329+
name="general_depset",
330+
output="requirements_compiled_general.txt",
331+
include_setuptools=True,
332+
)
333+
output_file = Path(tmpdir) / "requirements_compiled_general.txt"
334+
output_text = output_file.read_text()
335+
assert "--unsafe-package setuptools" not in output_text
336+
337+
def test_ignore_setuptools(self):
338+
with tempfile.TemporaryDirectory() as tmpdir:
339+
copy_data_to_tmpdir(tmpdir)
340+
manager = _create_test_manager(tmpdir)
341+
manager.compile(
342+
constraints=[],
343+
requirements=["requirements_test.txt"],
344+
name="general_depset",
345+
output="requirements_compiled_general.txt",
346+
include_setuptools=False,
347+
)
348+
output_file = Path(tmpdir) / "requirements_compiled_general.txt"
349+
output_text = output_file.read_text()
350+
assert "--unsafe-package setuptools" in output_text
351+
322352
def test_override_uv_flag_single_flag(self):
323353
expected_flags = DEFAULT_UV_FLAGS.copy()
324354
expected_flags.remove("--index-strategy")
@@ -334,12 +364,12 @@ def test_override_uv_flag_single_flag(self):
334364

335365
def test_override_uv_flag_multiple_flags(self):
336366
expected_flags = DEFAULT_UV_FLAGS.copy()
337-
expected_flags.remove("--unsafe-package")
338-
expected_flags.remove("setuptools")
339-
expected_flags.extend(["--unsafe-package", "dummy"])
367+
expected_flags.remove("--index-url")
368+
expected_flags.remove("https://pypi.org/simple")
369+
expected_flags.extend(["--index-url", "https://dummyurl.com"])
340370
assert (
341371
_override_uv_flags(
342-
["--unsafe-package dummy"],
372+
["--index-url https://dummyurl.com"],
343373
DEFAULT_UV_FLAGS.copy(),
344374
)
345375
== expected_flags

ci/raydepsets/tests/test_data/test.depsets.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,4 @@ depsets:
6060
constraints:
6161
- requirement_constraints_expand.txt
6262
output: requirements_compiled_nested_expand.txt
63+
include_setuptools: true

ci/raydepsets/workspace.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class Depset:
2525
source_depset: Optional[str] = None
2626
depsets: Optional[List[str]] = None
2727
pre_hooks: Optional[List[str]] = None
28+
include_setuptools: Optional[bool] = False
2829

2930

3031
def _substitute_build_args(obj: Any, build_arg_set: BuildArgSet):
@@ -54,6 +55,7 @@ def _dict_to_depset(depset: dict, config_name: str) -> Depset:
5455
append_flags=depset.get("append_flags", []),
5556
pre_hooks=depset.get("pre_hooks", []),
5657
packages=depset.get("packages", []),
58+
include_setuptools=depset.get("include_setuptools", False),
5759
config_name=config_name,
5860
)
5961

python/deplocks/base_extra/ray_base_extra_py3.10.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile --generate-hashes --unsafe-package setuptools --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package ray --python-version=3.10 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.10.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.10.lock
2+
# uv pip compile --generate-hashes --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package setuptools --unsafe-package ray --python-version=3.10 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.10.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.10.lock
33
--index-url https://pypi.org/simple
44

55
adlfs==2023.8.0 \

python/deplocks/base_extra/ray_base_extra_py3.11.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile --generate-hashes --unsafe-package setuptools --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package ray --python-version=3.11 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.11.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.11.lock
2+
# uv pip compile --generate-hashes --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package setuptools --unsafe-package ray --python-version=3.11 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.11.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.11.lock
33
--index-url https://pypi.org/simple
44

55
adlfs==2023.8.0 \

python/deplocks/base_extra/ray_base_extra_py3.12.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile --generate-hashes --unsafe-package setuptools --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package ray --python-version=3.12 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.12.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.12.lock
2+
# uv pip compile --generate-hashes --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package setuptools --unsafe-package ray --python-version=3.12 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.12.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.12.lock
33
--index-url https://pypi.org/simple
44

55
adlfs==2023.8.0 \

python/deplocks/base_extra/ray_base_extra_py3.9.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile --generate-hashes --unsafe-package setuptools --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package ray --python-version=3.9 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.9.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.9.lock
2+
# uv pip compile --generate-hashes --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package setuptools --unsafe-package ray --python-version=3.9 --python-platform=linux -c release/ray_release/byod/ray_base_extra_testdeps_py3.9.lock docker/base-deps/requirements.in docker/base-extra/requirements.in -o python/deplocks/base_extra/ray_base_extra_py3.9.lock
33
--index-url https://pypi.org/simple
44

55
adlfs==2023.8.0 \

python/deplocks/docs/docbuild_depset_py3.10.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile --generate-hashes --unsafe-package setuptools --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --python-version=3.10 --python-platform=linux --unsafe-package ray doc/requirements-doc.txt -o python/deplocks/docs/docbuild_depset_py3.10.lock
2+
# uv pip compile --generate-hashes --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package setuptools --python-version=3.10 --python-platform=linux --unsafe-package ray doc/requirements-doc.txt -o python/deplocks/docs/docbuild_depset_py3.10.lock
33
--index-url https://pypi.org/simple
44

55
accessible-pygments==0.0.5 \

python/deplocks/docs/docbuild_depset_py3.12.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile --generate-hashes --unsafe-package setuptools --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --python-version=3.12 --python-platform=linux --unsafe-package ray doc/requirements-doc.txt -o python/deplocks/docs/docbuild_depset_py3.12.lock
2+
# uv pip compile --generate-hashes --index-url https://pypi.org/simple --index-strategy unsafe-best-match --no-strip-markers --emit-index-url --emit-find-links --unsafe-package setuptools --python-version=3.12 --python-platform=linux --unsafe-package ray doc/requirements-doc.txt -o python/deplocks/docs/docbuild_depset_py3.12.lock
33
--index-url https://pypi.org/simple
44

55
accessible-pygments==0.0.5 \

0 commit comments

Comments
 (0)