@bd103@hachyderm.io cover

Hi! I'm a hobby developer who works on the Bevy game engine, written in Rust. I'm currently building the Bevy Linter and CLI. Feel free to reach out! (he / him)

This profile is from a federated server and may be incomplete. View on remote instance

@bd103@hachyderm.io avatar bd103 , to random

Hi friends! Quick update: v0.5.0 of the linter is out now, coming with support for Bevy 0.17. Check it out!

https://github.com/TheBevyFlock/bevy_cli/releases/tag/lint-v0.5.0

@bd103@hachyderm.io avatar bd103 , to random

Hashing is pretty useful! Here's a short cheat-sheet I made on how to do it in Rust: https://bd103.github.io/blog/2025-11-10-rust-hashing-cheat-sheet/

@bd103@hachyderm.io avatar bd103 , (edited ) to random

Hello everyone! I'm thrilled to announce the second release of the alpha Bevy CLI, a command-line tool hacked on by the Bevy CLI working group that streamlines work on projects using the Bevy game engine (https://bevy.org). This release includes key improvements such as:

  • Automatically configuring the correct getrandom backend 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-generate in its executable form, rather than bundling it as a library
  • Many bug fixes, small quality-of-life changes, and documentation improvements

Check out the official release at https://github.com/TheBevyFlock/bevy_cli/releases/tag/cli-v0.1.0-alpha.2, and view the live documentation at https://thebevyflock.github.io/bevy_cli/.

This release is from 5 months of work, so please reach out if you get stuck or hit any issues. Have a good one!

@bd103@hachyderm.io avatar bd103 , to random

I wrote up a little blog post about my past year working on the linter! You should check it out!

https://bd103.github.io/blog/2025-09-09-bevys-5th-birthday

@bd103@hachyderm.io avatar bd103 , to random

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!

If you want to learn more about the linter, check out the docs at https://thebevyflock.github.io/bevy_cli/linter/index.html. If you're interested to see what changed in v0.4.0, also check out the changelog at https://thebevyflock.github.io/bevy_cli/linter/changelog.html and the migration guide at https://thebevyflock.github.io/bevy_cli/linter/migration.html.

Many thanks to everyone in the bevy_cli working group for helping this release! If you run into trouble using the linter, please drop by the working group's channel on Bevy's Discord or open an issue at https://github.com/TheBevyFlock/bevy_cli/issues :)

tauon ,
@tauon@possum.city avatar

@bd103 oh i thought a bevy linter was a good idea! i'll have to install that then

bd103 OP ,
@bd103@hachyderm.io avatar

@tauon Awesome, let me know what you think! Feedback and criticism is always appreciated :)

@bd103@hachyderm.io avatar bd103 , to random
bd103 OP ,
@bd103@hachyderm.io avatar

If you want to set this up yourself, I opened a PR with instructions on integrating bevy_lint with Rust Analyzer!

https://github.com/TheBevyFlock/bevy_cli/pull/503

@bd103@hachyderm.io avatar bd103 , to random

You know what? I think it's time for a status update! Things got really busy the past 2 months IRL, but I'm slowly kicking up to faster speeds.

First, I'm still actively working on the CLI and linter! My main focus has been upgrading the linter to the latest Rust compiler toolchain (https://github.com/TheBevyFlock/bevy_cli/pull/456) and making it easier to use the linter without Rustup (https://github.com/TheBevyFlock/bevy_cli/pull/478). I've also been planning on rewriting the CLI's configuration system to use the figment crate, doing some triage / release planning work, and actually sitting down and reviewing all the open pull requests.

Alongside that, I got nerd sniped writing a tool that can upgrade Rustdoc's unstable JSON output to newer format versions (https://github.com/BD103/migrate_rustdoc_json). I originally made it so I could run cargo-semver-checks on different versions of the clippy_utils crate to create small migration guides, but it turns out cargo-semver-checks doesn't work well as an automatic migration guide generator. (It can tell you how things break, but doesn't really tell you how to migrate. It's a shame, but I'm not using the crate for its intended purpose, so I can't complain too much.) Even if I may not end up using the tool, it was fun to learn about things like JSON paths, anstream / anstyle, and winnow in the process!

That's about all of the programming stuff I've been doing recently! You can check out my prioritization board over at https://github.com/users/BD103/projects/8 to see what's next in my plan.

In other news, I've also been playing a lot of Satisfactory and Deltarune, and have been listening to The Happy Fits and Laufey recently. Good games, good music, good vibes!

Well that's all for now! Until next time ✨

@bd103@hachyderm.io avatar bd103 , to random

Hi friends! The 6th Bevy Game Jam (https://itch.io/jam/bevy-jam-6) is starting in just a few days. If you're considering joining, check out the newly-published prototype Bevy CLI!

The CLI makes it easy to setup a new Bevy project, build it for both native and web platforms, and lint it for common mistakes. We've just released v0.1.0-alpha.1 (https://github.com/TheBevyFlock/bevy_cli/releases/tag/cli-v0.1.0-alpha.1), and would love to gather feedback from fellow game jammers!

bd103 OP ,
@bd103@hachyderm.io avatar

If you want to see the CLI in action, as check out the bevy_new_2d template! (https://github.com/TheBevyFlock/bevy_new_2d) The contributors over there have also been hard at work preparing the template for the jam :)

@bd103@hachyderm.io avatar bd103 , to random

Hello people, I'm pleased to announce the third release of the Bevy Linter! The new v0.3.0 update brings 2 new lints, Bevy 0.16 support, a Github Action for using the linter in CI, documentation improvements, and more!

If you run into any issues installing or using the latest version, please feel free to open an issue in our issue tracker (https://github.com/TheBevyFlock/bevy_cli/issues) or reply to this post.

Until next time! :D

@bd103@hachyderm.io avatar bd103 , to random

Migration Writing Pass 1

The people have spoken! Based off of my writing pass in https://github.com/bevyengine/bevy-website/pull/2053, here's some of most interesting or useful breaking changes in Bevy 0.16.

1/7

bd103 OP ,
@bd103@hachyderm.io avatar

First, bevy::a11y::Focus has been replaced with the new bevy::input_focus::InputFocus type! Bevy 0.16 has a whole new system for input focus, which is how applications figure out which UI on your screen you are trying to interact with. For an example in your browser, press the "Tab" key to cycle through interactable items on your screen. The buttons or text boxes that get "highlighted" have the input focus, in this case!

(Also, note that there's currently a typo in that migration guide. I already opened a PR to fix it, though!)

https://bevyengine.org/learn/migration-guides/0-15-to-0-16/#replace-bevy-a11y-focus-with-bevy-input-focus-focus

2/7

bd103 OP ,
@bd103@hachyderm.io avatar

Well I wish I could give more highlights, but I've decided to stop my migration writing pass short for time and motivation reasons. I did manage to get through the first 61 guides, however! The other 80 will be left to other contributors (maybe even you!) to fix up :)

If you do want to learn more about Bevy 0.16's breaking changes, definitely check out the migration guide yourself. The most impactful changes are even noted at the very top of the page!

That's all for now!

https://bevyengine.org/learn/migration-guides/0-15-to-0-16/

@bd103@hachyderm.io avatar bd103 , to random

Hello! It's Lint Laundry Day, meaning I'll be spending the entirety of today working on the Bevy Linter! I'll be adding updates here showing what goes on behind-the-scenes of a project, which you can find at https://github.com/TheBevyFlock/bevy_cli.

ALT
bd103 OP ,
@bd103@hachyderm.io avatar

To begin, I'm going to continue my work improving the linter's documentation. Right now the lint group definitions are separated from the lints, meaning they're harder to discover! Let's move them a little closer together, and add examples on how to use them as well! (https://github.com/TheBevyFlock/bevy_cli/issues/320)

bd103 OP ,
@bd103@hachyderm.io avatar

And that concludes Lint Laundry Day! I ended up getting nerd-sniped by an inconsistent API change to Bevy's Query::many() method, so I spent the past few hours working on https://github.com/bevyengine/bevy/pull/18615.

Either way, that was a solid day of productive work. I hope you enjoyed the behind-the-scenes tour! :)

@bd103@hachyderm.io avatar bd103 , to random

Hi friends! I'm happy to announce the second release of the linter, bevy_lint v0.2.0! I and the other participants in the Bevy CLI working group have been hard at work building this release, and I'm really pleased with the result!

If you want to learn more and try out the linter yourself, I wrote a fun little blog post on it: https://bd103.github.io/blog/2025-03-19-bevy-lint-v0.2.0

(Just be warned, you may find yourself in need of sunglasses!)

@bd103@hachyderm.io avatar bd103 , to random

Hiya everyone! I hope you all have been having a fantastic winter break. Today I have nothing planned, which means my day is going to be filled with work on the game engine!

I have a full list of things to work on, so let's get started! I'll reply to this thread throughout the day with fun updates and insights. Here we go! :SpinningCube:

1/n

ALT
bd103 OP ,
@bd103@hachyderm.io avatar

My focus this morning was Bevy's benchmarks. Benchmarks are how we track performance of the engine over time, and make sure things stay fast and zippy! I've been doing some work refreshing them, and part of that work today was opening https://github.com/bevyengine/bevy/pull/16980!

This pull request migrates all of our imports of criterion::black_box() to core::hint::black_box(), which is faster because it uses compiler intrinsics.

For further reading on how black_box() works: https://doc.rust-lang.org/nightly/std/hint/fn.black_box.html#how-to-use-this

@bd103@hachyderm.io avatar bd103 , to random

It is with great pride that I announce the first release of bevy_lint, a custom linter for projects built with ! Use this to check for Bevy-specific footguns and optimizations, as well as enforce project-wide restrictions and standards. This is a project I spent the past 2 months building over in the ⁠bevy_cli working group with the intention of it eventually being upstreamed. While it's still currently unofficial, it's fleshed-out enough for early adopters to use in their own projects.

@bd103@hachyderm.io avatar bd103 , to random

The first lint is done and ready for review! Check it out at https://github.com/TheBevyFlock/bevy_cli/pull/84.

Oh... I guess I never formally introduced this project. Whoops!

Hi, I'm BD103, and I'm an active participant in the recently-formed bevy_cli working group. The CLI has a few goals, such as template generation and better WASM support, but the goal I'm most excited for, and have been spearheading, is the Bevy-specific linter!