The product loader is configured to load by default all product archives in the product directory, but can be configured to load any arbitrary subset.
The loader opens the MANIFEST file in each archive, looks for dependencies stated therein, and loads any products therein listed, raising an error for circular or missing dependencies. For each load, it adds mount points to the MultiFS for the docroot and, by means of an import hook in the vfs which permits python modules to be imported from the vfs, adds the libs (if any) to sys.path. Services specified in the MANIFEST are then imported.
The MANIFEST is essentially an init file for the product which integrates it into the SkunkWeb framework. It must contain the product version, and can also contain product dependencies and services (python modules that use SkunkWeb hooks, to be imported at product load time). See manifest.py for details.
By default, a product's docroot will be mounted at products/<product-name>, relative to the SkunkWeb documentRoot. This can be altered by modifying Configuration.defaultProductPath, which will affect all products, or by adding the product-name to the Configuration.productPaths mapping.
This service will also contain a utility for creating products, creating the MANIFEST file, byte-compiling the python modules, and creating the archive file.