bevyengine / bevyengine/bevy

Competing naming conventions for types

Open
#14,274 11 comments 1 reaction 0 assignees View on GitHub
A-Cross-Cutting C-Code-Quality M-Migration-Guide
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

Some traits have competing naming conventions for types within Bevy:

| Trait | Suffixes used | Suggestion |
|-|-|-|
| `SystemSet` | `System`, `Set`, `Systems`, no-suffix | Not obvious which to choose, probably `Systems` |
| `Primitive3d` | `3d`, `3`, `3A`, no-suffix | Probably fine as-is |
| `Primitive2d` | `2d`, `2`, no-suffix | Probably fine as-is |
| `Event` | `Event`, no-suffix | Probably fine as-is |
| `ScheduleLabel` | `Schedule`, no-suffix | Just rename `ExtractSchedule` |
| `RenderLabel` | `Label`, no-suffix | Just rename `CameraDriverLabel` |
| `SystemParam` | `Param`, no-suffix | Just rename `UiLayoutSystemRemovedComponentParam` |
| `PluginGroup` | `Plugins` | :white_check_mark: (not counting `PluginGroupBuilder`) |
| `Plugin` | `Plugin` | :white_check_mark: |
| `Bundle` | `Bundle` | :white_check_mark: |
| `AppLabel` | `App` | :white_check_mark: |
| `System` | `System` | :white_check_mark: |
| `Material` | `Material` | :white_check_mark: |
| `Component` | no-suffix | :white_check_mark: |
| `Resource` | no-suffix | :white_check_mark: |
| `Command` | no-suffix | :white_check_mark: |
| `Asset` | no-suffix | :white_check_mark: |
| `States` | N/A | :white_check_mark: (no types provided by Bevy) |
| `EntityCommand` | N/A | :white_check_mark: (no types provided by Bevy) |

Hard to search for because no distinguishing trait:

- Observable events
- Marker components

Contributor guide

Open the contributing guide

Research direction

Start by searching the listed traits and example types throughout the Bevy repository to inventory their current names and usages. Done means agreeing on a consistent naming convention, resolving the open cases in the table, and addressing the searchability concerns for observable events and marker components.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
developer-experience
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.