This page tracks breaking changes between Miles releases and how to update your code or launch scripts.Documentation Index
Fetch the complete documentation index at: https://www.radixark.com/llms.txt
Use this file to discover all available pages before exploring further.
Train loop: sync → async
What changed
train.py, train_async.py, and RayTrainGroup now use Python async/await
instead of ray.get()-style sync calls.
Why
Async code is more expressive when you need to overlap work. A concrete example: in fault tolerance we want to capture Ray actor errors and retryactor_model.train
while still letting critic_model.train proceed. That’s hard to write with synchronous
ray.get.
How to migrate mechanically
1. Make train async
2. Drop async_ prefixes; ray.get(x) → await x
offload, onload, clear_memory, connect,
set_rollout_manager.
3. Dispatch handles → eager tasks
4. create_training_models is now async
Other recent breakages
v0.0.8 → v0.0.9
--rollout-router-iprenamed to--sglang-router-ip.--rm-pathrenamed to--custom-rm-path(legacy alias warns then exits in v0.1.0).--num-rolloutis now required (previously defaulted to 1000).
v0.0.7 → v0.0.8
- Default
--save-intervalchanged from10→100. Set explicitly if you relied on the old cadence. --apply-chat-templateis no longer implicit whenpromptis a list; pass it explicitly.
Versioning policy
- Patch (0.1.x): bug fixes only, no flag changes.
- Minor (0.x.0): new features; old flags marked deprecated, alias kept for one minor.
- Major (x.0.0): breaking changes; deprecated aliases removed.
Compatibility matrix
| Miles | SGLang | Megatron-LM | Notes |
|---|---|---|---|
| 0.1.0 | 0.4.4+ | mcore-r0.10 | Current stable |
| 0.0.9 | 0.4.3 | mcore-r0.9 | |
| 0.0.8 | 0.4.2 | mcore-r0.8 | Last sync-loop release |

