Releases: TheBevyFlock/bevy_cli
`bevy_lint` - v0.6.0
I'm happy to announce v0.6.0 of bevy_lint! This release that adds support for Bevy 0.18 and updates the nightly toolchain to nightly-2026-01-22, with no other changes beyond that.
You can find the live documentation for this release here. You may also be interested in the changelog and the migration guide.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
This release uses the nightly-2026-01-22 toolchain, based on Rust 1.95.0, and supports Bevy 0.18. You can install it from Git with the following commands:
rustup toolchain install nightly-2026-01-22 \
--component rustc-dev \
--component llvm-tools
rustup run nightly-2026-01-22 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.6.0 \
--locked \
bevy_lintAlternatively, if you have v0.1.0-alpha.2 of the Bevy CLI, you can install the linter with bevy lint install:
bevy lint install v0.6.0All Changes: lint-v0.5.0...lint-v0.6.0
Changed
`bevy_lint` - v0.5.0
I am happy to announce the fifth release of the Bevy Linter! This release adds support for Bevy 0.17, along with improved crash diagnostics and a new restriction lint!
You can find the live documentation for this release here. You may also be interested in the changelog and the migration guide.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
This release uses the nightly-2025-12-11 toolchain, based on Rust 1.94.0, and supports Bevy 0.17. You can install it from Git with the following commands:
rustup toolchain install nightly-2025-12-11 \
--component rustc-dev \
--component llvm-tools
rustup run nightly-2025-12-11 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.5.0 \
--locked \
bevy_lintAlternatively, if you have v0.1.0-alpha.2 of the Bevy CLI, you can install the linter with bevy lint install:
bevy lint install v0.5.0All Changes: lint-v0.4.0...lint-v0.5.0
Added
- Improve linter's diagnostics when it ICEs (#517)
- Added lint
missing_trait_for_unit_structtorestriction(#574)- This checks for unit structs that do not implement
Copy,CloneorDefault.
- This checks for unit structs that do not implement
Changed
- The linter now supports Bevy 0.17, but no longer supports Bevy 0.16 (#577)
insert_event_resourcelint got renamed toinsert_message_resource.iter_current_update_eventslint got renamed toiter_current_update_messages.
- Bumped nightly toolchain to
nightly-2025-12-11(#697)
Fixed
- The
unit_in_bundlelint no longer ICE's on projection types (#659)
Removed
- Deprecated lint
insert_unit_bundlewas removed (#724)- Please use the
unit_in_bundlelint instead.
- Please use the
`bevy_cli` - v0.1.0-alpha.2
This is the second alpha release of the Bevy CLI, a command-line tool that streamlines work on projects using the Bevy game engine. This release includes key improvements such as:
- Automatically configuring the correct
getrandombackend when building a project for the web - Easily listing and installing specific versions of the Bevy Linter
- Unstable support for enabling web multi-threading, useful when depending on crates like
bevy_seedling - Faster compile times and improved template support by relying on
cargo-generatein its executable form, rather than bundling it as a library - Many bug fixes, small quality-of-life changes, and documentation improvements
You can find the live documentation for this release here. You may also be interested in the changelog and the migration guide.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
You can install the CLI using:
cargo install --git https://github.com/TheBevyFlock/bevy_cli --tag cli-v0.1.0-alpha.2 --locked bevy_cli`bevy_lint` - v0.4.0
I'm thrilled to announce the fourth release of the Bevy Linter! This release includes support for automatically applying suggestions with the --fix flag, restriction lints to enforce either Update or FixedUpdate for specific modules, improved Github Action ergonomics and performance, and more!
You can find the live documentation for this release here. You may also be interested in the changelog and the migration guide.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
This release uses the nightly-2025-06-26 toolchain, based on Rust 1.90.0. You can install it from Git with the following commands:
rustup toolchain install nightly-2025-06-26 \
--component rustc-dev \
--component llvm-tools-preview
rustup run nightly-2025-06-26 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.4.0 \
--locked \
bevy_lintAll Changes: lint-v0.3.0...lint-v0.4.0
Added
- You can now run
bevy_lint --fixto auto-fix lints (#505) bevy_lintnow has a custom--helpscreen to display options specific to the linter (#505)- Added lints
update_scheduleandfixed_update_scheduletorestriction(#463)- These can help restrict modules to only use the
UpdateorFixedUpdateschedules. Useful for separating game and rendering logic!
- These can help restrict modules to only use the
- Added lint
camera_modification_in_fixed_updatetonursery(#417)- This catches cases where a camera is modified during
FixedUpdate, which can cause laggy visuals.
- This catches cases where a camera is modified during
- The Bevy CLI (Alpha) can now automatically install the linter for you (#406)
- It is now possible to use the linter without Rustup by specifying the
BEVY_LINT_SYSROOTenvironmental variable (#478)- This should make it easier to use the linter with NixOS.
- Added opt-in support for caching
bevy_lintin Github Actions (#530)- This can double the speed at which
bevy_lintis installed in CI, so it is highly recommended to enable it by following these instructions!
- This can double the speed at which
- Added docs on how to use
bevy_lintwith Rust-Analyzer (#503) - Added docs for troubleshooting issues with
craneliftandsccache(#453, #522)
Changed
- The lint
insert_unit_bundlehas been renamed tounit_in_bundlebecause it now supports many more cases, not justCommands::spawn()(#502) - Improved
unconventional_naming's diagnostics when encountering aPlugin(#495) - The linter documentation has been moved to use
mdbookinstead ofrustdoc(#420, #436)- You can find the new docs here.
- The list of all lints is still generated using
rustdoc, which you can find here.
- Bumped nightly toolchain to
nightly-2025-06-26(#507)- This adds support for the latest Rust features, such as let-chains!
- You can now copy-and-paste most commands in the docs, without having to lookup the compatibility table (#475)
- You can now install specific commits of the linter with the Github Action (#501)
- This will only work for commits newer than
f38247d.
- This will only work for commits newer than
Fixed
`bevy_cli` - v0.1.0-alpha.1
This is the first release of the Bevy CLI, a prototype command-line tool that streamlines developing apps using the Bevy game engine! Use the CLI to:
bevy new: quickly setup a new app from a template, likebevy_new_2d. Perfect for game jams!- Easily build your app for the web with features like...
bevy run web: run a local web server to test your app in your browserbevy build web --bundle: bundle your app and assets into a single folderbuild build web --release: optionally optimization withwasm-optwhen in release mode
bevy lint: run the linter if you have it installed, and optionally install it for you if you don't!
You can find the live documentation for this release here. You may also be interested in the changelog.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
You can install the CLI using:
cargo install --git https://github.com/TheBevyFlock/bevy_cli --tag cli-v0.1.0-alpha.1 --locked bevy_cliFor more information, please see the installation page!
`bevy_lint` - v0.3.0
I'm pleased to announce the third release of the Bevy Linter! This update comes with 2 new lints, Bevy 0.16 support, a Github Action for installing the linter in CI, documentation improvements, and more!
You can find the live documentation for this release here. You may also be interested in the changelog and the migration guide.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
This release uses the nightly-2025-04-03 toolchain, based on Rust 1.88.0. You can install it from Git with the following commands:
rustup toolchain install nightly-2025-04-03 \
--component rustc-dev \
--component llvm-tools-preview
rustup run nightly-2025-04-03 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.3.0 \
--locked \
bevy_lintAll Changes: lint-v0.2.0...lint-v0.3.0
Added
- Lint
iter_current_update_eventstosuspicious(#314) - Lint
unconventional_namingtostyle(#345)plugin_not_ending_in_pluginhas been merged into this new lint.
- A Github Action to automatically install the linter (#380)
Changed
- The linter now supports Bevy 0.16, but no longer supports Bevy 0.15 (#323)
- Bumped nightly toolchain to
nightly-2025-04-03(#373)- The linter now supports Rust 1.88.0.
- Moved lints into submodules for their corresponding lint groups (#321)
- This makes it easier to see what lint group a lint is under in the documentation. For example, in v0.2.0 if you wanted to view the
insert_unit_bundlelint you would go tobevy_lint::lints::insert_unit_bundle, but in v0.3.0 you would go tobevy_lint::lints::suspicious::insert_unit_bundle. This signals thatinsert_unit_bundleis asuspiciouslint.
- This makes it easier to see what lint group a lint is under in the documentation. For example, in v0.2.0 if you wanted to view the
- Moved lint group docs from
bevy_lint::groupsto their associatedbevy_lint::lintssubmodules (#328) - Code generated from external macros are no longer linted (#263)
- External macros are macros that are defined in a separate crate from the one being linted. The output of these macros is skipped for all lints, as it was previously impossible to fix the warnings without an
#[allow(...)]attribute.
- External macros are macros that are defined in a separate crate from the one being linted. The output of these macros is skipped for all lints, as it was previously impossible to fix the warnings without an
missing_reflectnow emits machine-applicable suggestions if all fields in a type implementPartialReflect(#389)
Removed
- Lint
plugin_not_ending_in_plugin(#345)- This lint has been merged into the new
unconventional_naminglint.
- This lint has been merged into the new
Fixed
main_return_without_appexitno longer fires if theAppExitis used (#346)- The goal of the lint is to encourage the
AppExitto be handled, although returning it frommain()is just one solution. This fix prevents the lint from yelling at you if you choose to handle it a different way, or simply choose to discard it withlet _ = app.run();.
- The goal of the lint is to encourage the
- Fixed the Rust version in the compatibility table for v0.2.0 (#363)
`bevy_lint` - v0.2.0
I'm ecstatic to announce the second release of the Bevy linter! This release comes with several new lints, quality-of-life improvements, and a critical fix for Windows!
You can find the live documentation for this release here. You may also be interested in the changelog, the migration guide, and the announcement post.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
This release uses the nightly-2025-02-20 toolchain, based on Rust 1.87.0. You can install it from Git with the following commands:
rustup toolchain install nightly-2025-02-20 \
--component rustc-dev \
--component llvm-tools-preview
rustup run nightly-2025-02-20 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.2.0 \
--locked \
bevy_lintAll Changes: lint-v0.1.0...lint-v0.2.0
Added
- Lint
borrowed_reborrowabletopedantic(#164) - Lint
insert_unit_bundletosuspicious(#210) - Lint configuration in
Cargo.toml(#251) - Support for
bevy_lint --version(#257) - Support for qualified method syntax in several lints (#253)
- Lint
duplicate_bevy_dependencies(#280)
Changed
- The linter now supports Bevy 0.15, but no longer supports Bevy 0.14 (#191)
- Eventually the linter will support multiple versions of Bevy at the same time. Please see #138 for more information.
- Bumped nightly toolchain to
nightly-2025-02-20(#278) - Lowered
zst_querylint fromrestrictiontonursery(#261)zst_querydoes not respectQueryData::Item, meaning it is broken for queries likeHas<T>andAnyOf<T>. Please see #279 for more information.
- Merged
panicking_query_methodsandpanicking_world_methodsinto a single lint:panicking_methods(#271)
Fixed
rustc_driver.dllnot found on Windows (#281)bevy_lintshould now work on Windows, as it was previously broken by this bug.
`bevy_lint` - v0.1.0
It is with great pride that I announce the first release of bevy_lint, a custom linter for projects built with the Bevy game engine! Use this to check for Bevy-specific footguns and optimizations, as well as enforce project-wide restrictions and standards.
You can find the live documentation here.
Warning
This is an unofficial community project, hacked upon by the Bevy CLI working group until it is eventually upstreamed into the main Bevy Engine organization. Pardon our rough edges, and please consider submitting an issue if you run into trouble!
This release uses the nightly-2024-11-14 toolchain, based on Rust 1.84.0. You can install bevy_lint from Git with the following commands:
rustup toolchain install nightly-2024-11-14 \
--component rustc-dev \
--component llvm-tools-preview
rustup run nightly-2024-11-14 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.1.0 \
--locked \
bevy_lintAll Changes: 17834eb...lint-v0.1.0
Added
- Lint
main_return_without_appexittopedantic(#84) - Lint
insert_event_resourcetosuspicious(#86) - Lint groups
correctness,suspicious,complexity,performance,style,pedantic,restriction, andnursery(#98)- These are based directly on Clippy's Lint Groups.
- Lints
panicking_query_methodsandpanicking_world_methodstorestriction(#95) - Lint
plugin_not_ending_in_plugintostyle(#111) - Lint
missing_reflecttorestriction(#139) - Lint
zst_querytorestriction(#168)