Skip to content

Upgrade to Bevy 0.20 and prepare 0.3.0 - #2

Merged
korbindeman merged 1 commit into
mainfrom
cursor/bevy-0-20-upgrade-9eb7
Oct 15, 2026
Merged

korbindeman merged 1 commit into
mainfrom
cursor/bevy-0-20-upgrade-9eb7

Conversation

@korbindeman

Copy link
Copy Markdown
Owner

This upgrades bevy_erosion_filter from Bevy 0.19 to Bevy 0.20 and prepares crate release 0.3.0. It does not publish to crates.io or create tags/releases.

Version bumps

  • Crate: 0.2.0 → 0.3.0
  • bevy: 0.19 → 0.20
  • glam: 0.32 → 0.33 (Bevy 0.20 uses glam 0.33)
  • bevy_egui: 0.40.1 → 0.43
  • MSRV: Rust 1.89 → 1.97 (matches Bevy 0.20's rust-version)

Shader import path (checked against Bevy 0.20 source)

I did not take the migration guide's WESL / #define_import_path wording on faith. In the v0.20.0 tag:

  • #define_import_path is gone. Shader::from_wgsl no longer runs naga_oil preprocessing, and a repo search for define_import_path returns nothing.
  • WESL import paths come from the asset path. For embedded://bevy_foo/bar.wesl, Bevy registers bevy_foo::bar.
  • load_shader_library!(app, "erosion.wesl") from src/lib.rs therefore embeds embedded://bevy_erosion_filter/erosion.wesl and keeps the public import bevy_erosion_filter::erosion.

The library shader moved to src/erosion.wesl (still plain WGSL with no preprocessor, so EROSION_WGSL remains usable with raw wgpu). The terrain demo is now WESL:

  • #import bevy_pbr::… → import bevy_pbr::render::…;
  • #{MATERIAL_BIND_GROUP} → constants::MATERIAL_BIND_GROUP

Docs

  • README Bevy compatibility table: 0.1 → 0.18, 0.2 → 0.19, 0.3 → 0.20
  • CHANGELOG 0.3.0 entry

Verification

  • cargo build --all-targets
  • cargo test --all-targets (5 CPU tests passed; terrain_demo compiles)
  • cargo clippy --all-targets -- -D warnings
  • cargo fmt --check
  • cargo package --allow-dirty

I could not run the terrain demo in a GUI here; CI should still compile it as part of --all-targets.

Open in Web Open in Cursor 

Move the shader library to src/erosion.wesl so the public
bevy_erosion_filter::erosion import still works after Bevy 0.20
removed #define_import_path. Convert the terrain demo to WESL and
bump glam and bevy_egui to compatible versions.

Co-authored-by: Korbin de Man <korbindeman@users.noreply.github.com>
@korbindeman
korbindeman marked this pull request as ready for review October 15, 2026 03:10
@korbindeman
korbindeman merged commit e5ae5a8 into main Oct 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants