- 
                Notifications
    
You must be signed in to change notification settings  - Fork 38
 
Add modifier functionality, tests, commands, and documentation #132
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
Add modifier functionality, tests, commands, and documentation #132
Conversation
| 
           Once again, sorry for how big this PR is... it's hard to split this functionality up into smaller PRs, since it touches a lot of the code. It should be noted that this PR will conflict with #131  | 
    
fce2033    to
    00d7bb1      
    Compare
  
    00d7bb1    to
    3023eed      
    Compare
  
    | 
           OK, Merge conflicts should have been dealt with, and this PR is now ready to review / merge.  | 
    
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the implementation and the feature will be super powerful!
Just wanted to release a few comments that caught my eye during the first scan through, before I sit down and play with it next week
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Few questions about the design
21eef66    to
    f6b41a8      
    Compare
  
    This commit updates the repository methods to include a modifier type in addition to the default object and application types. Additionally, it generalizes some of the type specific methods, updates references, adds a schema for a modifier_repos file, and updates tests to have modifier and application specific mock functionality.
This commit adds the schema definition for how modifiers are defined, and adds the plumbing to propagate modifiers from their configs (in workspace config or the config section) into the application instance. Nothing happens with modifiers yet, aside from their definitions being set correctly.
This commit adds the ability for modifiers to modify applications
This commit implements the modifier functionality. Now modifiers are applied to application instances, and correctly modify the various aspects of the instance. Workspace concretization is updated to allow modifiers to be concretized while experiments are concretized.
This commit adds a `ramble mods` command for interacting with modifiers. Additionally, this unifies some of the shared backends for info and list commands for applications and modifiers.
This commit adds tests for modifier functionality, the mods command, and adds tags and descriptions to existing modifiers.
f6b41a8    to
    0f75f5b      
    Compare
  
    There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for fixing the conflict :)
This merge represents major new functionality. This adds support for modifiers to Ramble.
Modifiers are classes that are allowed to modify various aspects of ramble experiments. These can inject commands, change variable definitions, add figures of merit, and many other things.
Modifiers are implemented similar to application definitions. This merge adds support for modifier repositories, which can live next to application repositories, or in independent locations.
Modifier application is controlled through the ramble.yaml configuration file, and documentation describing this is added.