This document defines how to continue work on cdist:

x Define how to get information from clients
   x Create shell script that creates code to run on client (cdist-build-explorer)
x Create configuration tree from manifest
   x write binaries, which create the tree when called from manifest (cdist_tree_wrapper)
x Define configuration paths (doc/internal/config-layout)
x Redo explorers (see manpage)

x Parse configuration tree/objects recursively
   x can/may types modify tree?
      -> yes, of everything a type created itself!
      x may open door for getting information from manifest / other stuff

x Cleanly define paths for object creation, especially recursive calls
   x doc/man/cdist-config-layout.text

- generate code to be executed on client
   - check return codes
   - abort on first error?

- execute code on client

/ Write at least one type (completly!)

- doc 1.0:
   - cdist manpage (main manpage)
      - cleanup following man + their tree:
         - cdist-language        [CLEANUP AND REMOVE]
         - cdist-design.text     [CLEANUP AND REMOVE]
         - cdist-push-pull       [WRITE]
         - cdist-quickstart      [WRITE]
            - how to write a minimal host manifest
         - cdist-types           [IMPORTANT]
            - only do necessary work [TYPE IMPLEMENTATION HINTS]
               - install packages only if not existent
               - copy file only if different
         - cdist                 [IMPORTANT]
         - cdist-explorers
      - add terminology
      - define steps within configuration apply
         - detect impossible/unsafe things:
         - creating a file twice
         - installing and removing a package
         - and report location of occurence
         - parse afterwards?
      - multi master setups
      - templating
         - how to define templates
            - variable substitution from shell may be problematic
         - SHELL SCRIPTS! (executables? do not support?)
            - stdout == output of template == what will be used
   - cleanup website
   - remove HACKERS_README
   - create doc/dev/HACKERS_README
- Add install target to Makefile
   - create cdist-config-init to create basic tree

- types needed
   - file (with directory)
   - package

- Cleanup directories, cleanly document, what's possible

- rename $__object_dir to $__object_base_dir
- cd $__object_dir, before running manifest
   && document it in doc/man/cdist-types.text
- use $type/manifest instead of $type/init
- document that $type/manifest is executed for every object/instance
- find $object_id in recursive runner