Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Per-directory software configuration and cascading metadata #3

Open
mottosso opened this issue May 7, 2014 · 1 comment
Open

Per-directory software configuration and cascading metadata #3

mottosso opened this issue May 7, 2014 · 1 comment

Comments

@mottosso
Copy link
Member

mottosso commented May 7, 2014

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

@mottosso
Copy link
Member Author

mottosso commented May 7, 2014

Could hulk explicitly expose software via metadata?

$ cd /projects/hulk
$ om app/softwarex softwarex

Here, hulk is injected with metadata, specifying that there is an app called softwarex available under the relative directory softwarex.

This information could then be used as a means of manually appending each available software to the cascading (i.e. inheritance) tree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant