Hi Ludovic, [email protected] (Ludovic Courtès) writes:
> Mark H Weaver <[email protected]> skribis: >> + (upgrade (if (null? upgrade-regexps) >> + '() >> + (filter-map (match-lambda >> + ((name _ _ _ _) >> + (and (any (cut regexp-exec <> >> name) >> + upgrade-regexps) >> + (find-package name))) >> + (_ #f)) >> + installed))) > > It’s actually slightly more complex: you need to select those packages > that are installed and for which either a newer version is available > (per ‘version-string>?’, see gnu-maintenance.scm; should be moved to > utils.scm), or the version is identical and the output path differs (for > instance because one of its dependencies has changed.) Okay. I was relying on the fact that attempts to install a derivation that's already installed will ultimately be ignored, and my (admittedly simple) tests seem to suggest that it works properly, but perhaps this approach will be too inefficient when the profile contains a large number of packages. I'll do as you suggest and post an updated patch soon. > There are tests in guix-package.sh, but this one is going to be > difficult to test without building the world. Would you be willing to write the tests? I think that my knowledge of Guix is still too weak to do this job properly. (For that matter, it was probably foolish of me to try to implement --upgrade at this early stage in my explorations :) > I think guix-package needs a -e switch (as for guix-build), which would > allow us to write dummy packages for test purposes. Makes sense. Thanks! Mark
