bevyengine / bevyengine/bevy

`reflect_auto_register_static` doesn't register types in crates that aren't part of the workspace

Open
#21,444 0 comments 1 reaction 0 assignees View on GitHub
A-Reflection C-Bug D-Complex S-Needs-Design X-Uncontroversial
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## Bevy version and features

- bevy 0.17.2
- `reflect_auto_register_static` feature

## What you did

Using `reflect_auto_register_static` feature to automatically register types where `reflect_auto_register` doesn't work.

## What went wrong

Only types from the current workspace get registered, anything in dependencies (`bevy_reflect`, `bevy_ecs`, `bevy_transform`, etc.) doesn't.

## Additional information
Found by @occuros [on discord](https://discord.com/channels/691052431525675048/1374187654425481266/1424918071251832953)

Repro: https://github.com/occuros/bevy_0_17_type_registry

---

This is because `reflect_auto_register_static` doesn't take into account where it's invoked, so the `target` where it writes the registration functions to is different from the one where the `load_type_registrations!` macro looks for them when compiled for crates outside the current workspace.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.