Release 0.4.0 (#795)

Co-authored-by: Daniel McNab <36049421+DJMcNab@users.noreply.github.com>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3bdd697..7ea7ef1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,18 +8,24 @@
 
 # Changelog
 
-The latest published Vello release is [0.3.0](#030---2024-10-04) which was released on 2024-10-04.
-You can find its changes [documented below](#030---2024-10-04).
+The latest published Vello release is [0.4.0](#040---2025-01-20) which was released on 2025-01-20.
+You can find its changes [documented below](#040---2025-01-20).
 
 ## [Unreleased]
 
 This release has an [MSRV][] of 1.82.
 
+## [0.4.0][] - 2025-01-20
+
+This release has an [MSRV][] of 1.82.
+
 ### Highlights
 
 As part of an initiative to improve color handling across the ecosystem (and especially within Linebender crates), Vello is now using the new [`color`] crate.
 This is the first step towards providing richer color functionality, better handling of color interpolation, and more.
 
+This release intentionally uses `wgpu` 23.0.1 rather than 24.0.0 so that it can match the version used in Bevy 0.15.
+
 ### Changed
 
 - Breaking: Updated `wgpu` to 23.0.1 ([#735][], [#743][] by [@waywardmonkeys])
@@ -228,7 +234,8 @@
 [#792]: https://github.com/linebender/vello/pull/792
 [#796]: https://github.com/linebender/vello/pull/796
 
-[Unreleased]: https://github.com/linebender/vello/compare/v0.3.0...HEAD
+[Unreleased]: https://github.com/linebender/vello/compare/v0.4.0...HEAD
+[0.4.0]: https://github.com/linebender/vello/compare/v0.3.0...v0.4.0
 <!-- Note that this still comparing against 0.2.0, because 0.2.1 is a cherry-picked patch -->
 [0.3.0]: https://github.com/linebender/vello/compare/v0.2.0...v0.3.0
 [0.2.1]: https://github.com/linebender/vello/compare/v0.2.0...v0.2.1
diff --git a/Cargo.lock b/Cargo.lock
index 7554801..eef7b76 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2479,7 +2479,7 @@
 
 [[package]]
 name = "vello"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "bytemuck",
  "futures-intrusive",
@@ -2497,7 +2497,7 @@
 
 [[package]]
 name = "vello_encoding"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "bytemuck",
  "guillotiere",
@@ -2508,7 +2508,7 @@
 
 [[package]]
 name = "vello_shaders"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "bytemuck",
  "naga",
diff --git a/Cargo.toml b/Cargo.toml
index 67ec9b0..c63a691 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,7 +22,7 @@
 #       version in the dependencies section at the bottom of this file.
 #       Additionally, bump the Vello dependency version in the 'simple'
 #       and `simple_sdl2` examples.
-version = "0.3.0"
+version = "0.4.0"
 
 edition = "2021"
 # Keep in sync with RUST_MIN_VER in .github/workflows/ci.yml, with the relevant README.md files
@@ -94,9 +94,9 @@
 # END LINEBENDER LINT SET
 
 [workspace.dependencies]
-vello = { version = "0.3.0", path = "vello" }
-vello_encoding = { version = "0.3.0", path = "vello_encoding" }
-vello_shaders = { version = "0.3.0", path = "vello_shaders" }
+vello = { version = "0.4.0", path = "vello" }
+vello_encoding = { version = "0.4.0", path = "vello_encoding" }
+vello_shaders = { version = "0.4.0", path = "vello_shaders" }
 bytemuck = { version = "1.21.0", features = ["derive"] }
 skrifa = "0.26.4"
 # The version of kurbo used below should be kept in sync
diff --git a/examples/simple/Cargo.toml b/examples/simple/Cargo.toml
index 78b84d1..3873b3b 100644
--- a/examples/simple/Cargo.toml
+++ b/examples/simple/Cargo.toml
@@ -12,7 +12,7 @@
 [dependencies]
 # When using this example outside of the original Vello workspace,
 # remove the path property of the following Vello dependency requirement.
-vello = { version = "0.3.0", path = "../../vello" }
+vello = { version = "0.4.0", path = "../../vello" }
 anyhow = "1.0.93"
 pollster = "0.4.0"
 winit = "0.30.8"
diff --git a/examples/simple_sdl2/Cargo.toml b/examples/simple_sdl2/Cargo.toml
index 0e2628f..874e7f1 100644
--- a/examples/simple_sdl2/Cargo.toml
+++ b/examples/simple_sdl2/Cargo.toml
@@ -12,6 +12,6 @@
 [dependencies]
 # When using this example outside of the original Vello workspace,
 # remove the path property of the following Vello dependency requirement.
-vello = { version = "0.3.0", path = "../../vello" }
+vello = { version = "0.4.0", path = "../../vello" }
 pollster = "0.4.0"
 sdl2 = { version = "0.37.0", features = ["raw-window-handle", "bundled"] }