packagekit/TODO

64 lines
2.0 KiB
Plaintext

Order of no particular importance:
*** Add a queing API ***
Jobs need to be queued so that read only jobs can be done in parallel,
but write jobs are done in serial. Maybe spawn each task and put it into a
paused state?
NOTE: RELEASE BLOCKER
*** Add a way to import GPG keys ***
In fedora, if you add a signed repo you have to agree to the GPG key.
*** Split up PolicyKit install into different types ***
Have different permissions for signed and unsigned repos.
*** Add files in package into Description signal ***
We need a way to get the installed files into the UI.
*** Add package size into description signal ***
We need a way to work out how long something is going to take, and
to expose in the UI.
*** Valgrind everything ***
We leak memory like there is no tommorrow.
*** task_client has to return GError ***
Client programs using libpackagekit should know the error, rather than just
"it failed"
*** Add logging so we can see what was installed/removed and when ***
Depends on transaction_id and sqlite integration.
*** Add "when installed" and "installed by" data into UI ***
Is this useful?
We would need to store package_id,installed_by,when_installed in a sqlite database
*** Add GetUpdateDetail
update_detail
GetUpdateDetail(s=package_id)
UpdateDetail(
string package_id
string updates
string obsoletes
string url
string restart_enum
string update_text
}
NOTE: RELEASE BLOCKER
*** Have to have an UpdatesChanged signal ***
For the icon to update after we've done a system upgrade
NOTE: RELEASE BLOCKER
*** Dummy backend should use subpercent and install deps ***
It's not a great test case right now...
*** Handle rollbacks for select backends ***
To do rollbacks sanely in PK we need a few things:
* convert the job into a transaction_id
* save the transaction_id's and descriptions to a database
* add a method to get the transaction_id's in the last x transactions
* write an application that can see the description of the transactions
* use an new method to handle the rollbacks and pass it to the backend