Bevy Migration Notes — July 2026

Upgrade-sensitive Bevy changes and action items for July 2026. Sister page to bevy-game-dev-2026-07.

Continues from bevy-migration-2026-06.

2026-07-01 migration watchlist

2026-07-02 migration watchlist

2026-07-03 migration watchlist

2026-07-04 migration watchlist

2026-07-05 migration watchlist

  • No migration-sensitive PRs merged today. Both merged PRs are D-Trivial with no API changes.
  • Carried forward checklist: → Audit SortedRenderPhase usage — carry forward. → Check BSN caching syntax — carry forward. → 0.19.1 milestone: 21/40 closed (52%), 19 open. Scope +1 from Jul 4 (39 → 40 total). Closed count unchanged.^[https://github.com/bevyengine/bevy/milestones] → 0.20 milestone: 25/60 closed/open (~42%). Unchanged.^[https://github.com/bevyengine/bevy/milestones]

2026-07-07 migration watchlist

  • No migration-sensitive PRs merged today. All 12 new PRs are D-Straightforward or D-Trivial with no API changes.
  • Carried forward checklist: → Audit SortedRenderPhase usage — carry forward. → Check BSN caching syntax — carry forward. → 0.19.1 milestone: 29/48 closed (60%), 19 open. Significant progress since 07-05 (21/40 → 29/48). 8 new items closed, 8 new items added to scope.^[https://github.com/bevyengine/bevy/milestones] → 0.20 milestone: 25/61 closed/open (~41%). Scope +1, closed unchanged.^[https://github.com/bevyengine/bevy/milestones]

2026-07-08–23 migration watchlist

Gap update — 16 days / 150 PRs. 3 migration-sensitive PRs landed for 0.20. 0.19.1 is breaking-change-free (all bugfixes). Key new migration items for 0.20: render world window data ECS migration, TypeId map split, and focus cause automation.

  • #25005 (Jul 22, 0.20) — Use ECS for render world window data (IceSentry, M-Migration-Guide). BREAKING. Direct window data access from render systems is replaced with ECS resource/component access. Code using window: &Window in render systems or directly accessing window state from render world must migrate to the ECS-centric pattern.
  • #25053 (Jul 21, 0.20) — Split ordered and unordered TypeId maps (0xEgao, M-Migration-Guide). TypeId-indexed maps (TypeIdMap, etc.) are now split into ordered and unordered variants. Code relying on the previous single-map type may need to adjust type annotations.
  • #25059 (Jul 20, 0.20) — Add automatic input focus cause (0xEgao, M-Migration-Guide). Focus events now automatically include a FocusCause. Code pattern-matching FocusGained/FocusLost events may need to handle the new field.

Updated Migration Checklist (0.20)

Carry-forward items from previous months plus new additions:

  • Audit SortedRenderPhase usage — may be affected by 0.20 rendering refactors
  • Check BSN caching syntax — bsn! macro syntax continued to evolve in 0.19.1/0.20
  • Migrate render world window data access — use ECS resource/component pattern instead of direct access (#25005, 0.20)
  • Update TypeId map usage — adapt to ordered/unordered split if using custom maps (#25053, 0.20)
  • Review focus event handlers — handle new FocusCause field in FocusGained/FocusLost events (#25059, 0.20)

Milestone Status (2026-07-23)

2026-07-24 migration watchlist

  • No migration-sensitive PRs merged today. All 3 merged PRs are Feathers UI example migrations (Phase 4), no functional or API changes.
  • Carried forward checklist: 5 open items from previous sections remain unchanged.

Milestone Status (2026-07-24)

2026-07-25 migration watchlist

  • No migration-sensitive PRs merged today. All 3 PRs (Gizmo bug fix #25106, Solari retained extract #25082, Entity::PLACEHOLDER cleanup #25119) have no API changes or migration impact.
  • Carried forward checklist: 5 open items from previous sections remain unchanged.

Milestone Status (2026-07-25)