I would like to share with you some suggestions and ideas to improve Haiku Depot or expand its capabilities. I consider the first 3 the ones should be implemented, and 4 to 6 would need more development or discussion. Any comment will be welcome.
- Cancel button
When you click “Install” button after selecting a package to install, this button turns grey (and hence it isn’t clickable), after some seconds it turns into a progress bar (also not clickable), and finally when the process is done two buttons appear: “Open” and “Uninstall”.
However, if you regretted about installing that package in the middle of the process, you are unable to stop it, and you can only uninstall after it spent some of your time, internet data and space in disk.
On the other hand, if the package has dependencies, first the “Install” button after clicked turns grey and then changes to a progress bar. But after some seconds a popup appears asking if you want to install the needed dependencies. There you have two buttons: “Apply” that follows with installation and “Cancel” that allows you to cancel the whole job.
Once the button “Install” is clicked, it should become immediately “Cancel” or “Abort”. The progress bar could be either alongside or below on the status bar. If the user decides to press “Cancel”, then all the job is discarded and the system should revert to its previous state like nothing has been done, and the caché of the downloaded parts should be deleted.
- Menu item "Show pending"
When you click on several packages to install and then click other packages’ entries to see them, would be hard to find what packages you chose to install and are being installed or in the queue waiting to be installed.
Add in menu “Show” an option “Show pending” to filter what packages are being installed or are waiting to be installed.
- Ratings’ filters
Currently there isn’t many ratings to applications (yet). But in the case there would be a lot of them, would be hard to find specific ratings or to read them comfortable. Also would be mixed reviews in several languages which you couldn’t understand or the reviews are (or aren’t) relevant to certain versions of the application.
Add a dropdown list to filter ratings by language and another one by version. If the rating hasn’t a language specified or it doesn’t contain text, it would be found in a default option like “No language”.
- [Idea not to consider very soon] Integration with proprietary repositories or repositories with paid software
Since Haiku is still a ongoing process in beta stage, there is currently almost none software providers who are selling software targetted to Haiku (the only exception I’m aware is TuneTracker Systems). So if you want to install proprietary software or software you purchased in advance (such as old BeOS software) you have to install them manually, or in the best scenario, the package could be opened in Haiku-Depot to be installed.
The current situation is that Haiku-Depot was thought as the place to install software that doesn’t cost money: search, click install, use. But in order to encourage more software companies to add Haiku support to their products and allow an easier experience to users that want to install these softwares, there could be a way to allow repositories to send not just the cryptographic key and name, but also describe other information such as if the software can be automatically installed or has to be purchased first.
What could be done
Allow repositories to send more information to client such as if software has or not source available, if it could be installed or has to be purchased and in this case the link to the website where the user can install it.
If Haiku Depot detects that an application does cost money, then it won’t show “Install”, but “Buy” instead. Clicking that button would open the default web broser to the software url.
There would still be some problems: if you are directed to the website to purchase the software, then you probably open your account in company’s services (if necessary), pay and claim the serial (if applicable). After that you would download the HPKG package and double clic to install in Haiku Depot. In this case it wouldn’t make any sense to allow proprietary repositories or repositories with non-gratis software: you could go directly to company’s website to the whole process. The only thing that having a propietary repo would be useful for is to get updates of the proprietary or paid software.
To address the aforementioned issue and make possible to install such software, it would require to add additional capabilites to Haiku Depot: add a service to allow logging into company’s services to install the software if you have already bought it, otherwise it would direct to their store.
Please keep in mind that this idea needs to be worked a lot to even consider it seriously.
- Package caché policy
Currently when you uninstall an application you installed from the repositories, it will be gone and deleted. Then if you find yourself without internet and wanted to reinstall that application again, you won’t be able to reinstall it until you find a connection or downloaded it in advance or in an USB stick. Or just would exist the case you want a specific version of the package for whatever reason.
Add a caché policy configuration to allow the user to decide if he/she wants to keep a copy of the package once uninstalled in case he/she wants to reinstall it under lack of connection scenarios. The cache policy should be configured as “Enabled” or “Disabled”. In case it is “Enabled”, it should allow user to configure the max. size of the cache before it has to delete the lower priority packages in caché (the priority itself would have to be defined), or the max. age after which the older caché packages would be deleted, or if previous versions should be kept or not. If Haiku Depot (or the system) would support storage of previous versions of the packages, then alongside of button “Install” could have a “Revert to previous version” button that once clicked, it should warn user what could happen if he/she reverts to an older version.
- Smart dependencies tree handling
If an application has dependencies, Haiku Depot will install them before installing the requested application. But if you uninstall that application, the dependencies are left installed even if they aren’t useful to the system or other installed applications.
As it happens with apt in Debian based OS when running “apt-get autoremove”, Haiku Depot (or the underlying package management system) should be able to know if dependencies that are left behind are not used anymore and if that’s the case, ask the user if he/she wants to uninstall them too. In order to avoid any issues in unresolved dependencies (such as in case applications that are not packaged in HPKG or under development that need the dependency), this option should be disabled by default.