Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
06c64ae
[Data] Footer-based row-group chunking + online bin packing for Parqu…
goutamvenkat-anyscale Jul 24, 2026
d10db62
[Data] Push limit into ListFiles when Limit sits directly on ReadFiles
goutamvenkat-anyscale Jul 24, 2026
b4549c7
[Data] Refine footer-chunking Parquet V2 read path
goutamvenkat-anyscale Jul 24, 2026
92392ba
Merge branch 'master' into parquet-footer-row-group-chunking
goutamvenkat-anyscale Jul 24, 2026
e6cf1af
[Data] Seal and evict full shared bins in OnlineBinPacker
goutamvenkat-anyscale Jul 24, 2026
26cdef2
[Data] Fix count() pushdown on the Parquet V2 footer read path
goutamvenkat-anyscale Jul 27, 2026
71a1bf2
[Data] Parallelize ListFiles for the footer indexer; per-test bin bud…
goutamvenkat-anyscale Jul 27, 2026
07c7b96
[Data] Revert ListFiles parallelization; make footer result batching …
goutamvenkat-anyscale Jul 28, 2026
3129cff
[Data] Restore map_batches read/map fusion; per-test bin budgets
goutamvenkat-anyscale Jul 29, 2026
8fef082
[Data] Per-variant Parquet bin budgets for aggregate_groups and cross_az
goutamvenkat-anyscale Jul 29, 2026
a981b67
Merge branch 'master' into parquet-footer-row-group-chunking
goutamvenkat-anyscale Jul 29, 2026
74e599b
[Data] Default footer actor pool to 1 in tests; bump fallback bin bud…
goutamvenkat-anyscale Jul 30, 2026
7758f26
[Data] Bump test_predicate_pushdown to medium size
goutamvenkat-anyscale Jul 30, 2026
2024a40
[Data] Pin 64MiB bin budget on tests that regressed at the 128MiB def…
goutamvenkat-anyscale Jul 31, 2026
bc82996
[Data] Default footer actor pool to 1 for air tests and the xgboost s…
goutamvenkat-anyscale Jul 31, 2026
b2fa8e1
[Data] Let footer reader actors reserve a CPU; lower scale-up thresho…
goutamvenkat-anyscale Jul 31, 2026
2c2e152
[Data] Derive ListFiles pushdown state from the ReadFiles scanner
goutamvenkat-anyscale Aug 1, 2026
e1062c7
[Data] Restore inherited RAYTEST_FAIL_ON_* on tests that pin a runtim…
goutamvenkat-anyscale Aug 1, 2026
e3ae608
[Data] Cover filter + limit push-down over a nullable column
goutamvenkat-anyscale Aug 1, 2026
5f43069
[Data] Type the scanner and listing accessors in the pushdown-derivat…
goutamvenkat-anyscale Aug 1, 2026
eb75903
[Data] Pin per-scaling tuning for the tpch q1, q17, and q22 release t…
goutamvenkat-anyscale Aug 3, 2026
42244f5
[Train] Give test_e2e_wandb_integration a medium timeout
goutamvenkat-anyscale Aug 3, 2026
ad16695
[Data] Retry transient IO errors when slicing Parquet fragments
goutamvenkat-anyscale Aug 3, 2026
af4b755
[Data] Pin a 64 MiB bin budget for tpch_q18 autoscaling
goutamvenkat-anyscale Aug 3, 2026
117c75a
Merge branch 'master' into parquet-footer-row-group-chunking
goutamvenkat-anyscale Aug 4, 2026
717c457
Fix limit pushdown
goutamvenkat-anyscale Aug 4, 2026
fd38ffd
[Data] Add flag-gated arrow-rs Parquet reader for DataSource V2
AarryaSaraf Jul 29, 2026
ee41312
[Data] arrow-rs Parquet reader: address review + fix import ordering
AarryaSaraf Jul 29, 2026
4607491
[Data] arrow-rs pruning: only compare plain signed-int stats
AarryaSaraf Jul 30, 2026
0221ec0
[Data] arrow-rs crate: drop trailing blank line in .gitignore
AarryaSaraf Jul 30, 2026
a0199b1
[Data] arrow-rs reader: fix pyrefly type-check errors
AarryaSaraf Jul 30, 2026
d3950e7
[Data] TESTING (revert before PR): run arrow-rs reader across data re…
AarryaSaraf Jul 31, 2026
5c225ca
[Data] arrow-rs reader: resolve chunk descriptor to row-group range
AarryaSaraf Aug 1, 2026
3a7f9d7
[Data] arrow-rs tests: drop obsolete native-footer-chunking tests
AarryaSaraf Aug 1, 2026
890e1ab
[Data] datasource_v2: honor page_checksum_verification on the PyArrow…
AarryaSaraf Aug 3, 2026
8f5170d
[Data] arrow-rs: decode Ray tensor extension files natively (ARROW:sc…
AarryaSaraf Aug 3, 2026
e35e216
[Data] release benchmark: log per-operator time / output bytes / deco…
AarryaSaraf Aug 3, 2026
07f2cf0
[Data] arrow-rs: single-node read probe for the Linux + S3 regression…
AarryaSaraf Aug 3, 2026
01f39f3
[Data] TESTING (revert before PR): S3 fixture generator + A/B matrix …
AarryaSaraf Aug 3, 2026
f6c36fa
[Data] TESTING (revert before PR): one-shot setup.sh for arrow-rs S3 …
AarryaSaraf Aug 3, 2026
bfb6d01
[Data] arrow-rs: page-align S3 fetch windows, fix wide-schema re-decode
AarryaSaraf Aug 3, 2026
40d88ed
[Data] TESTING (revert before PR): read_probe deterministic per-task USS
AarryaSaraf Aug 4, 2026
2dc8c5f
[Data] TESTING (revert before PR): wide-schema column-windowing S3 path
AarryaSaraf Aug 4, 2026
361be3e
[Data] arrow-rs: budget-gated concurrent prefetch for the column-wind…
AarryaSaraf Aug 4, 2026
5a9e48e
[Data] TESTING (revert before PR): setup.sh upstream remote, env.sh, …
AarryaSaraf Aug 4, 2026
63657d5
[Data] arrow-rs: derive column-prefetch bucket as 4x column_fetch_mb
AarryaSaraf Aug 4, 2026
d4bbfd6
[Data] Unify arrow-rs S3 read paths under one budget-gated prefetch d…
AarryaSaraf Aug 4, 2026
70c3ab1
[Data] Surface per-task max USS/RSS in op metrics and release benchmarks
AarryaSaraf Aug 4, 2026
82a97cb
[Data] arrow-rs: fix two reader defaults that measured worse than the…
AarryaSaraf Aug 8, 2026
232f15f
[Data] arrow-rs: the decode budget is a throughput knob, not a memory…
AarryaSaraf Aug 8, 2026
6692d8d
[Data] arrow-rs: port the reader onto footer-based row-group chunking
AarryaSaraf Aug 11, 2026
fc8d7c9
[Data] arrow-rs: grand tuning experiment for the footer-based planner
AarryaSaraf Aug 11, 2026
10bb3f6
[Data] arrow-rs grand experiment: re-run safety fixes
AarryaSaraf Aug 11, 2026
d78d872
[Data] arrow-rs tests: fix direct _resolve_batch_size calls + pyarrow…
AarryaSaraf Aug 11, 2026
b73ee04
[Data] arrow-rs reader: per-file native handles (1r), bounded fragmen…
AarryaSaraf Aug 11, 2026
adc9cc5
[Data] arrow-rs reader: fix two stale docstrings (1v)
AarryaSaraf Aug 11, 2026
7930e22
[Data] arrow-rs probe: fix read_avg_max_uss_gb=None (stats snapshot r…
AarryaSaraf Aug 11, 2026
e1d92fb
[Data] arrow-rs probe: fix stale stage-D summary label (no threads=1 …
AarryaSaraf Aug 11, 2026
a6bd848
[Data] arrow-rs: fix the three S3-path memory defects (TODO 1u)
AarryaSaraf Aug 11, 2026
8f08f5a
[Data] arrow-rs byod: pin crate source to the build's commit (branch …
AarryaSaraf Aug 12, 2026
43f17e9
[Data] arrow-rs 1ab phase 1: Linux replication matrix for the A/B tru…
AarryaSaraf Aug 12, 2026
3506492
[Data] arrow-rs: fragment-pool parity with the base reader + one-comm…
AarryaSaraf Aug 12, 2026
db9d4b8
[Data] arrow-rs probe: add the bin-bound check (is per-task USS bound…
AarryaSaraf Aug 13, 2026
fc45c41
[Data] arrow-rs probe: add the oom stage (R5 — the failure-mode demon…
AarryaSaraf Aug 13, 2026
b658f9b
[Data] arrow-rs: fix the wide-schema realign cost (1y, tensors 5.4x -…
AarryaSaraf Aug 13, 2026
3132c6e
[Data] arrow-rs probe: 1y reproducer stage (tensorscp) + 1o parquet-p…
AarryaSaraf Aug 13, 2026
f53e4ca
[Data] arrow-rs test: record, don't assert, the scanner's batch_size …
AarryaSaraf Aug 13, 2026
d92432e
[Data] release benchmarks: per-task memory distributions, node-level …
AarryaSaraf Aug 14, 2026
ffecbf8
[Data] arrow-rs probe: per-metric medians and a discarded warm-up run
AarryaSaraf Aug 14, 2026
beacf74
[Data] release benchmarks: write the node-memory trace to the CWD, no…
AarryaSaraf Aug 14, 2026
9878008
[Data] arrow-rs probe: 3-part loss triage for the A/B #3 losses (M31/…
AarryaSaraf Aug 17, 2026
258ad19
[Data] Report per-task reader decode aggregates through CustomOpStats
AarryaSaraf Aug 17, 2026
53c2a97
[Data] arrow-rs loss triage: honor caller-set ARROW_RS_S3_BUCKET over…
AarryaSaraf Aug 17, 2026
9958d0c
[Data] release benchmarks: poll per-task memory at 20 Hz, not the 1 H…
AarryaSaraf Aug 17, 2026
0627484
[Data] arrow-rs probe: soak/churn discriminator, tensors nbytes probe…
AarryaSaraf Aug 18, 2026
c50ae7b
[Data] arrow-rs probe: batch-sizing ablation + release-faithful tenso…
AarryaSaraf Aug 18, 2026
e64e712
[Data] arrow-rs probes: full allocator ablation arms + node wUSS time…
AarryaSaraf Aug 18, 2026
2e2bfcd
[Data] arrow-rs probe: unified benchmark suite (run_all.sh) + gated b…
AarryaSaraf Aug 18, 2026
0994d42
[Data] arrow-rs probe: aggregate positive-control cell + spill decisi…
AarryaSaraf Aug 18, 2026
9b2bdf0
[Data] document the arrow_rs_docs local-doc conventions in the Ray Da…
AarryaSaraf Aug 18, 2026
5c9dbf1
[Data] arrow-rs probe: real TPC-H suspect stage (q9 spill / q20 shuff…
AarryaSaraf Aug 18, 2026
ed6b019
[Data] arrow-rs probe: fix G3 wall gate — pa baseline was multi-threaded
AarryaSaraf Aug 18, 2026
2421007
[Data] arrow-rs probe: install grpcio — benchmark.py needs it, ray[da…
AarryaSaraf Aug 18, 2026
ad8ce08
[Data] arrow-rs probe: install grpcio before ALL stages, not just tpch
AarryaSaraf Aug 19, 2026
26a9d46
[Data] arrow-rs crate: size batches from footer-exact DECODED bytes, …
AarryaSaraf Aug 19, 2026
0152b8b
[Data] arrow-rs reader: opt-in glibc malloc-trim lever for worker ret…
AarryaSaraf Aug 19, 2026
3fbebed
[Data] arrow-rs probe: stream tpch cell output live to the per-cell log
AarryaSaraf Aug 19, 2026
702f499
[Data] arrow-rs probe: realign-cost decomposition (M52 Linux confirma…
AarryaSaraf Aug 19, 2026
6bfe036
[Data] arrow-rs: kill the per-batch extension realign cast (M52/M53)
AarryaSaraf Aug 20, 2026
25488b6
[Data] loss_triage: add pa1 (single-thread pyarrow) standalone control
AarryaSaraf Aug 20, 2026
093d335
[Data] loss_triage: add rs_retain arm (glibc page-retention env knobs)
AarryaSaraf Aug 21, 2026
df7a6bb
[Data] arrow-rs crate: mid-stream batch adaptation for dict-encoded B…
AarryaSaraf Aug 21, 2026
ce415a6
[Data] arrow-rs probe: --budget-sweep and --k-sweep arms + fatcol sha…
AarryaSaraf Aug 21, 2026
fee0cf0
[Data] arrow-rs probe: S3 transport leg for soak_probe
AarryaSaraf Aug 21, 2026
2dea707
[Data] soak_probe: parametrized rs_trim<N> glibc trim-threshold arms
AarryaSaraf Aug 22, 2026
6bc01ee
[Data] arrow-rs S3: incremental hstack — stream column groups in lock…
AarryaSaraf Aug 24, 2026
50df183
[Data] batch_ablation: create --out dir before writing ablation.json
AarryaSaraf Aug 24, 2026
a1b095e
[Data] arrow-rs: default decode budget follows DataContext.target_max…
AarryaSaraf Aug 24, 2026
68aa1e5
[Data] arrow-rs probe: handle None decode-budget default in loss_tria…
AarryaSaraf Aug 24, 2026
c941e1b
[Data] release benchmarks: per-operator metrics for tpch + output-blo…
AarryaSaraf Aug 24, 2026
c5c1b7e
[Data] release benchmarks: per-case task-placement distribution
AarryaSaraf Aug 24, 2026
69d75d2
[Data] arrow-rs probe: tiny standalone fat_col A/B benchmark (file cr…
AarryaSaraf Aug 24, 2026
aeefd0a
[Data] fat_col_bench: build the fixture in a subprocess, not the parent
AarryaSaraf Aug 24, 2026
73f36b8
[Data] fat_col_bench: expected range from M70 box run (1.7-2.7x, sess…
AarryaSaraf Aug 24, 2026
96a0f5e
[Data] arrow-rs probe: fix shellcheck SC2012 in patch_crate_parquet.s…
AarryaSaraf Aug 27, 2026
8c5341e
[Data] arrow-rs probe: single-node replication harness for the A/B #5…
AarryaSaraf Aug 28, 2026
ca85be1
[Data] arrow-rs probe: add spill-asymmetry + aggregate-control cells …
AarryaSaraf Aug 28, 2026
b2a981b
[Data] arrow-rs probe: per-cell timeout + scheduling-memory inflation
AarryaSaraf Aug 28, 2026
2012d4d
[Data] arrow-rs probe: RAY_OVERRIDE_RESOURCES beats _memory on Anysca…
AarryaSaraf Aug 29, 2026
7ef7580
[Data] arrow-rs regression run: P0-scoped tpch matrix, 3600s cell tim…
AarryaSaraf Aug 29, 2026
c5f7c91
[Data] arrow-rs probe: pin RAY_ADDRESS per cell; node-mem monitor for…
AarryaSaraf Aug 31, 2026
0f60b5c
[Data] arrow-rs 2x2 release probe: reader x topology cells for the P0…
AarryaSaraf Aug 31, 2026
694d52b
[Data] arrow-rs 2x2: give the single-node CPU analog a 512 GiB volume
AarryaSaraf Aug 31, 2026
8422685
[ci][docker] Install google-cloud-cli in base-extra (#65757)
elliot-barn Aug 28, 2026
0c1a9f2
[Data] arrow-rs probe: concurrency-cliff sweep for the M92 single-nod…
AarryaSaraf Sep 3, 2026
7c02927
[Data] cliff probe: subprocess-per-cell so the reader arm switch is real
AarryaSaraf Sep 3, 2026
09935fb
[Data] cliff probe: ray.init(address='local') so cells don't join the…
AarryaSaraf Sep 3, 2026
a2bb470
[Data] cliff probe: --sum-col so the real release datasets are consum…
AarryaSaraf Sep 3, 2026
24f2494
[Data] cliff probe: --consume iter-bundles for release-faithful full …
AarryaSaraf Sep 3, 2026
cd79d27
[Data] Cache the native S3 client per process, not per read task (M97)
AarryaSaraf Sep 3, 2026
61bafe1
[Data] arrow-rs probe: per-worker resident constant measurement (TODO…
AarryaSaraf Sep 3, 2026
b3583bf
[Data] arrow-rs probe: don't shadow threading.Thread._stop in the USS…
AarryaSaraf Sep 3, 2026
abfb25a
[Data] worker_constant_probe: discover late-forked read workers
AarryaSaraf Sep 3, 2026
38d55ee
[Data] worker_constant_probe: identify the read worker by proctitle
AarryaSaraf Sep 3, 2026
9c35e93
[Data] arrow-rs reader: end-of-stream malloc_trim lever (RAY_DATA_ARR…
AarryaSaraf Sep 3, 2026
3a6e9ea
[Data] arrow-rs release matrix: allocator arms (pa / rs / rstrim / rs…
AarryaSaraf Sep 3, 2026
81a9550
[Data] Time the arrow-rs end-of-stream trim per read task (trim_wall_s)
AarryaSaraf Sep 4, 2026
74f1c3e
[Data] arrow-rs probe: per-Read-op stats, monitor worker counts, rseo…
AarryaSaraf Sep 4, 2026
650e98f
[Data] ReadFiles: fold end-of-stream reader stats in before the last …
AarryaSaraf Sep 4, 2026
d8d6316
[Data] Time the read task's yield and time-to-first-table per task
AarryaSaraf Sep 4, 2026
914a8dc
[Data] tpch_probe: fold the query's benchmark.json into summary.json
AarryaSaraf Sep 4, 2026
471785e
[Data] Read planner: yield the held table before a later decode error…
AarryaSaraf Sep 4, 2026
b799a61
[Data] arrow-rs alloc matrix: add read_large_parquet_fixed_size (memo…
AarryaSaraf Sep 4, 2026
61ef8bf
[Data] arrow-rs alloc matrix: repeated_run=3 on the two flip-gate cells
AarryaSaraf Sep 4, 2026
9b53429
[Data] arrow-rs alloc matrix: match repeated_run keys on the '+' name…
AarryaSaraf Sep 4, 2026
ecd2282
[Data] arrow-rs probe: capture op-total block gen/ser and backpressur…
AarryaSaraf Sep 4, 2026
bcf0cd2
[Data] arrow-rs probe: plasma serialization micros (M120)
AarryaSaraf Sep 4, 2026
c88399d
[Data] arrow-rs: ship the end-of-stream malloc_trim by default (M128)
AarryaSaraf Sep 8, 2026
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
1 change: 1 addition & 0 deletions ci/lint/pyrefly-excluded-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ python/ray/data/tests/block_batching/test_iter_batches.py
python/ray/data/tests/block_batching/test_util.py
python/ray/data/tests/conftest.py
python/ray/data/tests/datasource/test_arrow.py
python/ray/data/tests/datasource/test_arrow_rs_parquet_reader.py
python/ray/data/tests/datasource/test_bigquery.py
python/ray/data/tests/datasource/test_clickhouse.py
python/ray/data/tests/datasource/test_csv.py
Expand Down
2 changes: 1 addition & 1 deletion docker/base-extra/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ wget -O - https://packages.cloud.google.com/apt/doc/apt-key.gpg \
# Add gdb since ray dashboard uses `memray attach`, which requires gdb.

APT_PKGS=(
google-cloud-sdk
google-cloud-cli
supervisor
vim
zsh
Expand Down
1 change: 1 addition & 0 deletions pyrefly.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ ignore-missing-imports = [
"pytest.*",
"pytest_lazy_fixtures.*",
"ray.core.generated.*",
"ray_data_arrow_rs.*",
"raydp.*",
"rich.*",
"snappy.*",
Expand Down
66 changes: 43 additions & 23 deletions python/ray/air/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
load("@rules_python//python:defs.bzl", "py_library", "py_test")
load("//bazel:python.bzl", "doctest")

# Shared env for the python/ray/air/tests targets. ``RAY_DATA_PARQUET_FOOTER_
# NUM_ACTORS=1`` keeps the Parquet footer-reader pool tiny: the production
# default of 32 actors times out and trips Ray's "too many worker processes"
# warning when many test targets run in parallel under CI. Mirrored by a
# setdefault in python/ray/air/tests/conftest.py for non-bazel pytest runs.
_AIR_TEST_ENV = {
"RAY_DATA_PARQUET_FOOTER_NUM_ACTORS": "1",
"RAY_TRAIN_V2_ENABLED": "1",
}

# Same, for the targets that pin Train V1 telemetry/behaviour.
_AIR_TEST_ENV_TRAIN_V1 = {
"RAY_DATA_PARQUET_FOOTER_NUM_ACTORS": "1",
"RAY_TRAIN_V2_ENABLED": "0",
}

# Same, plus legacy Keras for the Keras callback test.
_AIR_TEST_ENV_TF = {
"RAY_DATA_PARQUET_FOOTER_NUM_ACTORS": "1",
"RAY_TRAIN_V2_ENABLED": "1",
"TF_USE_LEGACY_KERAS": "1",
}

doctest(
name = "py_doctest[air]",
env = {"RAY_TRAIN_V2_ENABLED": "1"},
Expand Down Expand Up @@ -31,7 +54,7 @@ py_test(
size = "small",
srcs = ["tests/test_air_usage.py"],
# NOTE: This tests Train V1 telemetry.
env = {"RAY_TRAIN_V2_ENABLED": "0"},
env = _AIR_TEST_ENV_TRAIN_V1,
tags = [
"exclusive",
"team:ml",
Expand All @@ -44,7 +67,7 @@ py_test(
size = "large",
srcs = ["tests/test_new_dataset_config.py"],
# NOTE: Relevant tests moved to train/v2/tests/test_data_integration.py
env = {"RAY_TRAIN_V2_ENABLED": "0"},
env = _AIR_TEST_ENV_TRAIN_V1,
tags = [
"exclusive",
"team:ml",
Expand All @@ -60,7 +83,7 @@ py_test(
"tests/test_experiment_restore.py",
],
# NOTE: This tests Tune and Train V1 restoration.
env = {"RAY_TRAIN_V2_ENABLED": "0"},
env = _AIR_TEST_ENV_TRAIN_V1,
tags = [
"exclusive",
"team:ml",
Expand All @@ -73,7 +96,7 @@ py_test(
size = "medium",
srcs = ["tests/test_errors.py"],
# NOTE: This tests Tune (Train V1) error propagation logic.
env = {"RAY_TRAIN_V2_ENABLED": "0"},
env = _AIR_TEST_ENV_TRAIN_V1,
tags = [
"exclusive",
"team:ml",
Expand All @@ -86,7 +109,7 @@ py_test(
size = "small",
srcs = ["tests/test_integration_comet.py"],
# NOTE: This tests the Tune Comet callback.
env = {"RAY_TRAIN_V2_ENABLED": "0"},
env = _AIR_TEST_ENV_TRAIN_V1,
tags = [
"exclusive",
"team:ml",
Expand All @@ -99,7 +122,7 @@ py_test(
size = "small",
srcs = ["tests/test_integration_wandb.py"],
# NOTE: This tests the Tune wandb callback.
env = {"RAY_TRAIN_V2_ENABLED": "0"},
env = _AIR_TEST_ENV_TRAIN_V1,
tags = [
"exclusive",
"team:ml",
Expand All @@ -112,7 +135,7 @@ py_test(
size = "medium",
srcs = ["tests/test_integration_mlflow.py"],
# NOTE: This tests the Tune mlflow callback.
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -124,10 +147,7 @@ py_test(
name = "test_keras_callback",
size = "medium",
srcs = ["tests/test_keras_callback.py"],
env = {
"RAY_TRAIN_V2_ENABLED": "1",
"TF_USE_LEGACY_KERAS": "1",
},
env = _AIR_TEST_ENV_TF,
tags = [
"exclusive",
"team:ml",
Expand All @@ -139,7 +159,7 @@ py_test(
name = "test_remote_storage_hdfs",
size = "small",
srcs = ["tests/test_remote_storage_hdfs.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"hdfs",
Expand All @@ -152,7 +172,7 @@ py_test(
name = "test_tracebacks",
size = "small",
srcs = ["tests/test_tracebacks.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -164,7 +184,7 @@ py_test(
name = "test_utils",
size = "small",
srcs = ["tests/test_utils.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -183,7 +203,7 @@ py_test(
name = "test_barrier",
size = "small",
srcs = ["tests/execution/test_barrier.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -195,7 +215,7 @@ py_test(
name = "test_e2e_train_flow",
size = "medium",
srcs = ["tests/execution/test_e2e_train_flow.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -207,7 +227,7 @@ py_test(
name = "test_e2e_tune_flow",
size = "medium",
srcs = ["tests/execution/test_e2e_tune_flow.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -219,7 +239,7 @@ py_test(
name = "test_event_manager",
size = "medium",
srcs = ["tests/execution/test_event_manager.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -231,7 +251,7 @@ py_test(
name = "test_resource_manager_fixed",
size = "small",
srcs = ["tests/execution/test_resource_manager_fixed.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -243,7 +263,7 @@ py_test(
name = "test_resource_manager_placement_group",
size = "medium",
srcs = ["tests/execution/test_resource_manager_placement_group.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -255,7 +275,7 @@ py_test(
name = "test_resource_request",
size = "small",
srcs = ["tests/execution/test_resource_request.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -267,7 +287,7 @@ py_test(
name = "test_tracked_actor",
size = "small",
srcs = ["tests/execution/test_tracked_actor.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand All @@ -279,7 +299,7 @@ py_test(
name = "test_tracked_actor_task",
size = "small",
srcs = ["tests/execution/test_tracked_actor_task.py"],
env = {"RAY_TRAIN_V2_ENABLED": "1"},
env = _AIR_TEST_ENV,
tags = [
"exclusive",
"team:ml",
Expand Down
7 changes: 7 additions & 0 deletions python/ray/air/tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
# Trigger pytest hook to automatically zip test cluster logs to archive dir on failure
import copy
import os

import pytest

import ray
from ray.tests.conftest import pytest_runtest_makereport # noqa

# Keep the Parquet footer-reader pool tiny for these tests. The production
# default of 32 actors times out under CI parallelism; tests that need a larger
# pool can override with monkeypatch.setenv. Mirrored in
# python/ray/air/BUILD.bazel for bazel test targets.
os.environ.setdefault("RAY_DATA_PARQUET_FOOTER_NUM_ACTORS", "1")


@pytest.fixture
def restore_data_context(request):
Expand Down
36 changes: 36 additions & 0 deletions python/ray/data/.claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,39 @@

## Gotchas
<!-- Non-obvious behaviors, common mistakes, things that break silently -->

## Project docs (local-only, gitignored)

Long-running investigations keep their notes in a directory under `python/ray/data/`
excluded via `.git/info/exclude` — currently `arrow_rs_docs/` (the arrow-rs Parquet
reader migration, draft PR #65117). **Start at that directory's `README.md`**: it holds
the read order, the doc index with a staleness column, the ratio conventions, and the
rules below. Do not read the other docs front to back; arrive at them from a link.

## Doc rules for those directories

Each rule exists because its absence already cost something real.

1. **No markdown file over 1000 lines.** The moment one crosses it, move a whole section
out into an existing doc if one owns the topic, else a new file leaving a stub that
says where it went and keeping section numbers unchanged so old cross-references still
resolve. Do it in the same edit that crosses the line. Two docs reached 1910 lines and
became unreadable and un-editable at once; splitting after the fact cost far more.
2. **A measured number is a row in `findings.md`** — one tabular registry with permanent
IDs, a status column (LIVE / RE-MEASURE / DEAD / RETRACTED / OPEN) and a caveat column,
so a new confound is recorded by editing one row. Never renumber, never delete a row: a
wrong finding becomes RETRACTED with the reason, because the wrong version is what
older docs still say. The prose that qualifies a number goes in the topic doc, never in
the plan — a plan that quotes numbers goes stale silently.
3. **Closing a work item splits it three ways, in the same edit:** numbers → `findings.md`,
prose → the topic doc, and the *decision* (one row: disposition, why, and for parked
items what would revive it) → `todo_archive.md` under its original number, which is
never reused. It leaves `TODO.md` entirely, which holds open work only. **Before
archiving, check the closed item for open work hiding inside it** and promote that —
this has now bitten four times, including a P0 that had already shipped and a stale
docstring nobody could see.
4. **Verify against the tree before writing a doc claim.** Env vars, defaults, file paths
and which branch a script lives on all drift; each audit of these docs has found
documented knobs that do not exist and shipped defaults documented three values stale.
5. After every message, check if there is anything to be updated/added/removed in any doc
and make the apt change.
6 changes: 3 additions & 3 deletions python/ray/data/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
load("@rules_python//python:defs.bzl", "py_library", "py_test")
load("//bazel:python.bzl", "doctest", "py_test_module_list")
load("@rules_python//python:defs.bzl", "py_library")
load(":test.bzl", "doctest", "py_test", "py_test_module_list")

# Export pytest plugin so it can be used in the documentation tests.
exports_files(
Expand Down Expand Up @@ -1030,7 +1030,7 @@ py_test(

py_test(
name = "test_predicate_pushdown",
size = "small",
size = "medium",
srcs = ["tests/test_predicate_pushdown.py"],
tags = [
"exclusive",
Expand Down
Loading
Loading