For implementation, I decided to split up the outward facing script into three parts.
This holds all the “major” actions, such as:
This holds all the development actions, such as:
This holds all database query actions, such as:
Next up: Rough cut algorithms
I’ve recently lost internet and cable at the house. Rather then read books, or do something productive with my time “offline”, I’ve decided to do what any sane person would — write a package manager.
Since I have it mostly completed, this will be a documentation of what I did do over the last four days, rather then a jot-down-progress-as-I-go type series. Since I still don’t have internet, beware lag!
I don’t muchly care for complexity, so I want to keep it simple. Dead simple. Simple to use, roll out builds (for the average power user), and manage.
Since I want to keep different package versions around (it’s fun to test for regressions), I want my package manager to be able to swap versions on-demand.
I want it safe to use. When it doubt, bork the internal state rather then bork the system.
Use Python (duh)
Use Pickle to maintain a dict as the “database”.
Use Similinks to link packages into the filesystem
When syn installs a package, it may be installed, but the package won’t be usable until it’s Linked. The workflow should be something similar to:
Uninstalled --> Half-Installed --> Installed --> Half-Linked --> Linked
Next up: Implementation!