As a user, I can lazily fetch repositories
As a user, I can choose to sync a repository lazily. When lazy syncing is enabled for a specific repo, any associated metadata will be synced and published before any units are downloaded. If there is no metadata (ie: Python) then the sync+publish will be a no-op. Lazy syncing will be an optional feature and will not modify the normal sync workflow at all. Lazy sync will be configurable as a per-repo setting. Lazy sync will have two modes:
- lazy sync passive - This mode creates the lazy repo and will not fetch content units until an actual client requests them.
- lazy sync active - This mode creates the lazy repo and fetches content units using an asynchronous task. Missing content units are fetched lazily as in passive mode during the asynchronous sync so the repo can be used right away.
This is being introduced as a platform feature so all content types will have support. This is not being integrated with nodes. This is a tracker story and tracks the required work as child tasks/stories/refactors.