Add utilities for determining system state.

Review Request #13463 — Created Dec. 26, 2023 and submitted

Information

rbinstall
master

Reviewers

This introduces rbinstall.state, which contains functions (primarily
get_system_info()) for determining state that will be used throughout
the installer process.

get_system_info() determines the operating system and architecture of
the target system. This primarily centers around Linux (though there's
some WIP for macOS with Homebrew).

For Linux, information on the current distro is retrieved and parsed,
and used to determine the default installer method (Yum, Apt, etc.), the
distro ID and families, version, and other identifying information.
These will later be used for package selection.

The beginnings of rbinstall.install_methods was also added, providing
an enum of install method constants that are needed in
get_system_info().

Unit tests are available for state.py methods. We use kgb, pytest,
and pytest-sugar (an extension that provides better output and
immediate failure information for pytest runs).

Unit tests pass.

Tested this along with the rest of the in-progress changes on a variety
of Linux distributions.

Summary ID
Add utilities for determining system state.
This introduces `rbinstall.state`, which contains functions (primarily `get_system_info()`) for determining state that will be used throughout the installer process. `get_system_info()` determines the operating system and architecture of the target system. This primarily centers around Linux (though there's some WIP for macOS with Homebrew). For Linux, information on the current distro is retrieved and parsed, and used to determine the default installer method (Yum, Apt, etc.), the distro ID and families, version, and other identifying information. These will later be used for package selection. The beginnings of `rbinstall.install_methods` was also added, providing an enum of install method constants that are needed in `get_system_info()`. Unit tests are available for `state.py` methods. We use `kgb`, `pytest`, and `pytest-sugar` (an extension that provides better output and immediate failure information for pytest runs).
8d75b3eb949eccafdf8ec609921e460945874e76
Description From Last Updated

'rbinstall.process.die' imported but unused Column: 1 Error code: F401

reviewbotreviewbot
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

chipx86
chipx86
david
  1. Ship It!
  2. 
      
maubin
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to master (6ec531d)