# Ray 2.38.0 — Ray-2.38.0
- Product: Ray (https://whatsnew.fyi/product/ray)
- Vendor: Anyscale
- Date: 2024-10-23
- Version: 2.38.0
- Original notes: https://github.com/ray-project/ray/releases/tag/ray-2.38.0
- Permalink: https://whatsnew.fyi/product/ray/releases/2.38.0
What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog.
Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'.
---
- **added** — Add Dataset.rename_columns
- **added** — Add basic structured logging to Ray Data
- **added** — Add partitioning parameter to read_parquet
- **added** — Enable cloud checkpointing in RLlib
- **added** — CompiledGraphs: support multi readers in multi node when DAG is created from an actor
- **changed** — Add SERVICE_UNAVAILABLE to list of retried transient errors
- **changed** — Re-phrase the streaming executor current usage string
- **changed** — Remove ray.kill in ActorPoolMapOperator
- **changed** — Simplify and consolidate progress bar outputs
- **changed** — Allow specifying both num_cpus and num_gpus for map APIs
- **changed** — Allow specifying insertion index when registering custom plan optimization Rules
- **changed** — PPO on new API stack now shuffles batches properly before each epoch
- **changed** — Switch on new API stack by default for SAC and DQN
- **changed** — Remove TensorFlow support on new API stack for PPO/IMPALA/APPO
- **changed** — Discontinue support for hybrid API stack
- **changed** — Store each GCS table in its own Redis Hash
- **changed** — Decouple create worker vs pop worker request
- **fixed** — Fix bug where Ray Data incorrectly emits progress bar warning
- **fixed** — Yield remaining results from async map_batches
- **fixed** — Fix event loop mismatch with async map
#### Ray Libraries
##### Ray Data
🎉 New Features:
- Add `Dataset.rename_columns` (#47906)
- Basic structured logging (#47210)
💫 Enhancements:
- Add `partitioning` parameter to `read_parquet` (#47553)
- Add `SERVICE_UNAVAILABLE` to list of retried transient errors (#47673)
- Re-phrase the streaming executor current usage string (#47515)
- Remove ray.kill in ActorPoolMapOperator (#47752)
- Simplify and consolidate progress bar outputs (#47692)
- Refactor `OpRuntimeMetrics` to support properties (#47800)
- Refactor `plan_write_op` and `Datasink`s (#47942)
- Link `PhysicalOperator` to its `LogicalOperator` (#47986)
- Allow specifying both `num_cpus` and `num_gpus` for map APIs (#47995)
- Allow specifying insertion index when registering custom plan optimization `Rule`s (#48039)
- Adding in better framework for substituting logging handlers (#48056)
🔨 Fixes:
- Fix bug where Ray Data incorrectly emits progress bar warning (#47680)
- Yield remaining results from async `map_batches` (#47696)
- Fix event loop mismatch with async map (#47907)
- Make sure `num_gpus` provide to Ray Data is appropriately passed to `ray.remote` call (#47768)
- Fix unequal partitions when grouping by multiple keys (#47924)
- Fix reading multiple parquet files with ragged ndarrays (#47961)
- Removing unneeded test case (#48031)
- Adding in better json checking in test logging (#48036)
- Fix bug with inserting custom optimization rule at index 0 (#48051)
- Fix logging output from `write_xxx` APIs (#48096)
📖 Documentation:
- Add docs section for Ray Data progress bars (#47804)
- Add reference to parquet predicate pushdown (#47881)
- Add tip about how to understand map_batches format (#47394)
##### Ray Train
🏗 Architecture refactoring:
- Remove deprecated mosaic and sklearn trainer code (#47901)
##### Ray Tune
🔨 Fixes:
- Fix WandbLoggerCallback to reuse actors upon restore (#47985)
##### Ray Serve
🔨 Fixes:
- Stop scheduling task early when requests have been canceled (#47847)
##### RLlib
🎉 New Features:
- Enable cloud checkpointing. (#47682)
💫 Enhancements:
- PPO on new API stack now shuffles batches properly before each epoch. (#47458)
- Other enhancements: #47705, #47501, #47731, #47451, #47830, #47970, #47157
🔨 Fixes:
- Fix spot node preemption problem (RLlib now run stably with EnvRunner workers on spot nodes) (#47940)
- Fix action masking example. (#47817)
- Various other fixes: #47973, #46721, #47914, #47880, #47304, #47686
🏗 Architecture refactoring:
- Switch on new API stack by default for SAC and DQN. (#47217)
- Remove Tf support on new API stack for PPO/IMPALA/APPO (only DreamerV3 on new API stack remains with tf now). (#47892)
- Discontinue support for "hybrid" API stack (using RLModule + Learner, but still on RolloutWorker and Policy) (#46085)
- RLModule (new API stack) refinements: #47884, #47885, #47889, #47908, #47915, #47965, #47775
📖 Documentation:
- Add new API stack migration guide. (#47779)
- New API stack example script: BC pre training, then PPO finetuning using same RLModule class. (#47838)
- New API stack: Autoregressive actions example. (#47829)
- Remove old API stack connector docs entirely. (#47778)
#### Ray Core and Ray Clusters
##### Ray Core
🎉 New Features:
- CompiledGraphs: support multi readers in multi node when DAG is created from an actor (#47601)
💫 Enhancements:
- Add a flag to raise exception for out of band serialization of `ObjectRef` (#47544)
- Store each GCS table in its own Redis Hash (#46861)
- Decouple create worker vs pop worker request. (#47694)
- Add metrics for GCS jobs (#47793)
🔨 Fixes:
- Fix broken dashboard cluster page when there are dead nodes (#47701)
- Fix the `ray_tasks{State="PENDING_ARGS_FETCH"}` metric counting (#47770)
- Separ
_[Truncated at 4000 characters — full notes: https://github.com/ray-project/ray/releases/tag/ray-2.38.0]_