|
| 1 | +# [`bevy_mod_scripting`](https://github.com/makspll/bevy_mod_scripting/) 0.9.0 is out! |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +## Summary |
| 6 | +- The entire crate was completely re-written |
| 7 | +- We cut down the number of crates, moving most common functionality into the core crate and removing all the horrible macros |
| 8 | +- All of the systems have been made more robust and testable |
| 9 | +- The crate is now completely panic free! |
| 10 | +- The script lifecycle is automatically tied to script assets, loading and unloading assets and placing `ScriptComponent`'s on entities is all you need to do to manage the complexities of creating, updating, deleting and hot-loading script state. |
| 11 | +- A new `ScriptValue` abstraction allows us to centrally define and register dynamic script functions which automatically register their type dependencies with the `AppTypeRegistry` |
| 12 | +- New language implementations do not need to re-implement all of the bevy bindings, they simply need to provide a dynamic calling mechanism, and dispatch operators to the right functions |
| 13 | +- Bevy bindings generation is completely decoupled from `mlua`, in fact the BMS crate gets injected into the process of compiling `bevy` and in doing so we can look for types which implement `IntoScript` and `FromScript`, allowing us to react to changes in those trait implementations in picking which functions to generate registrations for. |
| 14 | +- The `APIProvider` traits as well as the `API` terminology were gotten rid of in favour of configuration resources with stored function pointers, as well as more specific `bindings` terminology |
| 15 | +- We now publish a brand new [book](https://makspll.github.io/bevy_mod_scripting/), which should help onboard new consumers and make the crate much easier to use! |
| 16 | +- The entire dev experience has been transformed thanks to the `xtask` pattern, contributing to `BMS` has never been easier! |
| 17 | + |
| 18 | +## Removed |
| 19 | +- We removed `tealr` and the `teal` integration, meaning interacting with Lua is much simpler. |
| 20 | + |
| 21 | +## On pause |
| 22 | +- We put documentation generation features as well as `rune` support on pause, to accelerate going forward. But there is nothing stopping us from re-implementing those features, and in fact generating documentation will be infinitely easier given we have trait level access to all dynamic functions! |
| 23 | + |
| 24 | +## Migration Guide |
| 25 | +I am not publishing a migration guide, simply because the easiest way to migrate to 0.9.0 is to start from scratch! EVERYTHING is different, and hence I'd reccomend walking through the docs, and re-implenenting the crate. |
| 26 | + |
| 27 | +## Changelog |
| 28 | +See a detailed changelog [here](https://github.com/makspll/bevy_mod_scripting/blob/main/CHANGELOG.md) |
0 commit comments