Skip to content

Commit 0b7b559

Browse files
authored
Merge branch 'makspll:main' into main
2 parents 6fb3eae + 040cc4a commit 0b7b559

File tree

14 files changed

+126
-16
lines changed

14 files changed

+126
-16
lines changed

CHANGELOG.md

+19
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
# Changelog
22

3+
## [0.12.0](https://github.com/makspll/bevy_mod_scripting/compare/v0.11.1...v0.12.0) - 2025-04-07
4+
5+
### Added
6+
7+
- improve errors when entity is unavailable ([#410](https://github.com/makspll/bevy_mod_scripting/pull/410))
8+
- [**breaking**] Add `BMSPlugin` group, feature flag for bindings per bevy crate & add script global filter options ([#408](https://github.com/makspll/bevy_mod_scripting/pull/408))
9+
- The CoreScriptGlobalsPlugin now also stores options for filtering registered globals, which can be changed.
10+
- add option to emit response event on each callback & `RunScriptCallback` command for "once-off" callbacks ([#403](https://github.com/makspll/bevy_mod_scripting/pull/403))
11+
### Fixed
12+
13+
- `lua54` feature being forced ([#413](https://github.com/makspll/bevy_mod_scripting/pull/413))
14+
- `GetTypeDependency` derive macro using the wrong path for `bms_core` ([#409](https://github.com/makspll/bevy_mod_scripting/pull/409))
15+
16+
### Other
17+
18+
- add script loading benchmark ([#411](https://github.com/makspll/bevy_mod_scripting/pull/411))
19+
- refactor `ReflectReference` internally ([#406](https://github.com/makspll/bevy_mod_scripting/pull/406))
20+
- reduces size of `ScriptValue` to 64 bytes, moves some dynamic function methods into function info ([#404](https://github.com/makspll/bevy_mod_scripting/pull/404))
21+
322
## [0.11.1](https://github.com/makspll/bevy_mod_scripting/compare/v0.11.0...v0.11.1) - 2025-03-29
423

524
### Added

Cargo.toml

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bevy_mod_scripting"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
authors = ["Maksymilian Mozolewski <[email protected]>"]
55
edition = "2021"
66
license = "MIT OR Apache-2.0"
@@ -76,18 +76,18 @@ profile_with_tracy = ["bevy/trace_tracy"]
7676
[dependencies]
7777
bevy = { workspace = true }
7878
bevy_mod_scripting_core = { workspace = true }
79-
bevy_mod_scripting_lua = { path = "crates/languages/bevy_mod_scripting_lua", version = "0.11.1", optional = true }
80-
bevy_mod_scripting_rhai = { path = "crates/languages/bevy_mod_scripting_rhai", version = "0.11.1", optional = true }
79+
bevy_mod_scripting_lua = { path = "crates/languages/bevy_mod_scripting_lua", version = "0.12.0", optional = true }
80+
bevy_mod_scripting_rhai = { path = "crates/languages/bevy_mod_scripting_rhai", version = "0.12.0", optional = true }
8181
# bevy_mod_scripting_rune = { path = "crates/languages/bevy_mod_scripting_rune", version = "0.9.0-alpha.2", optional = true }
8282
bevy_mod_scripting_functions = { workspace = true }
8383
bevy_mod_scripting_derive = { workspace = true }
8484

8585
[workspace.dependencies]
8686
profiling = { version = "1.0" }
8787
bevy = { version = "0.15.3", default-features = false }
88-
bevy_mod_scripting_core = { path = "crates/bevy_mod_scripting_core", version = "0.11.1" }
89-
bevy_mod_scripting_functions = { path = "crates/bevy_mod_scripting_functions", version = "0.11.1", default-features = false }
90-
bevy_mod_scripting_derive = { path = "crates/bevy_mod_scripting_derive", version = "0.11.1" }
88+
bevy_mod_scripting_core = { path = "crates/bevy_mod_scripting_core", version = "0.12.0" }
89+
bevy_mod_scripting_functions = { path = "crates/bevy_mod_scripting_functions", version = "0.12.0", default-features = false }
90+
bevy_mod_scripting_derive = { path = "crates/bevy_mod_scripting_derive", version = "0.12.0" }
9191

9292
# test utilities
9393
script_integration_test_harness = { path = "crates/testing_crates/script_integration_test_harness" }
@@ -101,7 +101,7 @@ bevy_console = "0.13"
101101
# rhai-rand = "0.1"
102102
criterion = { version = "0.5" }
103103
ansi-parser = "0.9"
104-
ladfile_builder = { path = "crates/ladfile_builder", version = "0.3.1" }
104+
ladfile_builder = { path = "crates/ladfile_builder", version = "0.3.2" }
105105
script_integration_test_harness = { workspace = true }
106106
test_utils = { workspace = true }
107107
libtest-mimic = "0.8"

crates/bevy_mod_scripting_core/CHANGELOG.md

+17
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.0](https://github.com/makspll/bevy_mod_scripting/compare/bevy_mod_scripting_core-v0.11.1...bevy_mod_scripting_core-v0.12.0) - 2025-04-07
11+
12+
### Added
13+
14+
- improve errors when entity is unavailable ([#410](https://github.com/makspll/bevy_mod_scripting/pull/410))
15+
- [**breaking**] Add `BMSPlugin` group, feature flag for bindings per bevy crate & add script global filter options ([#408](https://github.com/makspll/bevy_mod_scripting/pull/408))
16+
- add option to emit response event on each callback & `RunScriptCallback` command for "once-off" callbacks ([#403](https://github.com/makspll/bevy_mod_scripting/pull/403))
17+
18+
### Fixed
19+
20+
- `lua54` feature being forced ([#413](https://github.com/makspll/bevy_mod_scripting/pull/413))
21+
22+
### Other
23+
24+
- refactor `ReflectReference` internally ([#406](https://github.com/makspll/bevy_mod_scripting/pull/406))
25+
- reduces size of `ScriptValue` to 64 bytes, moves some dynamic function methods into function info ([#404](https://github.com/makspll/bevy_mod_scripting/pull/404))
26+
1027
## [0.11.0](https://github.com/makspll/bevy_mod_scripting/compare/bevy_mod_scripting_core-v0.10.0...bevy_mod_scripting_core-v0.11.0) - 2025-03-29
1128

1229
### Added

crates/bevy_mod_scripting_core/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bevy_mod_scripting_core"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
authors = ["Maksymilian Mozolewski <[email protected]>"]
55
edition = "2021"
66
license = "MIT OR Apache-2.0"

crates/bevy_mod_scripting_derive/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.0](https://github.com/makspll/bevy_mod_scripting/compare/bevy_mod_scripting_derive-v0.11.1...bevy_mod_scripting_derive-v0.12.0) - 2025-04-07
11+
12+
### Fixed
13+
14+
- Derive `GetTypeDependency` without explicit "core" dependency. ([#409](https://github.com/makspll/bevy_mod_scripting/pull/409))
15+
1016
## [0.11.0](https://github.com/makspll/bevy_mod_scripting/compare/bevy_mod_scripting_derive-v0.10.0...bevy_mod_scripting_derive-v0.11.0) - 2025-03-29
1117

1218
### Added

crates/bevy_mod_scripting_derive/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bevy_mod_scripting_derive"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
edition = "2021"
55
authors = ["Maksymilian Mozolewski <[email protected]>"]
66
license = "MIT OR Apache-2.0"

crates/bevy_mod_scripting_functions/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.0](https://github.com/makspll/bevy_mod_scripting/compare/bevy_mod_scripting_functions-v0.11.1...bevy_mod_scripting_functions-v0.12.0) - 2025-04-07
11+
12+
### Added
13+
14+
- [**breaking**] Add `BMSPlugin` group, feature flag for bindings per bevy crate & add script global filter options ([#408](https://github.com/makspll/bevy_mod_scripting/pull/408))
15+
1016
## [0.11.0](https://github.com/makspll/bevy_mod_scripting/compare/bevy_mod_scripting_functions-v0.10.0...bevy_mod_scripting_functions-v0.11.0) - 2025-03-29
1117

1218
### Added

crates/bevy_mod_scripting_functions/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bevy_mod_scripting_functions"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
edition = "2021"
55
authors = ["Maksymilian Mozolewski <[email protected]>"]
66
license = "MIT OR Apache-2.0"
@@ -33,8 +33,8 @@ uuid = "1.11"
3333
smol_str = "0.2.2"
3434
bevy_mod_scripting_core = { workspace = true }
3535
bevy_mod_scripting_derive = { workspace = true }
36-
bevy_mod_scripting_lua = { path = "../languages/bevy_mod_scripting_lua", optional = true, version = "0.11.1" }
37-
bevy_mod_scripting_rhai = { path = "../languages/bevy_mod_scripting_rhai", optional = true, version = "0.11.1" }
36+
bevy_mod_scripting_lua = { path = "../languages/bevy_mod_scripting_lua", optional = true, version = "0.12.0" }
37+
bevy_mod_scripting_rhai = { path = "../languages/bevy_mod_scripting_rhai", optional = true, version = "0.12.0" }
3838
bevy_system_reflection = { path = "../bevy_system_reflection", version = "0.1.1" }
3939

4040
[lints]

crates/lad_backends/mdbook_lad_preprocessor/CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.1.7](https://github.com/makspll/bevy_mod_scripting/compare/v0.1.6-mdbook_lad_preprocessor...v0.1.7-mdbook_lad_preprocessor) - 2025-04-07
11+
12+
### Added
13+
14+
- improve errors when entity is unavailable ([#410](https://github.com/makspll/bevy_mod_scripting/pull/410))
15+
16+
### Fixed
17+
18+
- links in type functions ([#412](https://github.com/makspll/bevy_mod_scripting/pull/412))
19+
1020
## [0.1.6](https://github.com/makspll/bevy_mod_scripting/compare/v0.1.5-mdbook_lad_preprocessor...v0.1.6-mdbook_lad_preprocessor) - 2025-03-29
1121

1222
### Fixed

crates/lad_backends/mdbook_lad_preprocessor/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mdbook_lad_preprocessor"
3-
version = "0.1.6"
3+
version = "0.1.7"
44
edition = "2021"
55
authors = ["Maksymilian Mozolewski <[email protected]>"]
66
license = "MIT OR Apache-2.0"

crates/ladfile_builder/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ladfile_builder"
3-
version = "0.3.1"
3+
version = "0.3.2"
44
edition = "2021"
55
authors = ["Maksymilian Mozolewski <[email protected]>"]
66
license = "MIT OR Apache-2.0"

crates/languages/bevy_mod_scripting_lua/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bevy_mod_scripting_lua"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
authors = ["Maksymilian Mozolewski <[email protected]>"]
55
edition = "2021"
66
license = "MIT OR Apache-2.0"

crates/languages/bevy_mod_scripting_rhai/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bevy_mod_scripting_rhai"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
authors = ["Maksymilian Mozolewski <[email protected]>"]
55
edition = "2021"
66
license = "MIT OR Apache-2.0"

release-notes/0.12.0.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# [`bevy_mod_scripting`](https://github.com/makspll/bevy_mod_scripting/) 0.12.0 is out!
2+
3+
![image](https://github.com/user-attachments/assets/6ae0f927-ea1b-4d90-a809-4cc513e49b18)
4+
5+
## Summary
6+
7+
### Fine grained imports & BMSPlugin
8+
`BMSPlugin` is now all you need to add to your app following the selection of the features you care about:
9+
```rust
10+
app.add_plugins(BMSPlugin);
11+
```
12+
Since this is a plugin group, you can also override any individual plugins that make up `BMS` by using `.set` i.e.:
13+
```rust
14+
app.add_plugins(BMSPlugin.set(CoreScriptGlobalsPlugin::default()));
15+
```
16+
17+
The `bevy_bindings` feature flag has been replaced by fine-grained feature flags for each bevy module which contains the generated bindings corresponding to the upstream crate.
18+
The script functions plugin now automatically registers the bindings according to these feature flags. This should help cut down on compilation times, and control bindings.
19+
20+
The `CoreScriptGlobalsPlugin` now also stores options for filtering registered globals, which can be changed.
21+
22+
### Callback responses
23+
It is now possible to request that a `ScriptCallbackResponseEvent` event is emitted on custom callbacks.
24+
25+
You can do this at the time of creation of `ScriptCallbackEvent` triggers like so:
26+
```rust
27+
ScriptCallbackEvent::new_for_all(YourCallbackLabel, vec![my_arg])
28+
.with_response();
29+
```
30+
31+
### Optimisations
32+
- `ScriptValue` is reduced in size to 64 bytes, improving performance all-around
33+
- `ReflectReference` was refactored internally, to make slightly more sense
34+
- Script loading performance benchmarks have been added
35+
36+
### Fixes
37+
- since `0.11.0` the crate has silently been pulling in `mlua` with the `lua54` feature, which meant you could not select another lua version. This has been fixed
38+
- the bug, causing the `GetTypeDependencies` derive macro to use the wrong path for `bms_core` had been fixed (thanks @shanecelis)
39+
### Other
40+
- Calls using the script's entity when it's not available will now error, the error will point the user towards resolution helpfuly.
41+
42+
## Changelog
43+
See a detailed changelog [here](https://github.com/makspll/bevy_mod_scripting/blob/main/CHANGELOG.md)
44+
45+
## Migration Guide
46+
Stop registering individual plugins like `ScriptFunctionsPlugin` and `LuaScriptingPlugin` and instead register `BMSPlugin`.
47+
48+
If you did not want to include bevy bindings, make sure to disable the feature flags by using BMS without default features, similarly for the core functions.
49+
50+
Any customisations to sub-plugins can be performed as usual through the plugin group's `.set(PluginName::default()...)`.
51+
52+
The feature flag bevy_bindings is replaced by the fine grained feature flags for each bevy module, replace usages of this flag with all the modules you expect to use in scripts.

0 commit comments

Comments
 (0)