## `esp-hal@0.16.x` Migration Guide
This release consolidates the various chip-specific HAL packages into a single package, `esp-hal`. Projects which previously depended on the chip-specific packages (`esp32-hal`, `esp32c3-hal`, etc.) should be updated to use `esp-hal` instead.
We now have self-hosted documentation built for each supported chip! See https://docs.esp-rs.org/ for more details.
In order to migrate your project to the latest release, please follow the short guide below.
If you encounter any issues during the migration process, please [open an issue], and we will do our best to resolve them as expediently as possible.
[open an issue]: https://github.com/esp-rs/esp-hal/issues/new
### Migrating to `esp-hal`
In general, only two steps should be required for this migration:
- Update your dependencies in the Cargo manifest
- Update any references to the HAL in your project's source files
Depending on which features you are using, there may be some additional changes required. Please refer to the [`esp-hal` documentation] for a full list of features.
[`esp-hal` documentation]: https://docs.esp-rs.org/
#### Updating Dependencies
First, update your dependencies in `Cargo.toml` and enable the appropriate feature for the chip being targeted.
For example, if your project previously depended on `esp32c3-hal` then open your project's `Cargo.toml` file and make the following change:
```diff
- esp32c3-hal = "0.15.0"
+ esp-hal = { version = "0.16.0", features = ["esp32c3"] }
```
#### Update Imports
Next, update any references to the chip-specific HAL package (e.g. `esp32c3-hal`) in your project's source files. This can likely be done with a global search-and-replace in your favourite text editor.
In general this will only affect imports, e.g.:
```diff
- use esp32c3_hal::*;
+ use esp_hal::*;
```