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. 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. task queue
lxml3. for parsing XML quickly.
Mako0. templating engine.
Markdown2. Markdown-formatted text to HTML
Pillow2. manipulation library
pymongo2. with MongoDB
MySQLdb1. with MySQL
requests2. HTTP requests and remote API calls
numpy1. for scientific computing, heavily used by professors
scipy0. for scientific computing, heavily used by professors
paramiko1. implementation in Python. Security implications.
PyYAML3.103.11Used for processing YAML-formatted configuration files
nose1. for running tests
mock1. for writing tests
selenium2. for running browser-based tests
coverage3.73.7.1Determine test coverage
pep81. our code readable and understandable
pylint0.281.4.0Keep our code readable and understandable, and catch obvious Python errors in test suite