diff --git a/docs/source/development/config_blueprint.txt b/docs/source/development/config_blueprint.txt new file mode 100644 index 0000000..86277e7 --- /dev/null +++ b/docs/source/development/config_blueprint.txt @@ -0,0 +1,31 @@ +========================================= +Notes on the IPython configuration system +========================================= + +To start, an IPython process needs: + +* Configuration files +* Command line options +* Additional files (FURL files, extra scripts, etc.) + +It feeds these things into the core logic of the process, and as output, +produces: + +* Log files +* Security files + +There are a number of things that complicate this: + +* A process may need to be started on a different host that doesn't have + any of the config files or additional files. Those files need to be + moved over and put in a staging area. The process then needs to be told + about them. +* The location of the output files should somehow be set by config files or + command line options. +* Our config files are very hierarchical, but command line options are flat, + making it difficult to relate command line options to config files. +* Some processes (like ipcluster and the daemons) have to manage the input and + output files for multiple different subprocesses, each possibly on a + different host. Ahhhh! +* Our configurations are not singletons. A given user will likely have + many different configurations for different clusters.