Currently, everything is tightly affixed to autodetected/user-provided system+distro combo, which impacts the usability out of the pre-wired ones and on systems that cannot be pinpointed to particular point release (rolling release distros, self-service components scenarios and the like).
Prelimary plan to resolve this:
figure out an interchangable format to capture the "system snapshot" (versions of particular packages) statically, e.g., an ini file in the drop-in directory formatted like:
[<system>:<identifier>] corosync = 2.4.3 pacemaker = 1.1.18 pcs = 0.9.160[+easter-egg]
add new clufter command, dist-profile, which is passed <system> and <identifier> from above and will run heuristic commands so as to figure out versions of some significant packages (e.g., using --version switches + parsing of the output), perhaps even some notable "extras" if available in a consumable way (luckily, pcs got listing of "capabilities", see: https://github.com/ClusterLabs/pcs/commit/f66bb3a578d0739b9dd3ec0d91ca8dd79769fff2), and such data will be stored into a file withing said drop-in directory (unless explicit path given as an argument)
dist-profile
<system>
<identifier>
--version
modify facts.py so as to scan said drop-in directory, fetch [<system>:<identifier>] handles, adding them to existing data respectively, as well as particular package versions
facts.py
As a result, user can then specify [--sys <system>] --dist <identifier> as with pre-wired distribution pointers. Furthermore, running dist-profile can be automated in various points of system life-cycle, e.g., when clufter installed, when any of the "precious" packages are updated (in RPM packaging world, should be doable with triggers), etc.
[--sys <system>] --dist <identifier>
Related to that, there should also be a way to settle particular <identifier> (perhaps together with <system>) to be used as a default, either as a fallback or override (to be decided, or making both possible). One of the ideas would be to dedicate reserved <identifier>s, e.g., default and override.
default
override
Metadata Update from @jpokorny: - Issue assigned to jpokorny
Login to comment on this ticket.