With updating `pluggy` to `0.13.0`[1] the way how python modules are
imported during pytest changed which broke all modules that had a
`coding: future_fstrings` annotation at the top which used to be needed
for python <=3.5. This only affected the tests, deploying a
`mautrix-telegram` from master with `doCheck = false;` works fine.
I applied a patch for `mautrix-telegram` which drops python 3.5 compat
(this package is intended to be used as application with python 3.7, so this
should be fine on master/unstable) and modified `mautrix-appservice`
accordingly as a lot of things on master changed since their last
release, so applying a patch didn't work there.
Resolves#71996
[1] faf8cfba4ecd86186bb2d965f6d6386a08aba6a6
`alembic`[1] is a database migration tool which is invoked from the CLI
when installing the telegram bridge, but never needed during the
runtime.
The reason why `alembic` is required here is to ensure that it
exists in the Python environment when deploying the bridge. However
`alembic` requires `mautrix-telegram` in its environment to create a
database schema from the Python models.
Such a dependency relation may be possible with tools like virtualenv,
however it'll result in an infinite recursion at evaluation time in Nix.
With this patch, `mautrix-telegram` doesn't depend on `alembic` anymore
and provides a patched alembic (`pkgs.mautrix-telegram.alembic`) which
has `mautrix-telegram` in its path.
[1] https://alembic.sqlalchemy.org/en/latest/