Open benfrankel opened 1 month ago
Event
, Primitive2d
, and Primitive3d
are probably "fake inconsistent" and fine to stay as they are. So this can be narrowed down to SystemSet
and three odd-one-out type names.
Can you explain more about what you think should be done in all of the inconsistent cases?
I've edited the original comment with more context.
SystemSet
FooSystems
:
+ Parallels `Plugins` for `PluginGroup`
+ Unambiguous
- Longest option (besides `SystemSet` as a suffix...)
- Used by 2/20 bevy system set types: `SimulationLightSystems` and `VisibilitySystems`
- Rarely (never?) used by 3rd-party crates
FooSystem
:
+ Used by 10/20 bevy system set types.
+ Used by 3rd-party crates sometimes
- Still long
- Ambiguous (is it a system or a system set?)
FooSet
:
+ Very short
+ Commonly used by 3rd-party crates
- Used by 2/20 bevy system set types: `RenderSet` and `ExtractMeshesSet`
- Ambiguous (is it a `SystemSet` or a set of `Foo`?)
Foo
:
+ Shortest possible
+ Used by 6/20 bevy system set types
- May conflict with names of related types
- Not obvious that it's a `SystemSet`
- Rarely used by 3rd-party crates
I'm leaning Set
for system sets, but it's not an obvious decision.
I fully agree with the suggestions presented here. They seem reasonable and applicable. Especially the SystemSet
inconsistency is a potential documentation hazard since users might not know what to search for.
My preference is Set
as well.
Some traits have competing naming conventions for types within Bevy:
SystemSet
System
,Set
,Systems
, no-suffixPrimitive3d
3d
,3
,3A
, no-suffixPrimitive2d
2d
,2
, no-suffixEvent
Event
, no-suffixScheduleLabel
Schedule
, no-suffixExtractSchedule
RenderLabel
Label
, no-suffixCameraDriverLabel
SystemParam
Param
, no-suffixUiLayoutSystemRemovedComponentParam
PluginGroup
Plugins
PluginGroupBuilder
)Plugin
Plugin
Bundle
Bundle
AppLabel
App
System
System
Material
Material
Component
Resource
Command
Asset
States
EntityCommand
Hard to search for because no distinguishing trait: