flag-frenzy
flag-frenzy
is an advanced feature flag testing tool for Cargo, perfect for large projects and continuous integration. It checks combinations of feature flags for crates within a workspace, filtering them by configurable rules.
You may be interested in these great, simpler alternatives:
flag-frenzy
was created to test feature flags for crates within the Bevy game engine. Originally it was a Github Actions job that ran cargo-all-features
(source), but quickly issues arose with out-of-memory errors and insufficient feature configuration.
The flag-frenzy
you know of today was written from scratch with the previous section's issues in mind. Specifically, it offers:
Iterator
flag-frenzy
uses an Iterator
to only compute a combination when it is needed, and drops the value when it is done.feature1
requires feature2
or feature3
" and "feature4
and feature5
are incompatible, unless feature6
is enabled."cargo-all-features
because it drastically decreases the time required is check a workspace.Please see the documentation!
bevy_window
failing with serialize
feature.bevy_ui
failing without bevy_text
.bevy_winit
failing without serialize
feature.bevy_gltf
failing with pbr_multi_layer_material_textures
or pbr_anisotropy_texture
.bevy_dev_tools
failing without bevy_gizmos
enabling its bevy_render
feature.bevy
failing with spirv_shader_passthrough
feature.