Introduce an `app::run_system_set()` function
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## What problem does this solve or what need does it fill?
For testing or benchmarking purposes, I would like to run a bunch of systems of my App that are all in the same SystemSet.
Bevy currently provides a function `app.run_schedule(schedule)` and `app.run_system()` (for registered one-shot systems) but there is no helper to run an entire system set.
## What solution would you like?
Have an api `app.run_system_set(schedule_name, system_set_name)` which runs all the systems inside a SystemSet once.
## What alternative(s) have you considered?
I could try to put all those systems in a separate Schedule, but:
- from what I understand, two schedules cannot run in parallel, and I would like those systems to run in parallel with other `PostUpdate` systems
- it would be a big refactoring of my app to just gain some testing capabilities
Contributor guide
Research direction
Start by reading the existing app.run_schedule(schedule) and app.run_system() entry points and the issue's requested app.run_system_set(schedule_name, system_set_name) API. Trace how schedules and SystemSets are executed, then define completion as running every system in the named set once while preserving the requested scheduling behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100