Skip to content

Commit 19841e7

Browse files
authored
Merge branch 'master' into master
2 parents f8d408d + c6e7001 commit 19841e7

141 files changed

Lines changed: 4610 additions & 903 deletions

File tree

Some content is hidden

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

.buildkite/test.rules.test.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ docker/Dockerfile.ray: docker linux_wheels
8383

8484
doc/code.py: doc
8585
doc/example.ipynb: doc
86-
doc/tutorial.rst: doc
8786
.readthedocs.yaml: doc
8887
.vale.ini: doc
8988
.vale/styles/config/vocabularies/Core/accept.txt: doc

.buildkite/test.rules.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
! linux_wheels macos_wheels docker doc python_dependencies min_build tools
2121
! release_tests spark_on_ray
2222

23+
# NOTE: dstrodtman is leading effort to rework content in RST files, and wanted to shift
24+
# from blocking premerge for these changes. We can remove this pass block once effort concludes,
25+
# or earlier should regressions become an issue.
26+
doc/*.rst
27+
# pass
28+
;
29+
2330
python/ray/air/
2431
@ ml train train_gpu tune data linux_wheels
2532
;

.buildkite/windows.rayci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ steps:
106106
--test-env=CI="1"
107107
--test-env=RAY_CI_POST_WHEEL_TESTS="1"
108108
--test-env=USERPROFILE
109-
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 3
109+
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 1
110110
depends_on:
111111
- windowsbuild
112112
- block-windows-tests

ci/ci.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ compile_pip_dependencies() {
4949
python/requirements/lint-requirements.txt \
5050
python/requirements/test-requirements.txt \
5151
python/requirements/cloud-requirements.txt \
52+
python/requirements/serve/serve-test-requirements.txt \
5253
python/requirements/docker/ray-docker-requirements.txt \
5354
python/requirements/ml/core-requirements.txt \
5455
python/requirements/ml/data-requirements.txt \
@@ -117,6 +118,7 @@ compile_313_pip_dependencies() {
117118
python/requirements/lint-requirements.txt \
118119
python/requirements/py313/test-requirements.txt \
119120
python/requirements/cloud-requirements.txt \
121+
python/requirements/serve/serve-test-requirements.txt \
120122
python/requirements/docker/ray-docker-requirements.txt \
121123
python/requirements/ml/py313/core-requirements.txt \
122124
python/requirements/ml/py313/data-requirements.txt \

ci/lint/pydoclint-baseline.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1477,8 +1477,6 @@ python/ray/serve/api.py
14771477
DOC103: Function `start`: Docstring arguments are different from function arguments. (Or could be other formatting issues: https://jsh9.github.io/pydoclint/violation_codes.html#notes-on-doc103 ). Arguments in the function signature but not in the docstring: [**kwargs: ].
14781478
DOC201: Function `get_replica_context` does not have a return section in docstring
14791479
DOC201: Function `ingress` does not have a return section in docstring
1480-
DOC101: Function `run_many`: Docstring contains fewer arguments than in function signature.
1481-
DOC103: Function `run_many`: Docstring arguments are different from function arguments. (Or could be other formatting issues: https://jsh9.github.io/pydoclint/violation_codes.html#notes-on-doc103 ). Arguments in the function signature but not in the docstring: [_local_testing_mode: bool].
14821480
DOC101: Function `run`: Docstring contains fewer arguments than in function signature.
14831481
DOC103: Function `run`: Docstring arguments are different from function arguments. (Or could be other formatting issues: https://jsh9.github.io/pydoclint/violation_codes.html#notes-on-doc103 ). Arguments in the function signature but not in the docstring: [_local_testing_mode: bool].
14841482
DOC101: Function `multiplexed`: Docstring contains fewer arguments than in function signature.

ci/raydepsets/configs/ci_serve.depsets.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ depsets:
1212
depsets:
1313
- ray_img_depset_${PYTHON_SHORT}
1414
requirements:
15-
- python/requirements/serve/serve-requirements.txt
16-
- python/requirements/serve/haproxy-reqs.txt
15+
- python/requirements/serve/serve-test-requirements.txt
1716
constraints:
1817
- /tmp/ray-deps/requirements_compiled_py3.13.txt
1918
output: python/deplocks/ci/serve_base_depset_py${PYTHON_VERSION}.lock

doc/source/data/joining-data.rst

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,6 @@ Ray Data provides the following levers to allow tuning the performance of joins
5454
- Note that, `num_partitions * partition_size_hint` should ideally be approximating actual dataset size, ie `partition_size_hint` could be estimated as dataset size divided by `num_partitions` (assuming relatively evenly sized partitions)
5555
- However, in cases when dataset partitioning is expected to be heavily skewed `partition_size_hint` should approximate largest partition to prevent Out-of-Memory (OOM) errors
5656

57-
.. note:: Be mindful that by default Ray reserves only 30% of the memory for its Object Store. This is recommended to be set at least to ***50%*** for all
58-
Ray Data workloads, but especially so for ones utilizing joins.
59-
60-
To configure Object Store to be 50%, add to your image:
61-
62-
.. testcode::
63-
64-
RAY_DEFAULT_OBJECT_STORE_MEMORY_PROPORTION=0.5
65-
6657
.. _joins_configuring_num_partitions:
6758

6859
Configuring number of partitions

doc/source/data/performance-tips.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -441,9 +441,6 @@ You can configure execution options with the global DataContext. The options are
441441
object_store_memory=10e9,
442442
)
443443
444-
.. note::
445-
Be mindful that by default Ray reserves only 30% of the memory for its Object Store. This is recommended to be set at least to ***50%*** for all Ray Data workloads.
446-
447444
Reproducibility
448445
---------------
449446

doc/source/ray-core/handling-dependencies.rst

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -490,8 +490,8 @@ API Reference
490490

491491
The ``runtime_env`` is a Python dictionary or a Python class :class:`ray.runtime_env.RuntimeEnv <ray.runtime_env.RuntimeEnv>` including one or more of the following fields:
492492

493-
- ``working_dir`` (str): Specifies the working directory for the Ray workers. This must either be (1) an local existing directory with total size at most 500 MiB, (2) a local existing zipped file with total unzipped size at most 500 MiB (Note: ``excludes`` has no effect), or (3) a URI to a remotely-stored zip file containing the working directory for your job (no file size limit is enforced by Ray). See :ref:`remote-uris` for details.
494-
The specified directory will be downloaded to each node on the cluster, and Ray workers will be started in their node's copy of this directory.
493+
- ``working_dir`` (str): Specifies the working directory for the Ray workers. This must either be (1) a local existing directory with total size at most 500 MiB, (2) a local existing archive file (``.zip``, ``.tar.gz``, or ``.tgz``) with total uncompressed size at most 500 MiB (Note: ``excludes`` has no effect), or (3) a URI to a remotely-stored archive (``.zip``, ``.tar.gz``, or ``.tgz``) containing the working directory for your job (no file size limit is enforced by Ray). See :ref:`remote-uris` for details.
494+
The specified directory is downloaded to each node on the cluster, and Ray workers start in their node's copy of this directory.
495495

496496
- Examples
497497

@@ -503,6 +503,8 @@ The ``runtime_env`` is a Python dictionary or a Python class :class:`ray.runtime
503503

504504
- ``"s3://path/to/my_dir.zip"``
505505

506+
- ``"s3://path/to/my_dir.tar.gz"``
507+
506508
Note: Setting a local directory per-task or per-actor is currently unsupported; it can only be set per-job (i.e., in ``ray.init()``).
507509

508510
Note: By default, if the local directory contains a ``.gitignore`` and/or ``.rayignore`` file, the specified files are not uploaded to the cluster. To disable the ``.gitignore`` from being considered, set ``RAY_RUNTIME_ENV_IGNORE_GITIGNORE=1`` on the machine doing the uploading.
@@ -512,7 +514,7 @@ The ``runtime_env`` is a Python dictionary or a Python class :class:`ray.runtime
512514
Note: If the local directory contains symbolic links, Ray follows the links and the files they point to are uploaded to the cluster.
513515

514516
- ``py_modules`` (List[str|module]): Specifies Python modules to be available for import in the Ray workers. (For more ways to specify packages, see also the ``pip`` and ``conda`` fields below.)
515-
Each entry must be either (1) a path to a local file or directory, (2) a URI to a remote zip or wheel file (see :ref:`remote-uris` for details), (3) a Python module object, or (4) a path to a local `.whl` file.
517+
Each entry must be either (1) a path to a local file or directory, (2) a URI to a remote archive (``.zip``, ``.tar.gz``, ``.tgz``) or wheel (``.whl``) file (see :ref:`remote-uris` for details), (3) a Python module object, or (4) a path to a local ``.whl`` file.
516518

517519
- Examples of entries in the list:
518520

@@ -818,25 +820,31 @@ If you want to specify this directory as a local path, your ``runtime_env`` dict
818820
runtime_env = {..., "working_dir": "/some_path/example_dir", ...}
819821

820822
Suppose instead you want to host your files in your ``/some_path/example_dir`` directory remotely and provide a remote URI.
821-
You would need to first compress the ``example_dir`` directory into a zip file.
823+
You need to first compress the ``example_dir`` directory into a ``.zip`` or ``.tar.gz`` archive.
822824

823-
There should be no other files or directories at the top level of the zip file, other than ``example_dir``.
824-
You can use the following command in the Terminal to do this:
825+
There should be no other files or directories at the top level of the archive, other than ``example_dir``.
826+
You can use one of the following commands in the Terminal:
825827

826828
.. code-block:: bash
827829
828830
cd /some_path
829-
zip -r zip_file_name.zip example_dir
831+
# Using zip:
832+
zip -r archive.zip example_dir
833+
# Using tar.gz:
834+
tar -czf archive.tar.gz example_dir
830835
831-
Note that this command must be run from the *parent directory* of the desired ``working_dir`` to ensure that the resulting zip file contains a single top-level directory.
832-
In general, the zip file's name and the top-level directory's name can be anything.
833-
The top-level directory's contents will be used as the ``working_dir`` (or ``py_module``).
836+
Run this command from the *parent directory* of the desired ``working_dir`` to ensure that the resulting archive contains a single top-level directory.
837+
In general, the archive's name and the top-level directory's name can be anything.
838+
The top-level directory's contents are used as the ``working_dir`` (or ``py_module``).
834839

835-
You can check that the zip file contains a single top-level directory by running the following command in the Terminal:
840+
You can check that the archive contains a single top-level directory by running one of the following commands in the Terminal:
836841

837842
.. code-block:: bash
838843
839-
zipinfo -1 zip_file_name.zip
844+
# For zip:
845+
zipinfo -1 archive.zip
846+
# For tar.gz:
847+
tar -tzf archive.tar.gz
840848
# example_dir/
841849
# example_dir/my_file_1.txt
842850
# example_dir/subdir/my_file_2.txt
@@ -849,15 +857,22 @@ Your ``runtime_env`` dictionary should contain:
849857

850858
runtime_env = {..., "working_dir": "s3://example_bucket/example.zip", ...}
851859

860+
You can also use ``.tar.gz`` or ``.tgz`` archives:
861+
862+
.. testcode::
863+
:skipif: True
864+
865+
runtime_env = {..., "working_dir": "s3://example_bucket/example.tar.gz", ...}
866+
852867
.. warning::
853868

854-
Check for hidden files and metadata directories in zipped dependencies.
855-
You can inspect a zip file's contents by running the ``zipinfo -1 zip_file_name.zip`` command in the Terminal.
856-
Some zipping methods can cause hidden files or metadata directories to appear in the zip file at the top level.
857-
To avoid this, use the ``zip -r`` command directly on the directory you want to compress from its parent's directory. For example, if you have a directory structure such as: ``a/b`` and you want to compress ``b``, issue the ``zip -r b`` command from the directory ``a.``
858-
If Ray detects more than a single directory at the top level, it will use the entire zip file instead of the top-level directory, which may lead to unexpected behavior.
869+
Check for hidden files and metadata directories in archived dependencies.
870+
You can inspect an archive's contents by running ``zipinfo -1 archive.zip`` or ``tar -tzf archive.tar.gz`` in the Terminal.
871+
Some archiving methods can cause hidden files or metadata directories to appear at the top level.
872+
To avoid this, use ``zip -r`` or ``tar -czf`` directly on the directory you want to compress from its parent's directory. For example, if you have a directory structure such as: ``a/b`` and you want to compress ``b``, issue the command from the directory ``a``.
873+
If Ray detects more than a single directory at the top level, it uses the entire archive instead of the top-level directory, which may lead to unexpected behavior.
859874

860-
Currently, four types of remote URIs are supported for hosting ``working_dir`` and ``py_modules`` packages:
875+
Remote URIs support ``.zip``, ``.tar.gz``, and ``.tgz`` archive formats. Four types of remote URIs are supported for hosting ``working_dir`` and ``py_modules`` packages:
861876

862877
- ``HTTPS``: ``HTTPS`` refers to URLs that start with ``https``.
863878
These are particularly useful because remote Git providers (e.g. GitHub, Bitbucket, GitLab, etc.) use ``https`` URLs as download links for repository archives.

doc/source/serve/api/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ See the [model composition guide](serve-model-composition) for how to update cod
9494
:toctree: doc/
9595
:template: autosummary/autopydantic.rst
9696
97+
serve.config.ControllerOptions
9798
serve.config.gRPCOptions
9899
serve.config.HTTPOptions
99100
serve.config.AutoscalingConfig

0 commit comments

Comments
 (0)