Lots of changes:
- CELERY_CONFIG_FILE does not need to be set to the from_tests module
to run tests anymore, in fact it *should not be set at all* and is
specifically forbidden.
- moved around the configuration to the new 2-file format
- and generally adjusting the code appropriately.
- The code for this is significantly simpler now. The app sets up
everything but celery, and from_celery finishes the job.
- There's no more specifying the mediagoblin section in the file,
which doesn't make sense anymore and was already confusing.
These simply aren't needed any more, not now that the config validator
stuff does type conversion for us.
Also fixed the docstring to explain force_celery_always_eager.
This is a huge change! This means several things.
- From the python point of view, launching the application is a heck
of a lot cleaner. You just need to pass in the config file path to
MediaGoblinApp's __init__() and whether or not this funtion should
setup celery and you're good.
- There are now two separate config files, separating the server
setup from the application setup.
- server.ini: the paste deploy config file, which configures the
applications and server setup but *NOT* the mediagoblin application
itself.
- mediagoblin.ini: where you configure mediagoblin (and possibly celery)
- Launching the application is now different. Instead of:
./bin/paster serve mediagoblin.ini --reload
We launch like:
./bin/paster serve server.ini --reload
Changed a few things so we can report errors to users properly in the
config loading system.
- We now return from read_mediagoblin_config both a loaded config and
the validation results
- We now have a helper function generate_validation_report that can
generate a proper validation report saying if there are errors in a
way that's useful to users.
- Moved conf->config in the read_mediagoblin_config function, which
looks nicer IMO.
Uses ConfigObj to open the config file. Also does validation via the
config spec, so defaults are provided, strings are interpolated, types
are converted.
As Workbench has the localized_file() method, use this
everywhere and drop the wrapper method from
WorkbenchManager.
The processing code already did that.
* Some of our chapters are pretty long and this should make it much
easier for a user to find what they're looking for and jumping
to it. It's easier to read the section toc at the top of the
chapter, than it is to read it in the sidebar.
* overhauls the docs so they're (hopefully) clearer on the git
workflow
* adds text about putting things in bugfix branches, documenting
your work, and using the issue tracker
* adds a contrived example that uses aliens