Add migration guide
This commit is contained in:
parent
2d404435c9
commit
229a89714b
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Required components refactor
|
||||
pull_requests: [20110]
|
||||
---
|
||||
|
||||
The required components feature has been reworked to be more consistent around the priority of the required components and fix some soundness issues. In particular:
|
||||
|
||||
- the priority of required components will now always follow a priority given by the depth-first/preorder traversal of the dependency tree. This was mostly the case before with a couple of exceptions that we are now fixing:
|
||||
- when deriving the `Component` trait, sometimes required components at depth 1 had priority over components at depth 2 even if they came after in the depth-first ordering;
|
||||
- registering runtime required components followed a breadth-first ordering and used the wrong inheritance depth for derived required components.
|
||||
- uses of the inheritance depth were removed from the `RequiredComponent` struct and from the methods for registering runtime required components, as it's not unused for the depth-first ordering;
|
||||
- `Component::register_required_components`, `RequiredComponents::register` and `RequiredComponents::register_by_id` are now `unsafe`;
|
||||
- `RequiredComponentConstructor`'s only field is now private for safety reasons.
|
Loading…
Reference in New Issue
Block a user