-
Notifications
You must be signed in to change notification settings - Fork 146
Create torchx.specs.overlays module #1171
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
base: main
Are you sure you want to change the base?
Conversation
|
@kiukchung has exported this pull request. If you are a Meta employee, you can view the originating Diff in D88545380. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1171 +/- ##
==========================================
+ Coverage 91.66% 91.68% +0.02%
==========================================
Files 85 86 +1
Lines 6619 6636 +17
==========================================
+ Hits 6067 6084 +17
Misses 552 552
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Summary: Create `torchx.specs.overlays` module to standardize how scheduler request overlays work. Currently overlays are JSON (`dict[str, object]`) that follows the same structure as the scheduler's request type. Overlays are stored as metadata in two places: 1. `AppDef.metadata`: job level overlays 2. `Role.metadata`: gang-level overlays Overlays follow the rules below: 1. value types must be the same as the scheduler's request type at the same attribute. 2. dicts get upserted 3. nested dicts get recursively overlayed 4. lists get appended, no deduplication attempts are made 5. lists are NOT recursed, that is, lists for which elements are containers are not recursively overlayed, they are simply treated as primitives. 6. primitive attributes are replaced Differential Revision: D88545380
2bf966f to
d5cf746
Compare
Summary: Create `torchx.specs.overlays` module to standardize how scheduler request overlays work. Currently overlays are JSON (`dict[str, object]`) that follows the same structure as the scheduler's request type. Overlays are stored as metadata in two places: 1. `AppDef.metadata`: job level overlays 2. `Role.metadata`: gang-level overlays Overlays follow the rules below: 1. value types must be the same as the scheduler's request type at the same attribute. 2. dicts get upserted 3. nested dicts get recursively overlayed 4. lists get appended, no deduplication attempts are made 5. lists are NOT recursed, that is, lists for which elements are containers are not recursively overlayed, they are simply treated as primitives. 6. primitive attributes are replaced Differential Revision: D88545380
d5cf746 to
0b5ce19
Compare
Summary: Create `torchx.specs.overlays` module to standardize how scheduler request overlays work. Currently overlays are JSON (`dict[str, object]`) that follows the same structure as the scheduler's request type. Overlays are stored as metadata in two places: 1. `AppDef.metadata`: job level overlays 2. `Role.metadata`: gang-level overlays Overlays follow the rules below: 1. value types must be the same as the scheduler's request type at the same attribute. 2. dicts get upserted 3. nested dicts get recursively overlayed 4. lists get appended, no deduplication attempts are made 5. lists are NOT recursed, that is, lists for which elements are containers are not recursively overlayed, they are simply treated as primitives. 6. primitive attributes are replaced Differential Revision: D88545380
0b5ce19 to
cd34297
Compare
Summary: Create `torchx.specs.overlays` module to standardize how scheduler request overlays work. Currently overlays are JSON (`dict[str, object]`) that follows the same structure as the scheduler's request type. Overlays are stored as metadata in two places: 1. `AppDef.metadata`: job level overlays 2. `Role.metadata`: gang-level overlays Overlays follow the rules below: 1. value types must be the same as the scheduler's request type at the same attribute. 2. dicts get upserted 3. nested dicts get recursively overlayed 4. lists get appended, no deduplication attempts are made 5. lists are NOT recursed, that is, lists for which elements are containers are not recursively overlayed, they are simply treated as primitives. 6. primitive attributes are replaced Differential Revision: D88545380
cd34297 to
5b871b9
Compare
Summary:
Create
torchx.specs.overlaysmodule to standardize how scheduler request overlays work.Currently overlays are JSON (
dict[str, object]) that follows the same structure as the scheduler's request type.Overlays are stored as metadata in two places:
AppDef.metadata: job level overlaysRole.metadata: gang-level overlaysOverlays follow the rules below:
Differential Revision: D88545380