bevyengine / bevyengine/bevy

feature-gated `System::refresh_hotpatch` with no default impl is inconvenient for crate authors

Open Beginner friendly
#23,653 1 comment 0 reactions 0 assignees View on GitHub
A-Dev-Tools A-ECS C-Bug D-Straightforward S-Ready-For-Implementation X-Contentious
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

When the user uses the `hotpatching` feature, the `System` trait has one additional method, [`refresh_hotpatch`](https://dev-docs.bevy.org/bevy/ecs/prelude/trait.System.html#tymethod.refresh_hotpatch).

However, this method has no default impl. This means that other 3rd party crates the user relies on need to offer that feature too if these manually implement `System`, even if hotpatching makes no sense for them. If they don't do this, the user's project wont compile.

A solution could be to add an empty body as the default impl.

Contributor guide

Open the contributing guide

Research direction

Start at the System trait definition and inspect the feature-gated refresh_hotpatch method. Check how manually implemented System traits are affected when hotpatching is enabled; done means implementations that do not need hotpatching can compile without defining this method, with the relevant checks or compilation paths passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.