Skip to content

Migration guide missing: bevy_ui feature no longer includes rendering in 0.17 #2347

@kfc35

Description

@kfc35

Originally by @bigmark222 in bevyengine/bevy#22524

Summary

The 0.16 to 0.17 migration guide does not mention that the bevy_ui feature no longer implies rendering functionality. Users who set default-features = false and explicitly list features will have UI that spawns without errors but renders nothing.

The Problem

When migrating to Bevy 0.17 with custom features like:

bevy = { version = "0.17", default-features = false, features = ["bevy_ui", "bevy_text", ...] }

UI entities spawn correctly (logs confirm setup runs), but nothing appears on screen. There are no errors or warnings - the UI is simply invisible.

The Solution

Add bevy_ui_render to the feature list:

bevy = { version = "0.17", default-features = false, features = ["bevy_ui", "bevy_ui_render", "bevy_text", ...] }

Request

Please add this to the 0.16 to 0.17 migration guide under a section like "UI Rendering Feature Separation":

If you use default-features = false with explicit feature flags, note that bevy_ui no longer implies rendering. You must also enable bevy_ui_render for UI elements to be visible.

Related

This was previously reported in #21093 but the migration guide was never updated. That issue is the only place this information exists, making it very difficult to discover.

Impact

This is a silent breaking change - code compiles, runs without errors, but produces incorrect output. These are the hardest bugs to diagnose. We spent several hours debugging this before finding #21093 via web search.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-Migration GuidesC-CorrectionA typo, problem or factual issue in what we've writtenS-Needs-DesignNeeds some thought about how this could be solved

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions