Skip to content

v2.8.0 β€” Remote Software Installation, File Ownership Lookup & Fast Startup

Choose a tag to compare

@xyasharx xyasharx released this 08 Oct 18:21
· 234 commits to main since this release

Dendro 2.8.0 β€” Remote Software Installation, File Ownership Lookup & Fast Startup

Summary

Dendro 2.8.0 transforms Dendro into a complete software manager with on-demand remote package installation, adds native file ownership resolution (rpm -qf), introduces interactive dependency navigation, eliminates the 9-second startup bottleneck, and delivers polished two-theme switching with full light/dark contrast synchronization.


Key Improvements & Features

1. On-Demand Remote Package Search & Installation

  • Remote Software Discovery: Search for uninstalled packages directly from enabled Fedora, RPM Fusion, and COPR repositories without preloading 75,000 packages into memory.
  • Streamlined Installation Pipeline: Press Enter in the search bar (or click the trailing repository search icon) to query DNF5 in the background. Remote results appear with the Available badge and can be reviewed, simulated, and installed via Polkit with live streaming terminal logs.

2. Native File Ownership Queries (rpm -qf in Search)

  • Typing any file path starting with / or file: (e.g. /usr/bin/git or /usr/lib64/libpng16.so.16) performs a sub-millisecond B-Tree index lookup via native librpm basenames and selects the owning package in the tree.

3. Interactive "Jump to Package" Navigation

  • Double-clicking any dependency node in the central tree view jumps directly to that package.
  • Double-clicking any dependent package in the Inspector's "Required By" tab navigates directly to it, automatically adjusting category filters if the destination package resides in another system pillar.

4. Maintainer Scriptlet Audit Tab (%pre, %post)

  • Added a dedicated "Scripts" tab in the Inspector panel displaying pre-install, post-install, pre-uninstall, and post-uninstall shell code in fixed-width monospace font to audit package hooks before installation.

5. Sub-Second Startup Optimization

  • Fixed 9-Second Startup Delay: Optimized AppStreamCatalog._parse_appstream_file() by clearing root element references during XML iterparse. This prevents Python from accumulating a 50MB DOM in memory, dropping catalog load times from 7+ seconds to under 400 milliseconds.

6. Theme Engine Polish & Contrast Fixes

  • Streamlined 2-Theme System: Consolidated into two curated palettes (Dark and Light) with a 1-click Sun/Moon toggle button in the header toolbar, while retaining automatic system synchronization by default.
  • GNOME Light Mode Switching: Resolved an issue where switching from Dark to Light mode in GNOME failed on the first toggle due to GNOME's 'default' setting.
  • Eliminated Titlebar Flickering: Removed premature theme fallbacks in main.py so the window title bar opens cleanly in the correct theme without alternating.
  • Dynamic Console & Table Contrast: Removed hardcoded dark hex colors from the Dry Run simulation console, DNF transaction history table, and drawer progress bars, ensuring all widgets adapt dynamically to light themes without dark-navy contrast clashes.

7. State & Memory Management

  • Post-Transaction Synchronization: Fixed an issue where the Inspector panel continued displaying removed packages and header action buttons remained enabled after transaction completion.
  • Butter-Smooth Scrolling: Precomputed palettes in SidebarItemDelegate to eliminate repetitive subprocess calls during painting, restoring smooth 60fps scrolling.
  • Copy Dependency Chain: Added a right-click context menu action to copy formatted dependency trees directly to the clipboard.

Verification & Quality Assurance

# Verify static code analysis (zero undefined names)
ruff check . --select F821,F822,F823

# Run test suite headlessly
QT_QPA_PLATFORM=offscreen pytest -v tests/

**Full Changelog**: https://github.com/xyasharx/Dendro/compare/v2.7.1...v2.8.0