the next generation of technical debt
bulbs2
is the very first step in re-architecting the django-bulbs
package into a generic, non-presecriptive base of Django installable apps.
Rather than have a monolithic series of applications that enforce design choices to all applications that inherit from
it, bulbs2
will provide a series of abstract, generic mixins, models, managers and signals that can be directly
used or subclassed. The objective is to provide a basic means of describing publishable content.
All other extensions (workflows, serializers, search, etc.) should be refactored into separate applications that can
accompany bulbs2
at the discretion of the scope of the application.
You can clone the code via git:
$ git clone https://github.com/theonion/bulbs2.git
Alternatively, if you just want to use it in a Django application, you can install it via pip:
$ pip install -e git+https://github.com/theonion/bulbs2.git#egg=bulbs2
Note: since this is a far-afield project that may or may not be brought to production, I am refraining from adding it to the PyPI index.
To run the tests, clone the repository from GitHub (see steps above). You should then create a virtual environment with Python 3 and install the project to that:
$ cd /path/to/virtualenvs
$ virtualenv -p python3 bulbs2
$ source bulbs2/bin/activate
$ cd /path/to/bulbs2
$ pip install -e .
$ pip install "file://$(pwd)#egg=bulbs[dev]"
$ py.test tests
If you don't have Python 3 on your system, you can brew install it:
$ brew install python3
$ brew linkapps
If you don't have virtualenv on you system, you can pip install that:
$ pip install virtualenv
If you don't have brew installed, you can get that via:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
If you don't have pip, install Python 2 and Python 3 via brew:
$ brew install python2 python3
$ brew linkapps