In order to be more fault tolerant, to not lose data if the redis is
reset, etc. We decided to put the item to mirror in a new table and then
the task will manage the status in the database.
This is the first step to then add tasks in the admin to retry or check
why the task has failed and also implement a retry strategy.
The Dockerfile must also be modified, we need the libmagic library to
build the image at the collect stage because the magic module is
imported in the storage module and all tasks are imported when the
application starts.
Recently a CVE present in a dependency of setuptool is blocking our CI.
The CVE is fixed, a new release of the dependency (jaraco.context) is
made but the setuptool project is not updating it. We already migrate
from pip to uv to manage our dependencies. We can also migrate the build
backend from setuptool to uv_build.
In the pyproject file, the readme property has been removed, because
uv_build try to read it, but the readme is at the root of the project
and not copied into the Dockerfile instructions. This readme can be used
when the package is published on pypi but it is not the case for Drive.
We have migrated to uv but pip is still installed in the python docker
image. We must upgrade it to avoid having an outdated version of it with
security issues.
We want to migrate our projects from pip to uv to take the benefits of
the lock file and have reproducible installations.
A first uv.lock file is comitted and the Dockerfile and compose are
modified to work with uv
Django has a native extension able to manage records in a hierchical way
combined with an index allowing to have high performance when querying
the database. The django_ltree lib is used, it adds some helper but is
really lightweight