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.
- I've updated the
- 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/
andsrc/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