AutoKey, a desktop automation utility for Linux and X11. Previously known as "autokey-py3/autokey". Ubuntu PPA maintained in ppa/bionic branch. Only post issues specific to the PPA version; issues related to upstream should be posted to that repository.
This is definitely correct for projects written in a compiled language, like C++, because the libraries need to be present during the binary linking step. But since this is a pure Python project, almost all dependencies are pure runtime dependencies.
I decoupled setup.py and the autokey package here (autokey@4d77b50), thus the runtime dependencies should not be needed during the package build. (Because no autokey code is executed, thus the imports are not run.)
You are manually adjusting the dependencies in the debian/control file each time you push a new release. I found a nice option that completely obsoletes fiddling with the Replaces specification.
You can use ${binary:Version} to refer to the exact version of the currently built package.
Thus you can just specify that e.g. autokey-common Replaces: autokey-common (<< ${binary:Version}) and be done with it. If currently built version is X.Y.Z, then the package will automatically replace everything <X.Y.Z.
You changed the versions in Replaces: autokey (<<0.61.4-0~0). As far as I know, the split into three packages (-common, -qt, -gtk) occurred after 0.61.4, so those were originally meant to ensure that ancient package versions get replaced. Well, bumping it should not cause issues, because even autokey (<< 100.0.0) would also match those. Just there is no package called exactly autokey any more.
In the upstream repo, I added a replacement dependency to each package, causing each to replace their older versions: (This takes care of the bullet point above)