Major release
This is a major `dlt` release (as per our [semantic versioning]()https://github.com/dlt-hub/dlt?tab=readme-ov-file#adding-as-dependency). It brings several interesting new features like: [schema evolution control](https://dlthub.com/docs/general-usage/schema-contracts), [data contracts](https://dlthub.com/docs/general-usage/schema-contracts#use-pydantic-models-for-data-validation), [deeper Pydantic integration](https://dlthub.com/docs/general-usage/resource#define-a-schema-with-pydantic), parametrized destinations, [improvements to parallelism](https://dlthub.com/docs/reference/performance#running-several-pipelines-in-parallel-in-single-process) and data lineage + many more
There are no significant breaking changes, but minor ones exist, please refer to 763 for details
Core Library
* Parametrized destinations - import destinations from `dlt.destinations` module and instantiate them: by steinitzu in https://github.com/dlt-hub/dlt/pull/746
* schema and data contracts by sh-rp in https://github.com/dlt-hub/dlt/pull/594
* load package id in extract step by rudolfix in https://github.com/dlt-hub/dlt/pull/790
* named destinations: configure many destinations with different names by sh-rp in https://github.com/dlt-hub/dlt/pull/783
* rich tracing information from pipeline steps (extract, normalize, load) by rudolfix in https://github.com/dlt-hub/dlt/pull/801
* adds exception stack to pipeline trace by rudolfix in https://github.com/dlt-hub/dlt/pull/806
* fixed attribute check: getuid -> geteuid by jorritsandbrink in https://github.com/dlt-hub/dlt/pull/823
* allows to run parallel pipelines in separate threads by rudolfix in https://github.com/dlt-hub/dlt/pull/813
* 791 test mssql credentialspy is odbc driver 18 dependent by jorritsandbrink in https://github.com/dlt-hub/dlt/pull/834
* adds extract and normalize traces by rudolfix in https://github.com/dlt-hub/dlt/pull/839
Plus some tooling changes
* introduce black formatting by sh-rp in https://github.com/dlt-hub/dlt/pull/583
* Fix: ensure accessor typing does not make static type checker error by z3z1ma in https://github.com/dlt-hub/dlt/pull/785
* Hot fix: add skipifgithubfork to nested_data example by AstrakhantsevaAA in https://github.com/dlt-hub/dlt/pull/802
* Fix Windows lint issue and implement CI lint matrix strategy by jorritsandbrink in https://github.com/dlt-hub/dlt/pull/827
Docs
* documents schema and data contract by rudolfix in https://github.com/dlt-hub/dlt/pull/782
* Added Kinesis documentation. by dat-a-man in https://github.com/dlt-hub/dlt/pull/804
* 788 clarify docs intro by deanja in https://github.com/dlt-hub/dlt/pull/797
* Fix links to source code by AstrakhantsevaAA in https://github.com/dlt-hub/dlt/pull/805
* Clarify docs dev process by deanja in https://github.com/dlt-hub/dlt/pull/809
* Qdrant ingestion pipeline example eg by hibajamal in https://github.com/dlt-hub/dlt/pull/775
* Personio doc: added more endpoints by AstrakhantsevaAA in https://github.com/dlt-hub/dlt/pull/829
New Contributors
* deanja made their first contribution in https://github.com/dlt-hub/dlt/pull/797
* IlyaFaer made their first contribution in https://github.com/dlt-hub/dlt/pull/820
* jorritsandbrink made their first contribution in https://github.com/dlt-hub/dlt/pull/823
**Full Changelog**: https://github.com/dlt-hub/dlt/compare/0.3.25...0.4.1