Open
Description
An always expanding builtin set of operations/facts is unmaintainable, it makes sense to decide where this should end and where operations as external packages should begin. Looking at the current set of operations I've roughly divided them as below, will discuss in separate comment:
Base System
Manage builtin system components ie file management, system package managers, system service managers, selnux. Anything considered the "core" of a target system/OS.
- apk
- apt
- bsdinit
- dnf
- files
- launchd
- pacman
- pkg
- pkgin
- selinux ? - is this right? is part of the Linux kernel but requires userspace component
- server
- systemd
- sysvinit
- upstart
- windows
- windows_files
- xbps
- yum
- zypper
Extended System
Manage what are considered system components but that require installing ontop of a base system (ie brew on MacOS).
- brew
- choco
- iptables ? - if selinux is above, so should this be?
- lxd
- openrc
- snap
- vzctl
Both of the above could be grouped as "system" for simplicity.
User Software
Manage specific softwares that get installed in a system.
- gem
- git
- mysql
- npm
- pip
- postgresql
- puppet
- ssh
Other
Just the python.*
operations which provide Python callback support.
- python