# 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]_