- Cleanup `permitted_reuses` data (migration) [2244](https://github.com/opendatateam/udata/pull/2244)
- Proper form errors handling on nested fields [2246](https://github.com/opendatateam/udata/pull/2246)
- JS models load/save/update consistency (`loading` always `true` on query, always handle error, no more silent errors) [2247](https://github.com/opendatateam/udata/pull/2247)
- Ensures that date ranges are always positive (ie. `start` < `end`) [2253](https://github.com/opendatateam/udata/pull/2253)
- Enable completion on the "`MIME type`" resource form field (needs reindexing) [2238](https://github.com/opendatateam/udata/pull/2238)
- Ensure oembed rendering errors are not hidden by default error handlers and have cors headers [2254](https://github.com/opendatateam/udata/pull/2254)
- Handle dates before 1900 during indexing [2256](https://github.com/opendatateam/udata/pull/2256)
- `spatial load` command is more resilient: make use of a temporary collection when `--drop` option is provided (avoid downtime during the load), in case of exception or keybord interrupt, temporary files and collections are cleaned up [2261](https://github.com/opendatateam/udata/pull/2261)
- Configurable Elasticsearch timeouts. Introduce `ELASTICSEARCH_TIMEOUT` as default/read timeout and `ELASTICSEARCH_INDEX_TIMEOUT` as indexing/write timeout [2265](https://github.com/opendatateam/udata/pull/2265)
- OEmbed support for organizations [2273](https://github.com/opendatateam/udata/pull/2273)
- Extract search parameters as settings allowing fine tuning search without repackaging udata (see [the **Search configuration** documentation](https://udata.readthedocs.io/en/stable/adapting-settings/#search-configuration)) [2275](https://github.com/opendatateam/udata/pull/2275)
- Prevent `DoesNotExist` error in activity API: silence the error for the consumer but log it (ie. visible in Sentry) [2268](https://github.com/opendatateam/udata/pull/2268)
- Optimize CSV export generation memory wise [2277](https://github.com/opendatateam/udata/pull/2277)