# Breaking Changes / Migration Guides
## v0.2.x to 0.3
### Updated Imports
- `bevy_auto_plugin::auto_plugin::*` -> `use bevy_auto_plugin::flat_file::prelude::*`
- `bevy_auto_plugin::auto_plugin_module::*` -> `use bevy_auto_plugin::module::prelude::*`
## v0.3 to v0.4
### Specifying generics now uses `generics(T1, T2, ..)`
`#[auto_*(*<*>)]` -> `#[auto_*(generics(*))]`
- enable `legacy_path_param` until you have replaced all usages
- find replace regex:
```regexp
/(auto_\w+)\(\w+<(.*?)>\)/\1(generics(\2))/
```
- for some attributes you can now specify multiple sets `#[auto_(generics(u8, bool), generics(u8, u32))]`
### Enable `flat_file`, `module` modes
- by default flat_file and module modes are not enabled, if you use them enable their respective features:
`features = ["mode_flat_file", "mode_module"]` or `features = ["all_modes"]`
- if you were using the flat_file mode, you might also need to enable `flat_file_lang_server_noop` feature as it's no longer enabled by default
### Updated Imports
- `use bevy_auto_plugin::flat_file::prelude::*` -> `use bevy_auto_plugin::modes::flat_file::prelude::*`
- `use bevy_auto_plugin::module::prelude::*` -> `use bevy_auto_plugin::modes::module::prelude::*`
## v0.4 to v0.5
### `global_auto_plugin(..)` is now just `auto_plugin(..)`
### `auto_plugin(app=..)` is now `auto_plugin(app_param=..)` across all modes
### `flat_file` and `module` modes are deprecated
- [see feedback issue if you are using these modes](https://github.com/StrikeForceZero/bevy_auto_plugin/issues/19) or use `global`
- enable `ignore_flat_file_or_module_deprecation` to disable deprecation warnings if you commented and provided a use case for keeping the modes
## v0.5 to v0.6
### `auto_add_event` is now `auto_add_message`
### `auto_event` changed
- no longer supports buffered events (use `auto_message`)
- now requires specifying if it's an `target(global)` or `target(entity)` based `Event` and `EntityEvent` respectively.
## v0.6 to v0.7
- no longer depending on `bevy_reflect` - if applicable, you can remove the hotfix from your `Cargo.toml`:
```toml
[build-dependencies]
bevy_reflect = { version = "0.17", features = ["documentation"] }
```
### `flat_file` and `module` modes were removed
### Updated Imports
- `use bevy_auto_plugin::modes::global::prelude::*` -> `use bevy_auto_plugin::prelude::*`
## 0.7 to v0.8
- Deprecated `#[auto_plugin]` params `impl_generic_plugin_trait`, use `impl_plugin_trait` instead.
- `Send + Sync + 'static` are automatically constrained for all generics when `impl_plugin_trait` is set.
- Deprecated params `impl_generic_auto_plugin_trait`. Remove.
- `AutoPlugin` is now always implemented when deriving `AutoPlugin`
- Removed `generics` from `auto_init_state` and `auto_state` - There should be no valid use cases for this but if you have one and were using it please open an issue.