Migration Guide
This guide helps you migrate between Bevy versions when using mevy. The key principle: mevy handles API differences automatically. You only need to change the version feature in Cargo.toml.
Bevy 0.18
Update your Cargo.toml:
mevy = { version = "0.3", features = ["0.18"] }
All entity!{} features work with Bevy 0.18.
API differences mevy handles automatically (for mevy_ui and mevy_core):
border_radiusnow writes toNode::border_radiusinstead ofBorderRadiusline_heightnow uses a separateLineHeightcomponent instead ofTextFont::line_height- Observer entity access uses
trigger.event_target()(nottrigger.target()ortrigger.entity())
Bevy 0.17
Update your Cargo.toml:
mevy = { version = "0.3", features = ["0.17"] }
No code changes needed. Key changes mevy handles automatically:
- Observer triggers changed from
Trigger<T>toOn<T> - Entity access changed from
trigger.target()(0.16) totrigger.event_target()(0.17+)
Bevy 0.16
Update your Cargo.toml:
mevy = { version = "0.3", features = ["0.16"] }
No code changes needed. Key changes mevy handles automatically:
BoxShadowchanged from a direct struct toVec<ShadowStyle>- Child relationships use
ChildOfinstead ofset_parent() - Observer entity access uses
trigger.target()(nottrigger.entity()ortrigger.event_target())
Bevy 0.15
Update your Cargo.toml:
mevy = { version = "0.3", features = ["0.15"] }
No code changes needed. Key differences in Bevy 0.15:
ChildBuilderuses.parent_entity()and.spawn()instead of.target_entity()and.commands_mut()BorderColoris a singleSrgbavalue, not per-edge- Observer entity access uses
trigger.entity()(nottrigger.target()ortrigger.event_target())
Version Support Matrix
| Feature | mevy_ui | mevy_core | mevy_ecs |
|---|---|---|---|
0.15 | ✅ | ✅ | ✅ |
0.16 | ✅ | ✅ | ✅ |
0.16-rc | ✅ | ✅ | ✅ |
0.17 | ✅ | ✅ | ✅ |
0.18 | ✅ | ✅ | ✅ |
Tips
- Always pin your Bevy version — never omit the version feature.
- Test with your target Bevy version — macro expansions differ between versions.
- Check the changelog for breaking changes between mevy versions.