I was talking about playbooks mostly, not individual tasks.
E.g. if you have a playbook where in one location you make sure a package is installed and in another to add a line to its config files, you need to ensure installation is performed first.
Another generic example is conflicting definitions, e.g. you define a package as present and somewhere else you define that one of its dependencies should be absent. Depending on the order, you either get an error or it works fine (but ignores the package absent directive). Or is my understanding wrong here?
You’re correct, of course — the tasks have to run in a certain order. I can vaguely imagine a config manager that calculates dependencies between the tasks before executing them, kinda like apt does. However, considering the complex relations between various kinds of things like packages, files, keys in a database like Gnome’s settings, running programs, etc., I doubt that it would be feasible to do that. One would have to describe the entirety of these relations for a program, in a format understandable by the manager — or at the very least write a bunch of checks for the prerequisites. Idk if anything like Nix attempts this kind of thing.
I was talking about playbooks mostly, not individual tasks.
E.g. if you have a playbook where in one location you make sure a package is installed and in another to add a line to its config files, you need to ensure installation is performed first.
Another generic example is conflicting definitions, e.g. you define a package as present and somewhere else you define that one of its dependencies should be absent. Depending on the order, you either get an error or it works fine (but ignores the package absent directive). Or is my understanding wrong here?
You’re correct, of course — the tasks have to run in a certain order. I can vaguely imagine a config manager that calculates dependencies between the tasks before executing them, kinda like apt does. However, considering the complex relations between various kinds of things like packages, files, keys in a database like Gnome’s settings, running programs, etc., I doubt that it would be feasible to do that. One would have to describe the entirety of these relations for a program, in a format understandable by the manager — or at the very least write a bunch of checks for the prerequisites. Idk if anything like Nix attempts this kind of thing.