Implement a global config mechanism #2704
Labels
area/config
Related to the Packit's configuration.
complexity/epic
Lost of work ahead, planning/design required.
As a result for this epic we should be able to put a
config
key in https://src.fedoraproject.org/rpms/packit/blob/rawhide/f/.packit.yaml that references the upstream packit config https://github.com/packit/packit/blob/main/.packit.yaml and ideally remove any other existing key; the downstream sync release for packit should not be affected by the change.config
key to the schemaconfig
key in it. If aconfig
key is found we need to recursively - at the beginning we could also have a limited depth of 3/n steps and no more and then we can choose to implement some recursion detection algorithm if more than a couple of steps are needed - look for the parent configs and start processing all the templates in the chain, creating a new temporary packit.yml that will be used instead of the original one.We should make the new code work both for the packit CLI and the packit-service. Thinking at packit CLI, we should probably stay flexible and let the
base: URI
be also a local url (likefile:///
).files_to_sync: packit.yml
; probably we can just remove it from the upstream config. But we should think what to do whenfiles_to_sync
is not defined at all (that means packit.yml is always copied from upstream to downstream), probably in those cases (which are most of the downstream sync only automations) there is no need for copying packit by default?metadata
key through it. In this way, when we will work on the linked card, we will be able to release a breaking change in packit, without breaking the packit service automation. We can always propose updates for the users configurations, but if our users don't accept them we can still work with the old configurations, at least on the packit service side.see research packit/research/pull/220 for details.
The text was updated successfully, but these errors were encountered: