Overview

Static metadata proof of concept

  1. all metadata are expressed in the setup.cfg file

    when "python setup.py SOME_COMMAND" is invoked the metadata values located in the [global] section are passed to Distutils like if they were arguments for setup().

  2. A setup.cfg.in file can be provided it's a template for setup.cfg. If found, Distutils will render it to create setup.cfg.

    When executed, the template gets these values:

    • platform: the value returned by sys.platform
    • os_name: the value returned by os.name
    • python_version: the python version string (2.5, 2.6, etc)

    Right now the template engine in usage is Mako, but the version that will be included in Distutils will be a light template engine that only supports the %if-%endif syntax.

    so you need mako to run the demo.

  3. setup.cfg is re-built from setup.cfg.in everytime setup() is called, allowing it to run on target platform when the system is installed.

  4. one may generate setup.cfg for his platform w/o having to get the whole distribution or to run setup(). A vanilla Python is ennough

  5. Distutils changes are located in configure.py in the proof of concept, but this file will disappear if the change is added into distutils