Skip to content

Per-directory software configuration and cascading metadata #3

@mottosso

Description

@mottosso

Preamble

Pipi stores software configuration within each folder. The folder is then said to have "exposed" this configuration to itself and any sub-directory.

root
    hulk
       softwarex
    shots
        1000 <-- "softwarex" is available here

The issue relates to where to store metadata. Metadata is used as a means of storing:

  • Startup flags, e.g. -hideConsole
  • Startup keyword arguments, e.g. -proj /home/marcus
  • Software-dependent environment variables, e.g. PYTHONPATH=/home/marcus

Software configuration is cascading; which is how 1000 from above has access to software "exposed" by hulk. Metadata is also meant to cascade.

root
    hulk
       softwarex
           myflag1
    shots
        1000
            softwarex
                myflag2

Here, hulk exposes softwarex with myflag1 configured. 1000 then adds myflag2 to this configuration of softwarex.

The end result is that softwarex run from 1000 will run using both flags; whereas if run anywhere else would result in just using myflag1

The problem

Cascading happens only along directories that are directly ascended:

# Cascading in action
root  <-- ADD
    hulk  <-- ADD
        softwarex
        shots <-- ADD
            1000  <-- ADD
                softwarex  <-- START

Here we can see that hulk/softwarex isn't included in the cascading operation. That's because hulk/softwarex isn't at any point a parent of 1000.

As a result, the metadata of hulk/softwarex isn't added to the metadata of 1000/softwarex

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions