bevyengine / bevy

A refreshingly simple data-driven game engine built in Rust
https://bevyengine.org
Apache License 2.0
36.26k stars 3.58k forks source link

Move `all_tuples` and friends into its own crate #15941

Open bushrat011899 opened 1 month ago

bushrat011899 commented 1 month ago

FYI I'm merging the simple fix in #15933 now, but I do think we should move fully to this. It does make me think we should pull all_tuples out into its own crate though: I'm not a fan of bevy_math relying on bevy_utils.

Originally posted by @alice-i-cecile in https://github.com/bevyengine/bevy/issues/15936#issuecomment-2415352291

alice-i-cecile commented 1 month ago

This should be part of the Bevy extended universe, over with atomiccow. The name of the crate should not have "Bevy" in it to encourage broader adoption.

bushrat011899 commented 1 month ago

To commence the bikeshedding, I propose polytuple as a name.

alice-i-cecile commented 1 month ago

variadics_please gets my vote.

bushrat011899 commented 1 month ago

Oh in line with the not-BSN crate, i-cant-believe-its-not-variadics

MrGVSV commented 1 month ago

I like variadics_please, but maybe we should also consider keeping the name all_tuples (assuming someone else hasn't taken it)? Especially considering it's a fairly known about macro in the community.

alice-i-cecile commented 1 month ago

I think that putting variadics into the crate name in some form is helpful for searchability. I also think it's a natural home for any other variadic-related functionality that Bevy or other users might need.

bushrat011899 commented 1 month ago

Since bevy_utils/macros only contains all_tuples! and all_tuples_with_size!, it seems like the steps are pretty straightforward:

  1. Reserve the name variadics_please on crates.io
  2. Create the repository bevyengine/variadics_please
  3. Copy bevy_utils/macros into the new repo, polish the documentation, etc.
  4. Publish
  5. Update bevy_utils to re-export variadics_please, or update the other crates to directly use variadics_please instead.
BenjaminBrienen commented 2 weeks ago

https://crates.io/crates/variadics_please