Starpack Updates: Core Install Logic & SQLite Backend

Starpack Enhanced: My Work on Core Installation and SQLite Backend Migration

This update marks a significant milestone for Starpack, the official package manager for SFG OS, as I've introduced foundational package installation and dependency resolution.

A key part of this release is a major architectural shift I undertook: I migrated the repository data backend from individual YAML files to a centralized SQLite database. This, along with a substantial restructuring of the src directory) (based on a recommendation I was given on Reddit), is something I worked on to significantly boost the efficiency, scalability, and speed of repository operations.

Key Changes and Architectural Highlights I Implemented:

  • Core Installation Logic:
    • I've updated the src/install/install.cpp module to orchestrate the end-to-end installation workflow. It now benefits from faster metadata access via the SQLite backend I implemented.
  • Repository Backend Migration to SQLite:
    • I replaced YAML file parsing with an SQLite database for storing and accessing all package information, repository configurations, and metadata.
    • This change I made enables much faster lookups, complex queries, and improved data integrity for dependency resolution, package planning, and conflict detection.
    • The new and refactored modules for this are primarily in src/parser/ and src/install/.
  • Improved Performance: My move from YAML to SQLite for repository data has drastically reduced parsing and query times.
  • Comprehensive Installation Workflow: I've implemented a full package installation process.
  • Enhanced Modularity: I've improved the code organization, particularly around the new database backend and the src directory restructuring.
  • Advanced Dependency Management: I'm now leveraging the speed and capabilities of SQLite for much faster dependency handling.
  • Support for Hooks and Error Handling: I've included support for Pre/Post install hooks, user confirmations, and improved error management.

For more details, see my full commit: https://gitlab.com/sfg-os/starpack/-/commit/730cf2ab4afe82639ed0bbb323fc56c4d21b690c