Skip to content

Remove experimental designation from bevy_ui_widgets feature flag#22934

Merged
alice-i-cecile merged 11 commits intobevyengine:mainfrom
alice-i-cecile:experimental-no-more
Feb 18, 2026
Merged

Remove experimental designation from bevy_ui_widgets feature flag#22934
alice-i-cecile merged 11 commits intobevyengine:mainfrom
alice-i-cecile:experimental-no-more

Conversation

@alice-i-cecile
Copy link
Copy Markdown
Member

@alice-i-cecile alice-i-cecile commented Feb 13, 2026

Objective

bevy_ui_widgets is still incomplete and unstable, but the utility of the experimental` designation is questionable:

  1. Running examples with required non-default features suck. This is frustrating for UI examples, and hampers adoption in our other examples even when real UI-based controls would be more elegant.
  2. These widgets have proven useful to end users in practice, even in 0.19.
  3. These widgets have seen a number of small bug fixes and improvements since their initial release.
  4. It's not clear that this label is effective for slowing adoption, or if slowing adoption is currently desirable. Users don't have a ton of other great options: writing their own widgets will waste work and still need to be rewritten with BSN.
  5. Bevy as a whole is still quite experimental. Unlike e.g. ghost nodes, there's no indication that we are considering wholly reverting these features.

Solution

Amended based on review feedback:

The experimental_ui_widgets feature have been renamed to ui_widgets.

The ui_widgets feature has been added to the ui feature collection (and thus bevy's default features) for ease of use.

Previous solution, from the original migration guide:

The experimental_ui_widgets and experimental_bevy_feathers features have been renamed to ui_widgets and bevy_feathers respectively.

The ui_widgets feature has been added to the ui feature collection (and thus bevy's default features) for ease of use.
The bevy_feathers feature remains off by default: it is primarily intended for use in dev tools, and should typically not be included in shipped end-user applications. As a result, it needs to be easy to enable and disable conditionally. This would be very challenging if it were a default feature or in a popular feature collection.

These crates remain immature, and subject to heavy breaking changes, even relative to Bevy's pre-1.0 standards.
However, they are useful enough to see wider adoption, and this changes substantially improves the user experience when setting up new projects and running Bevy examples.

@alice-i-cecile alice-i-cecile added this to the 0.19 milestone Feb 13, 2026
@alice-i-cecile alice-i-cecile added A-UI Graphical user interfaces, styles, layouts, and widgets X-Needs-SME This type of work requires an SME to approve it. D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Feb 13, 2026
@github-project-automation github-project-automation Bot moved this to Needs SME Triage in UI Feb 13, 2026
@github-actions
Copy link
Copy Markdown
Contributor

You added a new example but didn't add metadata for it. Please update the root Cargo.toml file.

@viridia
Copy link
Copy Markdown
Contributor

viridia commented Feb 13, 2026

The rationale for making feathers experimental is stronger than the one for making widgets experimental.

We know feathers is going to change because of bsn. There's no corresponding argument for bevy_ui_widgets.

@cart
Copy link
Copy Markdown
Member

cart commented Feb 13, 2026

Agreed. I'm much more on board for removing the experimental designation for bevy_ui_widgets. I think feathers needs experimental solely for marketing reasons: the current user-facing interface is a bit too quirky, and it will be a large breaking change when BSN lands.

@alice-i-cecile alice-i-cecile changed the title Remove experimental designation from bevy_ui_widgets and bevy_feathers feature flags Remove experimental designation from bevy_ui_widgets feature flag Feb 17, 2026
@github-actions
Copy link
Copy Markdown
Contributor

You added a new example but didn't add metadata for it. Please update the root Cargo.toml file.

@alice-i-cecile alice-i-cecile added X-Blessed Has a large architectural impact or tradeoffs, but the design has been endorsed by decision makers and removed X-Needs-SME This type of work requires an SME to approve it. labels Feb 17, 2026
Comment thread release-content/migration-guides/non_experimental_ui.md Outdated
Comment thread release-content/migration-guides/non_experimental_ui.md Outdated
Comment thread release-content/migration-guides/non_experimental_ui.md Outdated
@alice-i-cecile alice-i-cecile requested review from PPakalns and kfc35 and removed request for PPakalns February 18, 2026 17:21
Comment thread Cargo.toml Outdated
alice-i-cecile and others added 2 commits February 18, 2026 15:42
Co-authored-by: Kevin Chen <chen.kevin.f@gmail.com>
@alice-i-cecile alice-i-cecile added S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it and removed S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Feb 18, 2026
@alice-i-cecile alice-i-cecile added this pull request to the merge queue Feb 18, 2026
Merged via the queue into bevyengine:main with commit 06a444a Feb 18, 2026
44 checks passed
@github-project-automation github-project-automation Bot moved this from Needs SME Triage to Done in UI Feb 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-UI Graphical user interfaces, styles, layouts, and widgets D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it X-Blessed Has a large architectural impact or tradeoffs, but the design has been endorsed by decision makers

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants