bjoern <r10s@b44t.com> wrote: > maybe_add_time_based_warnings() requires some date guaranteed to be in the near past. based on this known date we check if the system clock is wrong (if earlier than known date) and if the used Delta Chat version may be outdated (1 year passed since known date). while this does not catch all situations, it catches quite some errors with comparable few effort. > > figuring out the date guaranteed to be in the near past is a bit tricky. that time, we added get_provider_update_timestamp() for exactly that purpose - it is checked manually by some dev and updated from time to time, usually before a release. > > however, meanwhile, the provider-db gets updated less frequently - things might be settled a bit more - and, get_provider_update_timestamp() was also changed to return the date of the last commit, instead of last run. while that seem to be more on-purpose, we cannot even do an “empty” database update to update the known date. > > as get_provider_update_timestamp() is not used for anything else, maybe we should completely remove that function and replace it by get_last_release_timestamp that is then updated by ./scripts/set_core_version.py - the result of that is reviewed manually anyway, so that seems to be a good place (i prefer manual review here and mistrust further automation as also dev or ci clocks may be wrong :)
Continuous Integration Scripts for Delta Chat
Continuous Integration, run through GitHub Actions and an own build machine.
Description of scripts
-
clippy.shrunscargo clippyfor all Rust code in the project. -
deny.shrunscargo denyfor all Rust code in the project. -
../.github/workflowscontains jobs run by GitHub Actions. -
remote_tests_python.shrsyncs to a build machine and runsrun-python-test.shremotely on the build machine. -
remote_tests_rust.shrsyncs to the build machine and runsrun-rust-test.shremotely on the build machine. -
run-doxygen.shgenerates C-docs which are then uploaded to https://c.delta.chat/ -
run_all.shbuilds Python wheels -
zig-rpc-server.shcompiles binaries ofdeltachat-rpc-serverusing Zig toolchain statically linked against musl libc. -
android-rpc-server.shcompiles binaries ofdeltachat-rpc-serverusing 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.
coredeps Dockerfile
coredeps/Dockerfile specifies an image that contains all
of Delta Chat's core dependencies. It is used to
build python wheels (binary packages for Python).
You can build the docker images yourself locally to avoid the relatively large download:
cd scripts # where all CI things are
docker build -t deltachat/coredeps coredeps
Additionally, you can install qemu and build arm64 docker image on x86_64 machine: apt-get install qemu binfmt-support qemu-user-static docker build -t deltachat/coredeps-arm64 --build-arg BASEIMAGE=quay.io/pypa/manylinux2014_aarch64 coredeps