Upgrade to Python 3.13 and Toolforge Build Service
By using the build service, we gain access to newer Python versions,
and hopefully in future also push-to-deploy functionality.
Installing PyMySQL from Git is necessary to pull in commit a1ac8239c8
[1], which fixes Python 3.13 compatibility. (See also T381923#10850835.)
Without this, we can’t run the tool under Python 3.13, even though we
don’t actually use pymysql at all.
Hopefully at some point PyMySQL will put out a new release that includes
the fix and then we can remove it from our requirements.txt again.
The uwsgi.ini is removed without a gunicorn counterpart; I think the
equivalent gunicorn setting is limit_request_field_size [2], which
defaults to 8190 and should thus be enough (it’s two bytes less than the
old uwsgi buffer-size, but I doubt that’s going to matter).
[1]: https://github.com/PyMySQL/PyMySQL/commit/a1ac8239c8
[2]: https://docs.gunicorn.org/en/stable/settings.html#limit-request-field-size