GSoC status - Week 3
mbw500 at york.ac.uk
Sun Jul 7 04:15:34 UTC 2013
Another week, another soc-status mail!
This week I've mainly been implementing basic forms of the InstallPackages
(remote installation) and InstallFiles (local installation) features. The
good news is that I've managed to install (trivial) packages with both, so
they are mostly functional.
There are a few issues to iron out, most notably perhaps being the fact
that I implemented events on InstallPackages a bit too overzealously and
it now bombs out with a fatal error if mild things such as cached packages
having checksum mismatches occur. More cosmetic problems include the
install queues being unsorted (and thus causing a large amount of "these
packages are to be installed, ...reinstalled, ...installed, ...updated,
I also implemented a very basic test, mostly for me at this stage, to
check to see if GetDetails gets broken by any changes (and there have been
lots of infrastructure changes). Currently it is pointing out that while
`pkg` can return multiple packages for an unversioned package query, the
backend only returns the first one - I'm not sure as of yet how to proceed
to resolve this.
There are now two main "helper" subsystems available for the common tasks
of selecting one package matching a PackageID and either sending the
package to a function for emitting data from it (GetDetails, GetFiles) or
adding it to a (currently one package only) job and sending it to a
function for solving and applying (InstallPackages). There are a lot of
optimisations and tweaks that could be made to the query functions, as the
whole query code has mostly evolved to save duplication rather than being
I've also removed most of the dummy boilerplate. I was keeping this in to
remind me which features I needed to install, but as the backend is
becoming more and more useful I thought I'd take it out so no non-GSoC
code is polluting the main code file.
In all, I thought I was going to be behind my milestones this week, but
aside from some niggles left to solve later it seems that both local and
remote package installation are present and informally tested to work in
certain use cases.
- Backend sometimes crashes when moving from SimulateInstallPackages to
InstallPackages or cancelling; not sure what's causing this at the
moment, will investigate later.
- Test for GetDetails expects certain packages to be installed and
fails when multiple versions of a single package exist, needs some
thought as to how the backend should solve multiple version problems.
- Install list produces multiple reinstall/install/update category
headings due to no sort being produced on the iterator output; may
fix, may leave as-is.
- Non-severe errors can cause the installation to fail with a fatal
error, I need to change the install event handler to stop this.
- All package arguments must be given as PackageIDs; this is due to
Resolve not being implemented, may work on this next week.
More information about the soc-status