We update version in several .toml and .json files on every release anyway, so updating pyproject.toml is easy. setuptools_scm makes it more difficult to build python packages for software distributions because it requires full git checkout with tags rather than just a worktree. It is also possible to remove or move tags after the release, so git revision no longer pins python package version if setuptools_scm is used.
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. -
codespell.shspellchecks the source code usingcodespelltool. -
../.github/workflowscontains jobs run by GitHub Actions. -
run-python-test.shruns CFFI Python tests. -
run-rpc-test.shruns JSON-RPC Python tests. -
make-python-testenv.shcreates a local python test development environment with CFFI bindings. Reusing the same environment is faster than runningrun-python-test.shwhich always recreates environment from scratch and runs additional lints. -
make-rpc-testenv.shcreates a local python development environment with JSON-RPC bindings, i.e.deltachat-rpc-clientanddeltachat-rpc-server. -
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 -
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