diff --git a/CHANGELOG.md b/CHANGELOG.md index 840a22512..162e68ce1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,105 @@ # Changelog +## [2.60.0] - 2026-09-11 + +### API-Changes + +- [**breaking**] remove a relay immediately instead of unpublishing it. + - `set_transport_unpublished()` is removed: UIs call `delete_transport()` when the user removes a relay. + - `list_transports_ex()` and the `TransportListEntry` type are removed: use `list_transports()`. + - `delete_transport()` no longer refuses to remove the primary transport: it refuses only to remove the last one and re-elects the sending transport as needed. + - `TransportsModified` is now also emitted on the device modifying the transports, not only on devices applying the synced change. +- [**breaking**] do not load webxdc icon if it has too large dimensions. + - `get_webxdc_blob()` may fail to load `icon.png` or `icon.jpg` if image dimensions are too large. + Fixing the issue discovered by https://github.com/Sergei768 +- Generate JSON-RPC headers at build time ([#8350](https://github.com/chatmail/core/pull/8350)). +- Generate Qt JSON-RPC bindings ([#8330](https://github.com/chatmail/core/pull/8330)). + +### Features / Changes + +- Introduce keyupdate messages informing contacts about relay changes. +- Remove `Final-Recipient` from MDNs (and keyupdates). +- Carry all published relay addresses in securejoin links ([#8591](https://github.com/chatmail/core/pull/8591)). +- Use display name for contacts in encryption info ([#8609](https://github.com/chatmail/core/pull/8609)). +- Do not create device messages for IMAP authentication errors. +- Delete avatars referred to by parameters of special contacts. +- Import `Autocrypt-Gossip` keys without checking the addresses. +- Ignore `Chat-Disposition-Notification-To` value. +- Increase `sys.msgsize_max_recommended` to match chatmail relay message size limit. + +### Fixes + +- Do not try to load profile image from param for self. +- Send legacy securejoin key requests as `multipart/mixed` so they are not rejected by chatmail relays. +- rpc: avoid hang when requests race a dying rpc-server. +- Take `timestamp_rcvd` into account in `estimate_deletion_cnt`. +- Reliably complete configuration with progress=1000 or progress=0. +- Make `create_send_msg_jobs` actually return row IDs. +- Don't notify of missed call from blocked user. +- Trash MDNs that reference no message early. +- Return no relay address for key-contacts without an address. +- Do not emit events in `set_profile_image()` if contact avatar is unchanged. +- Remove `Original-Recipient` field from MDNs. +- ffi: support custom allocators in event string getters. +- Start checking column documentation in CI and add comment for `transports.add_timestamp`. +- Sanitize `version_string` we got from the wire ([#8582](https://github.com/chatmail/core/pull/8582)) +- RUSTSEC-2026-0258 ([#8603](https://github.com/chatmail/core/pull/8603)). + +### Build system + +- Use `--locked` in `scripts/clippy.sh`. +- Produce correct wheel metadata. + +### Documentation + +- Always suggest using `--locked` with "cargo install". +- JSON-RPC: clarify when `reactions` is `None`. +- Fix async-imap and async-smtp URLs in README.md ([#8637](https://github.com/chatmail/core/pull/8637)). +- Update the timeout value in `DC_EVENT_CALL_ENDED` description. + +### Refactor + +- Don't store email address in location KML. ([#8615](https://github.com/chatmail/core/pull/8615)). +- Turn `DC_CHAT_ID_*` into `ChatId::*` associated constants. +- Turn `DC_MSG_ID_*` into `MsgId::*` associated constants. +- Don't include email addresses in export filenames ([#8626](https://github.com/chatmail/core/pull/8626)). +- Make `create_send_msg_jobs()` private. +- Rename `automatic_relay_management` to autorelay. +- Extract shared pieces for non-chat messages. +- Remove unused functions from the tools module. +- Remove the code to set own avatar in `set_profile_image()`. +- Move pgp tests to submodule. +- Split `flake.nix` into multiple files. +- Use `&[..]` instead of `&Vec<..>`. + +### Tests + +- [**breaking**] rename rpc fixtures to disambiguate from ffi fixtures. +- Test `dc_send_msg_sync()`. +- Print which error/warning was expected if it does not arrive. + +### CI + +- Update Rust to 1.98.1. + +### Miscellaneous Tasks + +- Add script to show the sizes of futures (async Rust) ([#8536](https://github.com/chatmail/core/pull/8536)). +- deps: bump zizmorcore/zizmor-action from 0.6.1 to 0.6.2. +- deps: bump swatinem/rust-cache from 2.9.1 to 2.9.2. +- deps: bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2. +- deps: bump taiki-e/install-action from 2.85.1 to 2.86.7. +- cargo: bump futures from 0.3.33 to 0.3.34. +- cargo: bump thiserror from 2.0.19 to 2.0.20. +- cargo: bump syn from 3.0.3 to 3.0.4. +- cargo: bump log from 0.4.33 to 0.4.34. +- cargo: bump mail-builder from 0.4.4 to 0.5.0. +- cargo: bump blake3 from 1.8.5 to 1.8.7. +- cargo: bump http-body-util from 0.1.3 to 0.1.5. +- cargo: bump uuid from 1.20.0 to 1.25.0. +- cargo: bump data-encoding from 2.11.0 to 2.11.1. +- bump chacha20 0.10.1 to 0.10.2. + ## [2.59.0] - 2026-08-14 ### API-Changes @@ -8692,3 +8792,4 @@ https://github.com/chatmail/core/pulls?q=is%3Apr+is%3Aclosed [2.57.0]: https://github.com/chatmail/core/compare/v2.56.0..v2.57.0 [2.58.0]: https://github.com/chatmail/core/compare/v2.57.0..v2.58.0 [2.59.0]: https://github.com/chatmail/core/compare/v2.58.0..v2.59.0 +[2.60.0]: https://github.com/chatmail/core/compare/v2.59.0..v2.60.0 diff --git a/Cargo.lock b/Cargo.lock index d9f5bcb14..d4ed303a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1327,7 +1327,7 @@ dependencies = [ [[package]] name = "deltachat" -version = "2.60.0-dev" +version = "2.60.0" dependencies = [ "anyhow", "astral-tokio-tar", @@ -1435,7 +1435,7 @@ dependencies = [ [[package]] name = "deltachat-jsonrpc" -version = "2.60.0-dev" +version = "2.60.0" dependencies = [ "anyhow", "async-channel 2.5.0", @@ -1456,14 +1456,14 @@ dependencies = [ [[package]] name = "deltachat-jsonrpc-bindings" -version = "2.60.0-dev" +version = "2.60.0" dependencies = [ "deltachat-jsonrpc", ] [[package]] name = "deltachat-repl" -version = "2.60.0-dev" +version = "2.60.0" dependencies = [ "anyhow", "deltachat", @@ -1479,7 +1479,7 @@ dependencies = [ [[package]] name = "deltachat-rpc-server" -version = "2.60.0-dev" +version = "2.60.0" dependencies = [ "anyhow", "deltachat", @@ -1508,7 +1508,7 @@ dependencies = [ [[package]] name = "deltachat_ffi" -version = "2.60.0-dev" +version = "2.60.0" dependencies = [ "anyhow", "deltachat", diff --git a/Cargo.toml b/Cargo.toml index 1b317dd0d..1162e3254 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat" -version = "2.60.0-dev" +version = "2.60.0" edition = "2024" license = "MPL-2.0" rust-version = "1.89" diff --git a/deltachat-ffi/Cargo.toml b/deltachat-ffi/Cargo.toml index b7121f709..99982c875 100644 --- a/deltachat-ffi/Cargo.toml +++ b/deltachat-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat_ffi" -version = "2.60.0-dev" +version = "2.60.0" description = "Deltachat FFI" edition = "2024" readme = "README.md" diff --git a/deltachat-jsonrpc-bindings/Cargo.toml b/deltachat-jsonrpc-bindings/Cargo.toml index 47c2d9a95..d947ce54f 100644 --- a/deltachat-jsonrpc-bindings/Cargo.toml +++ b/deltachat-jsonrpc-bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat-jsonrpc-bindings" -version = "2.60.0-dev" +version = "2.60.0" description = "Autogenerate DeltaChat JSON-RPC API bindings at build time" edition = "2024" license = "MPL-2.0" diff --git a/deltachat-jsonrpc-bindings/typescript/package.json b/deltachat-jsonrpc-bindings/typescript/package.json index dc4d55b2c..27919c978 100644 --- a/deltachat-jsonrpc-bindings/typescript/package.json +++ b/deltachat-jsonrpc-bindings/typescript/package.json @@ -54,5 +54,5 @@ }, "type": "module", "types": "dist/deltachat.d.ts", - "version": "2.60.0-dev" + "version": "2.60.0" } diff --git a/deltachat-jsonrpc/Cargo.toml b/deltachat-jsonrpc/Cargo.toml index 7ec3a38ff..29509e64b 100644 --- a/deltachat-jsonrpc/Cargo.toml +++ b/deltachat-jsonrpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat-jsonrpc" -version = "2.60.0-dev" +version = "2.60.0" description = "DeltaChat JSON-RPC API" edition = "2024" license = "MPL-2.0" diff --git a/deltachat-repl/Cargo.toml b/deltachat-repl/Cargo.toml index a89d0d3ad..ce4623d26 100644 --- a/deltachat-repl/Cargo.toml +++ b/deltachat-repl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat-repl" -version = "2.60.0-dev" +version = "2.60.0" license = "MPL-2.0" edition = "2024" repository = "https://github.com/chatmail/core" diff --git a/deltachat-rpc-client/pyproject.toml b/deltachat-rpc-client/pyproject.toml index 8226c5eb6..adabfde07 100644 --- a/deltachat-rpc-client/pyproject.toml +++ b/deltachat-rpc-client/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "deltachat-rpc-client" -version = "2.60.0-dev" +version = "2.60.0" license = "MPL-2.0" description = "Python client for Delta Chat core JSON-RPC interface" classifiers = [ diff --git a/deltachat-rpc-server/Cargo.toml b/deltachat-rpc-server/Cargo.toml index 1f193bde5..b19dbc586 100644 --- a/deltachat-rpc-server/Cargo.toml +++ b/deltachat-rpc-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deltachat-rpc-server" -version = "2.60.0-dev" +version = "2.60.0" description = "DeltaChat JSON-RPC server" edition = "2024" readme = "README.md" diff --git a/deltachat-rpc-server/npm-package/package.json b/deltachat-rpc-server/npm-package/package.json index b28e8ff56..82f380978 100644 --- a/deltachat-rpc-server/npm-package/package.json +++ b/deltachat-rpc-server/npm-package/package.json @@ -15,5 +15,5 @@ }, "type": "module", "types": "index.d.ts", - "version": "2.60.0-dev" + "version": "2.60.0" } diff --git a/python/pyproject.toml b/python/pyproject.toml index 2fd3309ab..389616bd0 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "deltachat" -version = "2.60.0-dev" +version = "2.60.0" license = "MPL-2.0" description = "Python bindings for the Delta Chat Core library using CFFI against the Rust-implemented libdeltachat" readme = "README.rst" diff --git a/release-date.in b/release-date.in index e59f916ac..3969d88d4 100644 --- a/release-date.in +++ b/release-date.in @@ -1 +1 @@ -2026-08-14 \ No newline at end of file +2026-09-11 \ No newline at end of file