Bevy Migration Notes
This page tracks upgrade-sensitive Bevy changes that are likely to matter to ZoOL’s active projects.
Current watchlist
Feature configuration
bevy_transformnow exposes an explicitmulti_threadedfeature and stops treatingstdas a proxy for parallel transform propagation. Projects with hand-maintained Bevy feature sets should verify that the intended threading behavior still matches runtime targets such as desktop, wasm, orno_stdbuilds.
UI renames
- Remaining
Core*prefixes were removed from some UI widget drag-state components, with migration-guide coverage in the upstream PR. Existing code should expect simple type renames rather than behavioral changes.
New APIs that may replace local workarounds
EntityCommands::insert_if_neqmay allow cleanup of custom “only write when changed” helpers in ECS-heavy codebases.
UI focus and text input
- Focus event semantics changed so repeated clicks on an already focused text field should no longer emit redundant
FocusLost/FocusGainedevents. Audit UI code that used those duplicates as an implicit refresh trigger, and simplify code that manually deduplicated them. - Text input defaults and examples were visually refined ahead of 0.19; this is unlikely to be a breaking API change, but screenshot-based UI tests may need updated baselines.
Rendering behavior
CompositingSpace::Srgbnow convertsClearColorto sRGB; any project that tuned colors around the old behavior should expect visual output changes after upgrading.- WebGL2 motion blur fixes landed, but depth-of-field fixes were excluded from that PR; keep browser effect testing granular rather than assuming all post-processing regressions are solved.
Open bugs to track before upgrade
AssetServer::load_folderwith dev file watching has an open deadlock report on 0.18.1 and main; treat it as a migration risk for asset-heavy projects that rely on folder handles and hot reload. Update 2026-04-27: FIXED in #23980 (merged to main).- Composed run conditions involving
not()andand()have an open bug report; add regression tests around resource-added/resource-changed transitions before upgrading gameplay state logic that uses this pattern.
2026-04-26 additions
IME support (breaking for custom text input)
- IME support for text input (#23841) was merged as an MVP. If a project has custom text input handling that bypasses Bevy’s text input widget, it may need to be updated to cooperate with IME composition events. Projects targeting CJK users will benefit immediately.
New widgets: number input
- A numeric input widget (#23842) was merged for editing Vec3 and similar types. This is new API surface, not a rename; existing code should be unaffected unless it had a local numeric input implementation that conflicts with the new built-in widget.
Shadow map behavior change
- Point and spot light shadow maps now render only once regardless of camera count (#23713). Multi-camera setups should see improved performance. This is unlikely to break anything but should be verified if a project relied on per-camera shadow map differences.
sRGB environment map
EnvironmentMapLight::solid_colornow uses linear space with default intensity 1.0 (#22588). Projects that tuned environment map colors around the old sRGB behavior should expect visual changes.
ECS event reflection
register_event_keyis now exposed through reflection (#23973). This is additive API and should not break existing code, but projects using reflection-based ECS patterns should be aware of the new capability.
0.19 release readiness
- The 0.19 milestone is at 95% completion with 15 open issues remaining. Key unresolved issues: mesh specialization performance regression (#23114), Vulkan Bistro scene flashing (#23183), ECS query regression (#23464), and text input breaking the first_person_view_model example (#23470).
2026-04-27 additions
FocusGained breaking change
FocusGainedevent now carries aFocusCauseenum withPressed(primary mouse click) andNavigated(tab, auto-focus, other) variants (#23993). Breaking: code that destructures or pattern-matchesFocusGainedwill need updating. Single-line text inputs now select-all on navigation, matching HTML behavior.
load_folder deadlock resolved
- The previously tracked
load_folder+ file watcher deadlock has been fixed in #23980. The fix reordersload_folder_internalto run after event handling and movesstarted_load_taskstracking. This removes a key migration risk for asset-heavy projects using hot folder reload.
Web asset cache single-threaded support
web_asset_cachenow compiles withoutmulti_threadedfeature (#23994). Projects targeting wasm or single-threaded builds can use web asset caching.
0.19 milestone progress
- Milestone open issues dropped from ~15 to ~11. Remaining blockers are mostly platform-specific rendering regressions (Vulkan, DX12, WebGL2, Safari WebGPU).
2026-04-28 additions
Mesh view bind group layout on demand (migration guide included)
- PR #23982 creates mesh view bind group layouts on demand instead of pre-allocating exponential combinations. This reduces sampled textures to 17 and fixes WebGL2 3D scene rendering (#23627). A migration guide is included in the PR. Projects with custom render pipelines that reference mesh view bind group layouts should review the migration guide when upgrading.
PCSS / light despawning SyncComponent change
- PR #23790 adds shadow maps and extracted lights to
SyncComponentfor light entities. Theextracted_light_removedobserver was removed. Projects that relied on custom light extraction observers or manual render-world light sync may need to update.
GhostNode behavior change
- PR #24001 fixes
GhostNodetree synchronization. If a project usesGhostNodein UI layouts and has workarounds for layout not updating after add/remove, those workarounds may no longer be needed.
0.19 milestone progress
- Milestone is at 93% (294/315 closed, 21 open issues). New issues added: spotlight/rect_light rendering incorrect (#23997), shadows disappear in visibility range (#23991). Most remaining issues are platform-specific rendering regressions.
Related pages
- bevy — hub page for engine-level updates.
- bevy-game-development — broader development practices and ecosystem notes.
- bevy-projects — project-specific action items.
- bevy-migration-2026-05 — May 2026 migration notes.