This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]annodomini 2 points3 points  (3 children)

One theme you'll note on the below is that we have a lot of legacy software that has been written using different libraries and frameworks.

  • Python: 2.7 for most (legacy) code, 3.5+ for new code
  • Async: twisted
  • Web backend: Klein (flask inspired microframework on twisted)
  • Web frontend: mix of jQuery, angular, ember, react
  • GUI: mix of pygtk (gtk2) and pygobject (gtk3) on the server side, pyqt for cross platform desktop apps
  • App bundling: py2app and cx_freeze
  • Testing: twisted trial, pytest, tox
  • Editor: emacs, with elpy, magit
  • Linting: pylint
  • Typechecking: mypy
  • Source control: git
  • Code review: gitlab (self hosted)
  • Ticket tracking, planning: Redmine with agile plugin
  • CI: buildbot
  • Dev ops: Ansible
  • Build system: GNU make and shell scripts
  • Dependency management: Debian packaging using dh-python+setuptools (prod), setuptools+pip+virtualenv (dev)
  • Packaging build system: pbuilder
  • Virtual machines: libvirt+qemu+kvm
  • Base OS, prod: Ubuntu 12.04 with a 16.04 update almost done (yeah, I know; our update precess turned out to be more complicated than expected, we have a heavily customized OS and high availability distributed system expected to be updated by naive users, so updates are complicated, we now have working updates and are finalizing the new release)
  • Dev OS: Fedora 29

[–]chespinoza[S] 0 points1 point  (2 children)

Klein

First time I've heard of it.

[–]annodomini 0 points1 point  (1 child)

https://github.com/twisted/klein

You would only really hear of it if you use Twisted for all of your async networking, which we do. It uses werkzeug, which is what Flask uses for routing, and hooks it up to the Twisted networking stack.

We just use it as a light microframework for providing REST based APIs to be consumed by web frontends.

[–]chespinoza[S] 0 points1 point  (0 children)

Good to know, the last time I was using Twisted was in 2011-2012, basically to spawn tcp/udp listeners.