- **Release highlight:** Sample-selections models as `DoubleMLSMM` class (by [Michaela Kecskésová](https://github.com/mychaelka)) [#231](https://github.com/DoubleML/doubleml-for-py/pull/231) [#235](https://github.com/DoubleML/doubleml-for-py/pull/235) [#171](https://github.com/DoubleML/doubleml-docs/pull/171)
- **API change:** Remove options `apply_crossfitting` and `dml_procedure` from the `DoubleML` class [227](https://github.com/DoubleML/doubleml-for-py/pull/227) [#166](https://github.com/DoubleML/doubleml-docs/pull/166)
- Restructure the package to improve readability and maintainability [225](https://github.com/DoubleML/doubleml-for-py/pull/225)
- Add a `DoubleMLFramework` class to combine multiple DoubleML models (aggregation of estimates, bootstrap, and CI-procedures [226](https://github.com/DoubleML/doubleml-for-py/pull/226) [#169](https://github.com/DoubleML/doubleml-docs/pull/169)
- Enable the use of external predictions for short models in benchmarks (by [Lucien](https://github.com/lucien1011)) [#238](https://github.com/DoubleML/doubleml-for-py/pull/238) [#239](https://github.com/DoubleML/doubleml-for-py/pull/239)
- Add the `gain_statistics` to `utils` for sensitivity analysis [229](https://github.com/DoubleML/doubleml-for-py/pull/229)
- Maintenance documentation [162](https://github.com/DoubleML/doubleml-docs/pull/162) [#163](https://github.com/DoubleML/doubleml-docs/pull/163) [#164](https://github.com/DoubleML/doubleml-docs/pull/164) [#165](https://github.com/DoubleML/doubleml-docs/pull/165) [#167](https://github.com/DoubleML/doubleml-docs/pull/167) [#168](https://github.com/DoubleML/doubleml-docs/pull/168)
- Maintenance package [225](https://github.com/DoubleML/doubleml-for-py/pull/225) [#229](https://github.com/DoubleML/doubleml-for-py/pull/229) [#246](https://github.com/DoubleML/doubleml-for-py/pull/246)