Regularly-Upgraded Libraries

Keeping our libraries up to date is a good idea, so that we can take advantage of security fixes and new features. This is a list of popular, well-known libraries that we use, which we should revisit every six months or so and keep up to date. See also: Upgrading Dependent Libraries

LibraryOur versionLatest versionNotes
Django1.4.141.7This is going to be the most difficult, but the most important. Django 1.4 is only supported until March 2015
boto2.32.12.34.0Used for interacting with Amazon Web Services. Updates very frequently.
gunicorn0.17.419.1.1Our webserver. Crucial for website performance and security. We tried up upgrade this recently, but had to back out due to a bug.
Celery3.0.193.1.16Asynchronous task queue
lxml3.3.63.4.0Used for parsing XML quickly.
Mako0.9.11.0.0Our templating engine.
Markdown2.2.12.5.1Process Markdown-formatted text to HTML
Pillow2.6.12.6.1Image manipulation library
pymongo2.4.12.7.2Interact with MongoDB
MySQLdb1.2.41.2.5Interact with MySQL
requests2.3.02.4.3Make HTTP requests and remote API calls
numpy1.6.21.9.0Used for scientific computing, heavily used by professors
scipy0.14.00.14.0Used for scientific computing, heavily used by professors
paramiko1.9.01.15.1SSH implementation in Python. Security implications.
PyYAML3.103.11Used for processing YAML-formatted configuration files
transifex-client0.100.11.1.betaInternationalization
nose1.3.31.3.4Used for running tests
mock1.0.11.0.1Used for writing tests
selenium2.42.12.43.0Used for running browser-based tests
coverage3.73.7.1Determine test coverage
pep81.4.51.5.7Keep our code readable and understandable
pylint0.281.4.0Keep our code readable and understandable, and catch obvious Python errors in test suite