- rename doe, write_does and load_does to `sweep` module `read_sweep`, `write_sweep` ...
- Route and Routes are pydantic.BaseModel instead of dataclasses
- composed functions get a unique name. You can compose functions with `toolz.compose`
- add `gf.add_text` for adding text labels to a list of Components
- add `gf.typings.ComponentSweep`
- increase MAX_NAME_LENGTH to 100 characters when validating a component
- add typing_extensions to requirements to keep 3.7 compatibility. Changed `from typing import Literal` (requires python>=3.8) to `from typing_extensions import Literal`
- add type checking error messages for Component and ComponentReference
- add type checking pydantic validator for Label
- replace `phidl.device_layout.Label` with `gf.Label`
- Route has an Optional list of Label, in case route fails, or in case you want to add connectivity labels