bevyengine / bevy-assets

A collection of Bevy assets, plugins, learning resources, and apps made by the community
https://bevyengine.org/assets
972 stars 221 forks source link

Question: How should these crates be handled? #457

Open benfrankel opened 1 month ago

benfrankel commented 1 month ago

I took some notes as I went by adding a crate field to every asset:

Unreleased (AKA a crate with no crates.io release):
- bootleg_networking
- bevy_input_actionmap
- bevy_advanced_input
- prototype_bevy_sdl2
- bevy_shadertoy_wgsl
- bevy_miniquad
- bevy_prototype_css
- Bevy-WoW
- bevy_kajiya: Unreleased?
- bevy_dev_console: Crate name reserved, though.
- bevy_doryen: There's a different library with the same name that _is_ released...
- bevy_prototype_simple_net: Also archived.

Archived (on GitHub):
- bevy_rtc
- bevy_networking_turbulence
- physme
- spew
- ezinput
- bevy_tilemap
- bevy-discord-presence
- bevy_ldtk: Merged into bevy_retrograde.

Unmaintained (according to README):
- bevy_retrograde: No longer developed. Moved to Bones Framework, which is not a Bevy plugin.
- seldom_interop: No longer maintained. Merged into seldom_map_nav.
- bevy-orbit-controls: Unmaintained. Suggests using smooth-bevy-cameras instead.

Obsolete:
- seldom_fn_plugin: Almost obsolete.
- bevy_mod_ui_sprite: Obsolete?
- bevy_ui_borders: Obsolete?
- bevy_mod_ui_texture_atlas_image: Obsolete?

Wrong category:
- bevier: Tool, not a template.
- bevy-in-web-worker: Tool, not a crate.
- bevy-in-app: Tool, not a crate.
- autodefault: Not a "development tool", and not even a Bevy Asset technically, just a Rust library.

Multiple crates:
- blender_bevy_components_workflow
- naia
- avian
- bevy_rapier
- bevy_wasm
benfrankel commented 1 month ago

This is not explicitly including the crates that are very old and haven't been updated. Sorting by latest supported Bevy version will help with those cases (https://github.com/bevyengine/bevy-assets/issues/297).

benfrankel commented 1 month ago

The "multiple crates" assets are fine of course. I marked them down to note that I had to pick just one of their multiple crates for the crate field.

benfrankel commented 1 month ago

My take: IMO the crates with no crates.io release should never have been added to Bevy Assets in the first place. It feels like there should be some minimum bar required, even if it's a very low bar to be as permissive as possible.

If not fully removed, at the very least a lot of these crates should be hidden or marked somehow to avoid misleading / wasting a Bevy user's time.

MrGVSV commented 1 month ago

My take: IMO the crates with no crates.io release should never have been added to Bevy Assets in the first place.

Personally I think it's okay. Some crates are intentionally waiting for a proper release while others never intend on releasing for whatever reason. I think the important thing is that the crate can be imported somehow.

If not fully removed, at the very least a lot of these crates should be hidden or marked somehow to avoid misleading / wasting a Bevy user's time.

Agreed. Crates should be marked by "easiest" import: if not crates.io, then git, otherwise other (I’m assuming Rust supports alternative package registries)?

janhohenheim commented 1 month ago

I left spew in there because it might still be useful to people on 0.13 and I've updated it to 0.14 to be nice, but I won't continue working on it since it's superseded by Observers. Feel free to add it to the "obsolete" pile.

MrGVSV commented 1 month ago

It might be useful too if crates automatically tracked when they were last published or when a commit was last pushed.

janhohenheim commented 1 month ago

@MrGVSV wouldn't that already be handled by sorting by latest supported Bevy version? I think going beyond that would be a bit hard to analyze, since many crates are good as they are now and don't need changes beyond Bevy version bumps.

MrGVSV commented 1 month ago

@MrGVSV wouldn't that already be handled by sorting by latest supported Bevy version? I think going beyond that would be a bit hard to analyze, since many crates are good as they are now and don't need changes beyond Bevy version bumps.

Fair. I like to see how "active" a dependency is before I bring it in, but I suppose "last updated" doesn't really give the full picture there.