Skip to content

Commit 240ef63

Browse files
committed
Merge conflicts
Signed-off-by: joshlee <joshlee@anyscale.com>
2 parents a2d53b2 + 4706bf1 commit 240ef63

File tree

329 files changed

+11509
-18626
lines changed

Some content is hidden

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

329 files changed

+11509
-18626
lines changed

.buildkite/core.rayci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ steps:
6262
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/_common/tests/... //python/ray/dag/... //python/ray/autoscaler/v2/... core
6363
--install-mask all-ray-libraries
6464
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 3
65-
--except-tags custom_setup
65+
--except-tags custom_setup,cgroup
6666
--install-mask all-ray-libraries
6767

6868
- label: ":ray: core: python {{matrix.python}} tests ({{matrix.worker_id}})"
@@ -76,7 +76,7 @@ steps:
7676
--install-mask all-ray-libraries
7777
--workers 4 --worker-id "{{matrix.worker_id}}" --parallelism-per-worker 3
7878
--python-version {{matrix.python}}
79-
--except-tags custom_setup
79+
--except-tags custom_setup,cgroup
8080
depends_on: corebuild-multipy
8181
matrix:
8282
setup:
@@ -105,7 +105,7 @@ steps:
105105
--install-mask all-ray-libraries
106106
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}" --worker-id "$${BUILDKITE_PARALLEL_JOB}" --parallelism-per-worker 3
107107
--test-env=TEST_EXTERNAL_REDIS=1
108-
--except-tags custom_setup
108+
--except-tags custom_setup,cgroup
109109

110110
- label: ":ray: core: memory pressure tests"
111111
tags:
@@ -261,7 +261,7 @@ steps:
261261
--test-env=RAY_MINIMAL=1
262262
--test-env=EXPECTED_PYTHON_VERSION={{matrix}}
263263
--only-tags minimal
264-
--except-tags basic_test,manual
264+
--except-tags basic_test,manual,cgroup
265265
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/tests/... //python/ray/dashboard/... core
266266
--parallelism-per-worker 3
267267
--python-version {{matrix}}
@@ -366,7 +366,7 @@ steps:
366366
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/... //doc/... core
367367
--install-mask all-ray-libraries
368368
--run-flaky-tests
369-
--except-tags multi_gpu
369+
--except-tags multi_gpu,cgroup
370370
depends_on:
371371
- corebuild
372372

.buildkite/data.rayci.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ steps:
4040
tags:
4141
- data
4242
instance_type: medium
43-
parallelism: 2
43+
parallelism: 8
4444
commands:
4545
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/data/... //python/ray/air/... data
4646
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}"
@@ -54,8 +54,11 @@ steps:
5454
- data
5555
- data_non_parallel
5656
instance_type: medium
57+
parallelism: 3
5758
commands:
5859
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/data/... //python/ray/air/... data
60+
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}"
61+
--worker-id "$${BUILDKITE_PARALLEL_JOB}"
5962
--build-name data9build
6063
--only-tags data_non_parallel
6164
depends_on: data9build
@@ -65,7 +68,7 @@ steps:
6568
- python
6669
- data
6770
instance_type: medium
68-
parallelism: 2
71+
parallelism: 8
6972
commands:
7073
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/data/... //python/ray/air/... data
7174
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}"
@@ -80,8 +83,11 @@ steps:
8083
- data
8184
- data_non_parallel
8285
instance_type: medium
86+
parallelism: 3
8387
commands:
8488
- bazel run //ci/ray_ci:test_in_docker -- //python/ray/data/... //python/ray/air/... data
89+
--workers "$${BUILDKITE_PARALLEL_JOB_COUNT}"
90+
--worker-id "$${BUILDKITE_PARALLEL_JOB}"
8591
--build-name datalbuild
8692
--only-tags data_non_parallel
8793
depends_on: datalbuild

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,45 @@
1-
<!-- Thank you for your contribution! Please review https://github.com/ray-project/ray/blob/master/CONTRIBUTING.rst before opening a pull request. -->
1+
<!-- Thank you for contributing to Ray! 🚀 -->
2+
<!-- Please review https://github.com/ray-project/ray/blob/master/CONTRIBUTING.rst before opening a pull request. -->
3+
<!-- 💡 Tip: Mark as draft if you want early feedback, or ready for review when it's complete -->
24

3-
<!-- Please add a reviewer to the assignee section when you create a PR. If you don't have the access to it, we will shortly find a reviewer and assign them to your PR. -->
5+
## Description
46

5-
## Why are these changes needed?
7+
<!-- Briefly describe what this PR accomplishes and why it's needed -->
68

7-
<!-- Please give a short summary of the change and the problem this solves. -->
9+
## Related issues
810

9-
## Related issue number
11+
<!-- Link related issues: "Fixes #1234", "Closes #1234", or "Related to #1234" -->
1012

11-
<!-- For example: "Closes #1234" -->
13+
## Types of change
1214

13-
## Checks
15+
- [ ] Bug fix 🐛
16+
- [ ] New feature ✨
17+
- [ ] Enhancement 🚀
18+
- [ ] Code refactoring 🔧
19+
- [ ] Documentation update 📖
20+
- [ ] Chore 🧹
21+
- [ ] Style 🎨
1422

15-
- [ ] I've signed off every commit(by using the -s flag, i.e., `git commit -s`) in this PR.
16-
- [ ] I've run pre-commit jobs to lint the changes in this PR. ([pre-commit setup](https://docs.ray.io/en/latest/ray-contribute/getting-involved.html#lint-and-formatting))
17-
- [ ] I've included any doc changes needed for https://docs.ray.io/en/master/.
18-
- [ ] I've added any new APIs to the API Reference. For example, if I added a
19-
method in Tune, I've added it in `doc/source/tune/api/` under the
20-
corresponding `.rst` file.
21-
- [ ] I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
22-
- Testing Strategy
23-
- [ ] Unit tests
24-
- [ ] Release tests
25-
- [ ] This PR is not tested :(
23+
## Checklist
24+
25+
**Does this PR introduce breaking changes?**
26+
- [ ] Yes ⚠️
27+
- [ ] No
28+
<!-- If yes, describe what breaks and how users should migrate -->
29+
30+
**Testing:**
31+
- [ ] Added/updated tests for my changes
32+
- [ ] Tested the changes manually
33+
- [ ] This PR is not tested ❌ _(please explain why)_
34+
35+
**Code Quality:**
36+
- [ ] Signed off every commit (`git commit -s`)
37+
- [ ] Ran pre-commit hooks ([setup guide](https://docs.ray.io/en/latest/ray-contribute/getting-involved.html#lint-and-formatting))
38+
39+
**Documentation:**
40+
- [ ] Updated documentation (if applicable) ([contribution guide](https://docs.ray.io/en/latest/ray-contribute/docs.html))
41+
- [ ] Added new APIs to `doc/source/` (if applicable)
42+
43+
## Additional context
44+
45+
<!-- Optional: Add screenshots, examples, performance impact, breaking change details -->

ci/lint/pre-push

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
echo "Linting changes as part of pre-push hook"
44
echo ""
5-
echo "ci/lint/format.sh:"
6-
ci/lint/format.sh
5+
echo "pre-commit:"
6+
pre-commit run --from-ref master --to-ref HEAD
77

88
lint_exit_status=$?
99
if [ $lint_exit_status -ne 0 ]; then
1010
echo ""
1111
echo "Linting changes failed."
12-
echo "Please make sure 'ci/lint/format.sh'"\
12+
echo "Please make sure 'pre-commit'"\
1313
"runs with no errors before pushing."
1414
echo "If you want to ignore this and push anyways,"\
1515
"re-run with '--no-verify'."

ci/lint/pydoclint-baseline.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1528,10 +1528,6 @@ python/ray/serve/_private/api.py
15281528
DOC201: Function `serve_start` does not have a return section in docstring
15291529
--------------------
15301530
python/ray/serve/_private/application_state.py
1531-
DOC001: Method `__init__` Potential formatting errors in docstring. Error message: No specification for "Args": ""
1532-
DOC001: Function/method `__init__`: Potential formatting errors in docstring. Error message: No specification for "Args": "" (Note: DOC001 could trigger other unrelated violations under this function/method too. Please fix the docstring formatting first.)
1533-
DOC101: Method `ApplicationState.__init__`: Docstring contains fewer arguments than in function signature.
1534-
DOC103: Method `ApplicationState.__init__`: 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: [deployment_state_manager: DeploymentStateManager, endpoint_state: EndpointState, logging_config: LoggingConfig, name: str].
15351531
DOC103: Method `ApplicationStateManager.deploy_app`: 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: [deployment_args: List[Dict]]. Arguments in the docstring but not in the function signature: [deployment_args_list: ].
15361532
DOC102: Function `override_deployment_info`: Docstring contains more arguments than in function signature.
15371533
DOC103: Function `override_deployment_info`: 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 docstring but not in the function signature: [app_name: ].

ci/pipeline/test_conditional_testing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
_TESTS_YAML = """
1818
ci/pipeline/test_conditional_testing.py: lint tools
19-
python/ray/data/__init__.py: lint data linux_wheels ml train
19+
python/ray/data/__init__.py: lint data ml train
2020
doc/index.md: lint
2121
2222
python/ray/air/__init__.py: lint ml train tune data linux_wheels

ci/pipeline/test_rules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ ci/docker/data.build.wanda.yaml
3939
ci/docker/datan.build.wanda.yaml
4040
ci/docker/data9.build.wanda.yaml
4141
ci/docker/datal.build.wanda.yaml
42-
@ data ml train linux_wheels
42+
@ data ml train
4343
;
4444

4545
python/ray/workflow/

ci/ray_ci/BUILD.bazel

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,19 @@ py_library(
99
"test_*.py",
1010
"test_in_docker.py",
1111
"build_in_docker.py",
12+
"build_in_docker_windows.py",
1213
],
1314
),
1415
data = glob(["*.yaml"]),
1516
visibility = ["//ci/ray_ci:__subpackages__"],
1617
deps = [
18+
"//release:bazel",
19+
"//release:global_config",
20+
"//release:test",
21+
"//release:test_automation",
1722
ci_require("boto3"),
1823
ci_require("pyyaml"),
1924
ci_require("click"),
20-
"//release:ray_release",
2125
],
2226
)
2327

ci/raydepsets/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ py_test(
4343
"tests/test_data/requirements_compiled_test_update.txt",
4444
"tests/test_data/requirements_test.txt",
4545
"tests/test_data/test.depsets.yaml",
46+
"tests/test_data/test2.depsets.yaml",
4647
],
4748
exec_compatible_with = ["//:hermetic_python"],
4849
tags = [

ci/raydepsets/cli.py

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import difflib
2+
import os
23
import platform
34
import shlex
45
import shutil
@@ -90,20 +91,22 @@ def __init__(
9091
check: Optional[bool] = False,
9192
):
9293
self.workspace = Workspace(workspace_dir)
93-
self.config = self.workspace.load_config(config_path)
94-
if check:
95-
self.temp_dir = tempfile.mkdtemp()
96-
self.output_paths = self.get_output_paths()
97-
self.copy_to_temp_dir()
94+
self.config = self.workspace.load_configs(config_path)
95+
self.config_name = os.path.basename(config_path)
9896
self.build_graph = DiGraph()
9997
self._build()
10098
self._uv_binary = _uv_binary()
10199
self._uv_cache_dir = uv_cache_dir
100+
if check:
101+
self.temp_dir = tempfile.mkdtemp()
102+
self.output_paths = self.get_output_paths()
103+
self.copy_to_temp_dir()
102104

103105
def get_output_paths(self) -> List[Path]:
104106
output_paths = []
105-
for depset in self.config.depsets:
106-
output_paths.append(Path(depset.output))
107+
for node in topological_sort(self.build_graph):
108+
if self.build_graph.nodes[node]["node_type"] == "depset":
109+
output_paths.append(Path(self.build_graph.nodes[node]["depset"].output))
107110
return output_paths
108111

109112
def copy_to_temp_dir(self):
@@ -148,16 +151,28 @@ def _build(self):
148151
for depset in self.config.depsets:
149152
if depset.operation == "compile":
150153
self.build_graph.add_node(
151-
depset.name, operation="compile", depset=depset, node_type="depset"
154+
depset.name,
155+
operation="compile",
156+
depset=depset,
157+
node_type="depset",
158+
config_name=depset.config_name,
152159
)
153160
elif depset.operation == "subset":
154161
self.build_graph.add_node(
155-
depset.name, operation="subset", depset=depset, node_type="depset"
162+
depset.name,
163+
operation="subset",
164+
depset=depset,
165+
node_type="depset",
166+
config_name=depset.config_name,
156167
)
157168
self.build_graph.add_edge(depset.source_depset, depset.name)
158169
elif depset.operation == "expand":
159170
self.build_graph.add_node(
160-
depset.name, operation="expand", depset=depset, node_type="depset"
171+
depset.name,
172+
operation="expand",
173+
depset=depset,
174+
node_type="depset",
175+
config_name=depset.config_name,
161176
)
162177
for depset_name in depset.depsets:
163178
self.build_graph.add_edge(depset_name, depset.name)
@@ -171,20 +186,39 @@ def _build(self):
171186
operation="pre_hook",
172187
pre_hook=hook,
173188
node_type="pre_hook",
189+
config_name=depset.config_name,
174190
)
175191
self.build_graph.add_edge(hook_name, depset.name)
192+
self.subgraph_config_nodes()
176193

177194
def subgraph_dependency_nodes(self, depset_name: str):
178195
dependency_nodes = networkx_ancestors(self.build_graph, depset_name)
179196
nodes = dependency_nodes | {depset_name}
180197
self.build_graph = self.build_graph.subgraph(nodes).copy()
181198

199+
def subgraph_config_nodes(self):
200+
# Get all nodes that have the target config name
201+
config_nodes = [
202+
node
203+
for node in self.build_graph.nodes
204+
if self.build_graph.nodes[node]["config_name"] == self.config_name
205+
]
206+
# Get all ancestors of the target config nodes
207+
ancestors_by_confg_node = {
208+
n: networkx_ancestors(self.build_graph, n) for n in config_nodes
209+
}
210+
# Union all the ancestors of the target config nodes
211+
config_nodes_ancestors = set().union(
212+
*(ancestors_by_confg_node[n] for n in config_nodes)
213+
)
214+
nodes = set(config_nodes) | config_nodes_ancestors
215+
self.build_graph = self.build_graph.subgraph(nodes).copy()
216+
182217
def execute(self, single_depset_name: Optional[str] = None):
183218
if single_depset_name:
184219
# check if the depset exists
185220
_get_depset(self.config.depsets, single_depset_name)
186221
self.subgraph_dependency_nodes(single_depset_name)
187-
188222
for node in topological_sort(self.build_graph):
189223
node_type = self.build_graph.nodes[node]["node_type"]
190224
if node_type == "pre_hook":

0 commit comments

Comments
 (0)