Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions bevy_lint/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ The format is based on [Keep a Changelog], and this project adheres to [Semantic
[Keep a Changelog]: https://keepachangelog.com/en/1.1.0/
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html

## Unreleased
## v0.6.0 - 2026-02-01

**All Changes**: [`lint-v0.5.0...main`](https://github.com/TheBevyFlock/bevy_cli/compare/lint-v0.5.0...main)
**All Changes**: [`lint-v0.5.0...lint-v0.6.0`](https://github.com/TheBevyFlock/bevy_cli/compare/lint-v0.5.0...lint-v0.6.0)

### Changed

- The linter now supports Bevy 0.18, but no longer supports Bevy 0.17 ([#703](https://github.com/TheBevyFlock/bevy_cli/pull/703))
- Bumped nightly toolchain to `nightly-2026-01-22` ([#729](https://github.com/TheBevyFlock/bevy_cli/pull/729))

## v0.5.0 - 2026-01-26

Expand Down
2 changes: 1 addition & 1 deletion bevy_lint/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "bevy_lint"
version = "0.6.0-dev"
version = "0.6.0"
authors = ["BD103"]
edition = "2024"
description = "A collection of lints for the Bevy game engine"
Expand Down
14 changes: 13 additions & 1 deletion bevy_lint/MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ To actually install the new version of the linter, please see [the docs] and [th
[the releases page]: https://github.com/TheBevyFlock/bevy_cli/releases
[submit an issue]: https://github.com/TheBevyFlock/bevy_cli/issues

## v0.5.0 to v0.6.0 (Unreleased)
## v0.5.0 to v0.6.0

### [Bevy 0.18 Support](https://github.com/TheBevyFlock/bevy_cli/pull/703)

Expand All @@ -18,6 +18,18 @@ To migrate your code base to Bevy 0.18, please see the [release post][bevy 0.18
[bevy 0.18 release post]: https://bevy.org/news/bevy-0-18/
[bevy 0.18 migration guide]: https://bevy.org/learn/migration-guides/0-17-to-0-18/

### [Bumped Nightly Toolchain to `nightly-2026-01-22`](https://github.com/TheBevyFlock/bevy_cli/pull/729)

`bevy_lint` now requires the `nightly-2026-01-22` toolchain, which supports Rust 1.95.0. You may uninstall the old `nightly-2025-12-11` toolchain and install the new toolchain using Rustup:

```sh
rustup toolchain uninstall nightly-2025-12-11

rustup toolchain install nightly-2026-01-22 \
--component rustc-dev \
--component llvm-tools
```

## v0.4.0 to v0.5.0

### [Bevy 0.17 Support](https://github.com/TheBevyFlock/bevy_cli/pull/577)
Expand Down
6 changes: 3 additions & 3 deletions bevy_lint/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ see <https://linebender.org/blog/doc-include/>.
You can install the toolchain required for the latest release with:

```sh
rustup toolchain install nightly-2025-12-11 \
rustup toolchain install nightly-2026-01-22 \
--component rustc-dev \
--component llvm-tools
```
Expand All @@ -44,9 +44,9 @@ If you are installing a different version of the linter, you may need to install
Once you have the toolchain installed, you can compile and install `bevy_lint` through `cargo`:

```sh
rustup run nightly-2025-12-11 cargo install \
rustup run nightly-2026-01-22 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.5.0 \
--tag lint-v0.6.0 \
--locked \
bevy_lint
```
Expand Down
15 changes: 0 additions & 15 deletions bevy_lint/src/lints/suspicious/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,4 @@ impl LintGroup for Suspicious {
});
store.register_late_pass(|_| Box::new(unit_in_bundle::UnitInBundle));
}

fn register_lints(store: &mut LintStore) {
store.register_lints(Self::LINTS);

// These help users migrate from v0.4.0 to v0.5.0. These lines should be removed before
// v0.6.0 is released.
store.register_renamed(
"bevy::insert_event_resource",
"bevy::insert_message_resource",
);
store.register_renamed(
"bevy::iter_current_update_events",
"bevy::iter_current_update_messages",
);
}
}
33 changes: 0 additions & 33 deletions docs/book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,39 +12,6 @@ git-repository-url = "https://github.com/TheBevyFlock/bevy_cli"
edit-url-template = "https://github.com/TheBevyFlock/bevy_cli/edit/main/docs/{path}?mode=edit"
site-url = "/bevy_cli/"

# These redirects migrate users from the old `rustdoc`-based linter docs to the new
# `mdbook`-`rustdoc` combo. These redirects may be removed before the v0.5.0 release of the linter,
# which should give most users apt time to update their URLs.
[output.html.redirect]
# Those trying to find the old linter docs will be redirected to the new docs.
"/bevy_lint/index.html" = "../linter/index.html"

# Those trying to find the list of lints will be redirected to the new location.
"/bevy_lint/lints/index.html" = "../../api/bevy_lint/lints/index.html"

# Those trying to find the docs on a specific lint group will be redirected to the new location.
"/bevy_lint/lints/complexity/index.html" = "../../../api/bevy_lint/lints/complexity/index.html"
"/bevy_lint/lints/correctness/index.html" = "../../../api/bevy_lint/lints/correctness/index.html"
"/bevy_lint/lints/nursery/index.html" = "../../../api/bevy_lint/lints/nursery/index.html"
"/bevy_lint/lints/pedantic/index.html" = "../../../api/bevy_lint/lints/pedantic/index.html"
"/bevy_lint/lints/performance/index.html" = "../../../api/bevy_lint/lints/performance/index.html"
"/bevy_lint/lints/restriction/index.html" = "../../../api/bevy_lint/lints/restriction/index.html"
"/bevy_lint/lints/style/index.html" = "../../../api/bevy_lint/lints/style/index.html"
"/bevy_lint/lints/suspicious/index.html" = "../../../api/bevy_lint/lints/suspicious/index.html"

# Those trying to find the docs on a specific lint will be redirected to the new location.
"/bevy_lint/lints/nursery/duplicate_bevy_dependencies/index.html" = "../../../../api/bevy_lint/lints/nursery/duplicate_bevy_dependencies/index.html"
"/bevy_lint/lints/nursery/zst_query/index.html" = "../../../../api/bevy_lint/lints/nursery/zst_query/index.html"
"/bevy_lint/lints/pedantic/borrowed_reborrowable/index.html" = "../../../../api/bevy_lint/lints/pedantic/borrowed_reborrowable/index.html"
"/bevy_lint/lints/pedantic/main_return_without_appexit/index.html" = "../../../../api/bevy_lint/lints/pedantic/main_return_without_appexit/index.html"
"/bevy_lint/lints/restriction/missing_reflect/index.html" = "../../../../api/bevy_lint/lints/restriction/missing_reflect/index.html"
"/bevy_lint/lints/restriction/panicking_methods/index.html" = "../../../../api/bevy_lint/lints/restriction/panicking_methods/index.html"
"/bevy_lint/lints/style/unconventional_naming/index.html" = "../../../../api/bevy_lint/lints/style/unconventional_naming/index.html"
"/bevy_lint/lints/suspicious/insert_event_resource/index.html" = "../../../../api/bevy_lint/lints/suspicious/insert_event_resource/index.html"
"/bevy_lint/lints/suspicious/insert_unit_bundle/index.html" = "../../../../api/bevy_lint/lints/suspicious/insert_unit_bundle/index.html"
"/bevy_lint/lints/suspicious/iter_current_update_events/index.html" = "../../../../api/bevy_lint/lints/suspicious/iter_current_update_events/index.html"


# `mdbook-linkcheck2` <https://github.com/marxin/mdbook-linkcheck2> is a backend that
# verifies links are correct.
[output.linkcheck2]
Expand Down
2 changes: 1 addition & 1 deletion docs/src/linter/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

|`bevy_lint` Version|Rust Version|Rustup Toolchain|Bevy Version|
|-|-|-|-|
|0.6.0-dev|1.94.0|`nightly-2026-01-22`|0.18|
|0.6.0|1.95.0|`nightly-2026-01-22`|0.18|
|0.5.0|1.94.0|`nightly-2025-12-11`|0.17|
|0.4.0|1.90.0|`nightly-2025-06-26`|0.16|
|0.3.0|1.88.0|`nightly-2025-04-03`|0.16|
Expand Down
10 changes: 5 additions & 5 deletions docs/src/linter/github-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@

## Latest Release

The following steps will install v0.5.0 of the linter and run it for all crates in a workspace:
The following steps will install v0.6.0 of the linter and run it for all crates in a workspace:

```yml
- name: Install `bevy_lint`
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.5.0
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.6.0

- name: Run `bevy_lint`
run: bevy_lint --workspace
Expand All @@ -27,7 +27,7 @@ Note that this action overrides the default toolchain and configures it to be th

# Overrides the default toolchain to be nightly Rust.
- name: Install `bevy_lint`
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.5.0
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.6.0

# Resets the default toolchain back to stable Rust.
- name: Configure the default Rust toolchain
Expand Down Expand Up @@ -60,7 +60,7 @@ By default, using the provided action will cause the linter to be recompiled for

```yml
- name: Install `bevy_lint`
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.5.0
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.6.0
with:
cache: true
```
Expand All @@ -69,7 +69,7 @@ You can also configure whether a new cache can be saved with the `save-cache-if`

```yml
- name: Install `bevy_lint`
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.5.0
uses: TheBevyFlock/bevy_cli/bevy_lint@lint-v0.6.0
with:
cache: true
save-cache-if: ${{ github.ref == 'refs/heads/main' }}
Expand Down
14 changes: 7 additions & 7 deletions docs/src/linter/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@

## CLI

The CLI supports automatically installing the linter. Make sure you [have the CLI first](../cli/install.md), then simply run `bevy lint install v0.5.0`.
The CLI supports automatically installing the linter. Make sure you [have the CLI first](../cli/install.md), then simply run `bevy lint install v0.6.0`.

The CLI will prompt you if you wish to install the linter and the required toolchain. Note that it will assume you are using Rustup, and if that isn't the case you should [install the linter manually instead](#manual-without-rustup).

```
Do you want to install `bevy_lint-v0.5.0` and the required toolchain: `nightly-2025-12-11` ? [y/n]
Do you want to install `bevy_lint-v0.6.0` and the required toolchain: `nightly-2026-01-22` ? [y/n]
```

If you want to auto-confirm the prompt, you may pass `--yes` to the command. Note that if you are installing the linter in CI, you may wish to use the [dedicated Github Action instead](github-actions.md):

```sh
bevy lint install --yes v0.5.0
bevy lint install --yes v0.6.0
```

## Manual with Rustup

`bevy_lint` requires a specific nightly Rust toolchain with the `rustc-dev` and `llvm-tools` components. You can install the toolchain required for the latest release with:

```sh
rustup toolchain install nightly-2025-12-11 \
rustup toolchain install nightly-2026-01-22 \
--component rustc-dev \
--component llvm-tools
```
Expand All @@ -33,9 +33,9 @@ If you are installing a different version of the linter, you may need to install
Once you have the toolchain installed, you can compile and install `bevy_lint` through Cargo:

```sh
rustup run nightly-2025-12-11 cargo install \
rustup run nightly-2026-01-22 cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.5.0 \
--tag lint-v0.6.0 \
--locked \
bevy_lint
```
Expand All @@ -51,7 +51,7 @@ Once you've installed the toolchain and components, use that toolchain's `cargo`
```sh
my-toolchain/bin/cargo install \
--git https://github.com/TheBevyFlock/bevy_cli.git \
--tag lint-v0.5.0 \
--tag lint-v0.6.0 \
--locked \
bevy_lint
```
Expand Down
8 changes: 4 additions & 4 deletions docs/src/linter/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ If you have [`cranelift`](https://github.com/rust-lang/rustc_codegen_cranelift)

```
error: failed to find a `codegen-backends` folder in the sysroot candidates:
* ~/.rustup/toolchains/nightly-2025-12-11-unknown-linux-gnu
* ~/.rustup/toolchains/nightly-2025-12-11-x86_64-unknown-linux-gnu
* ~/.rustup/toolchains/nightly-2026-01-22-unknown-linux-gnu
* ~/.rustup/toolchains/nightly-2026-01-22-x86_64-unknown-linux-gnu
```

This error occurs because you do not have `cranelift` installed for the specific nightly toolchain that the linter uses. You can fix this by installing `rustc-codegen-cranelift-preview` for the linter's toolchain:

```sh
rustup component add rustc-codegen-cranelift-preview --toolchain nightly-2025-12-11
rustup component add rustc-codegen-cranelift-preview --toolchain nightly-2026-01-22
```

## Using with `sccache`
Expand All @@ -33,7 +33,7 @@ Error: command `~/.cargo/bin/bevy_lint ` exited with status code exit status: 10
You can fix the error by setting [the `CARGO` environmental variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates) when running the linter. This informs `sccache` that `bevy_lint` uses Cargo:

```sh
CARGO=$(rustup which --toolchain nightly-2025-12-11 cargo) bevy_lint
CARGO=$(rustup which --toolchain nightly-2026-01-22 cargo) bevy_lint
```

If you [use `BEVY_LINT_SYSROOT` instead of Rustup](environmental-variables.md), you can run this instead:
Expand Down