fle-internal/ka-lite-central — pull request #145 by bcipolli (2014-04-29 05:18:46+00:00)
Title: Define inter-app dependencies; clean unnecessary dependencies.

Draft documentation / blog entry here:
https://medium.com/p/3470430155d

This PR uses per-module settings.py to define dependencies, including `django`, `fle_utils`, and `kalite` dependencies.

By explicitly declaring dependencies, we can:

* Simplify the dependency structure, rather than jamming everything in a single global location where eeeverything interacts in extremely unclear ways
* Enable apps to be completely self-contained; the definitions of their dependencies move with them.
* Make apps much easier to understand; dependencies are actually defined, rather than implicit.
* Allow direct testing of intended dependency structure, in things that are otherwise hard to enforce (such as URL reverse lookups)

Submitting PR now to prove that nothing breaks using this method. Feel free to review the PR now, but I intend to write the above tests to expose inter-app dependencies through URL reversals and other hidden means (which we've hit bugs on over and over, in sharing code across `ka-lite` and `ka-lite-central` projects)