As a result of this story it will be possible to sync, upload, publish, copy and remove modulemd-defaults Sync: We will parse a compressed yaml doc file which might have 1 or more modulemd-defaults. We will not check for the presence of the modules in the destination repo Publish: We will successfully publish all modulemd-defaults, even those which are missing some module stream of profile( in the repo itself). profile. DNF-like clients are expected to fail gracefully in this case. Upload: We will accept a compressed yaml doc file which might have 1 or more modulemd-defaults. We will not check for the presence of the modules in the destination repo and/or modulemd-defualts can be created/updated via api by providing module name, stream, profiles NOTE : no sanity check on the modules, its' available streams/profiles will be performed during defaults creation/update NOTE : if there is already a default defined in a repo an update will occur by overriding current values with new ones. Copy: just modulemd-defaults are copied. If there are already some defaults defined in the destination repo - they will be overridden. Remove: just modulemd-defaults are removed Module and defaults relationship: when a module is coped - no defaults are carried over when a module is removed - no defaults are removed. As a result there might be 'outdated; defaults but dnf-like clients should manage this situation tldr - module and defaults do not depend on each other.