Files
chatmail-core/scripts
Hocuri 961cacd795 fix: Correctly delete unneeded messages on the server; Remove "Delete Messages from Server" (delete_server_after) config option (#8240)
Fix https://github.com/chatmail/core/issues/8195
Supersedes https://github.com/chatmail/core/pull/8217

The most interesting change is in `delete_expired_imap_messages()`
because there, messages are marked for deletion on single-device
chatmail profiles.

The logic in `delete_expired_imap_messages()` was wrong before, and
pre-messages were not deleted at all. This is fixed by also querying
`pre_rfc724_mid` in addition to `rfc724_mid` from the `msgs` table.
In order not to make the SQL statement too complex, I split it into two.

WRT tests:
- `test_immediate_autodelete()` tests the auto-deletion;
`test_imap_autodelete_fully_downloaded_msg()` tests that even for a
message that is split into pre- and post-message, both messages are
deleted.
- A lot of tests test that if bcc_self is on, messages are not
auto-deleted. E.g. `test_one_account_send_bcc_setting()` and
`test_markseen_message_and_mdn()` relies on the fact that messages stay
on the server when bcc_self is on.
- Unfortunately, it is not possible to test that messages are only
deleted for chatmail servers, because we don't have any tests that use a
non-chatmail server.
2026-05-22 16:45:50 +00:00
..
2023-01-20 16:53:21 +00:00
2026-04-17 15:24:24 +00:00
2022-07-07 00:31:57 +00:00

Continuous Integration Scripts for Delta Chat

Continuous Integration, run through GitHub Actions and an own build machine.

Description of scripts

  • clippy.sh runs cargo clippy for all Rust code in the project.

  • deny.sh runs cargo deny for all Rust code in the project.

  • codespell.sh spellchecks the source code using codespell tool.

  • ../.github/workflows contains jobs run by GitHub Actions.

  • run-python-test.sh runs CFFI Python tests.

  • run-rpc-test.sh runs JSON-RPC Python tests.

  • make-python-testenv.sh creates a local python test development environment with CFFI bindings. Reusing the same environment is faster than running run-python-test.sh which always recreates environment from scratch and runs additional lints.

  • make-rpc-testenv.sh creates a local python development environment with JSON-RPC bindings, i.e. deltachat-rpc-client and deltachat-rpc-server.

  • remote_tests_python.sh rsyncs to a build machine and runs JSON-RPC Python tests remotely on the build machine.

  • remote_tests_rust.sh rsyncs to the build machine and runs Rust tests remotely on the build machine.

  • run-doxygen.sh generates C-docs which are then uploaded to https://c.delta.chat/

  • run_all.sh builds Python wheels

  • android-rpc-server.sh compiles binaries of deltachat-rpc-server using Android NDK.

Triggering runs on the build machine locally (fast!)

There is experimental support for triggering a remote Python or Rust test run from your local checkout/branch. You will need to be authorized to login to the build machine (ask your friendly sysadmin on #deltachat Libera Chat) to type:

scripts/manual_remote_tests.sh rust
scripts/manual_remote_tests.sh python

This will rsync your current checkout to the remote build machine (no need to commit before) and then run either rust or python tests.