You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What are the dependencies between metadata types, particularly for metadata conversion to and from source format?
How can those dependencies be determined programmatically?
This information would be especially valuable for determining what can and cannot be processed in parallel, or what can/should or cannot/shouldn't be processed in parallel to improve throughput.
Despite that conscious choice that is presently in the code, it seems that groups of items could perhaps be processed in parallel. They seem to be as follows:
The Profile metadata type plus all metadata types that are referenced in profiles plus all parents and children of those metadata types
Each group of non-overlapping parent and child metadata types that are not referenced in # 1. These could be processed in parallel to # 1 and to each other.
Each remaining metadata type, which could all be processed in parallel to # 1 and # 2 and to each other.
But how can you programmatically determine these groupings?
Notes:
With regards to # 1: I don't see any place in the source-deploy-retrieve's metadata registry that identifies what metadata types are referenced in profiles. I also haven't seen an authoritative list of the referenced types anywhere. It seems that everybody just retrieves their profiles and derives the list from that, but that's reactive. Surely there's a way to proactively determine what the types might be before you start a retrieve?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi -
This information would be especially valuable for determining what can and cannot be processed in parallel, or what can/should or cannot/shouldn't be processed in parallel to improve throughput.
If you dig into the source-deploy-retrieve repository, you will see that it expressly does NOT parallel activity within a package. See this comment before the call to converter.convert: "// this is intentional sequential" (src/client/retrieveExtract.js line 71) (committed by @mshanemc it seems)
Despite that conscious choice that is presently in the code, it seems that groups of items could perhaps be processed in parallel. They seem to be as follows:
The Profile metadata type plus all metadata types that are referenced in profiles plus all parents and children of those metadata types
Each group of non-overlapping parent and child metadata types that are not referenced in # 1. These could be processed in parallel to # 1 and to each other.
Each remaining metadata type, which could all be processed in parallel to # 1 and # 2 and to each other.
But how can you programmatically determine these groupings?
Notes:
Beta Was this translation helpful? Give feedback.
All reactions