Decouple non-UI CLI startup from config_ui

Stop aman.py from importing the GTK settings module at module load so version, init, bench, diagnostics, and top-level help can start without pulling in the UI stack.\n\nPromote PyGObject and python-xlib into main project dependencies, switch the documented source install surface to plain uv/pip commands, and teach the portable, deb, and Arch packaging flows to install filtered runtime requirements before the Aman wheel so they still rely on distro-provided GTK/X11 packages.\n\nAdd regression coverage for importing aman with config_ui blocked and for the portable bundle's new requirements payload, then rerun the focused CLI/diagnostics/portable tests plus py_compile.
This commit is contained in:
Thales Maciel 2026-03-14 13:38:15 -03:00
parent b4a3d446fa
commit 721248ca26
No known key found for this signature in database
GPG key ID: 33112E6833C34679
15 changed files with 173 additions and 35 deletions

View file

@ -358,6 +358,10 @@ def _copy_bundle_support_files(bundle_dir: Path, stage_dir: Path) -> None:
def _run_pip_install(bundle_dir: Path, stage_dir: Path, python_tag: str) -> None:
common_dir = _require_bundle_file(bundle_dir / "wheelhouse" / "common", "common wheelhouse")
version_dir = _require_bundle_file(bundle_dir / "wheelhouse" / python_tag, f"{python_tag} wheelhouse")
requirements_path = _require_bundle_file(
bundle_dir / "requirements" / f"{python_tag}.txt",
f"{python_tag} runtime requirements",
)
aman_wheel = _aman_wheel(common_dir)
venv_dir = stage_dir / "venv"
_run([sys.executable, "-m", "venv", "--system-site-packages", str(venv_dir)])
@ -372,6 +376,22 @@ def _run_pip_install(bundle_dir: Path, stage_dir: Path, python_tag: str) -> None
str(common_dir),
"--find-links",
str(version_dir),
"--requirement",
str(requirements_path),
]
)
_run(
[
str(venv_dir / "bin" / "python"),
"-m",
"pip",
"install",
"--no-index",
"--find-links",
str(common_dir),
"--find-links",
str(version_dir),
"--no-deps",
str(aman_wheel),
]
)