From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: Re: rolling back only a single package Date: Mon, 31 Dec 2018 04:11:27 -0300 Message-ID: <87wonq1880.fsf@dc.uba.ar> References: <09ccab6e031dddc448863c812f400e0a@dc.uba.ar> <20181228143410.283e8d8a@alma-ubu> <87efa14sgu.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:38452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gdrka-0003X0-FB for help-guix@gnu.org; Mon, 31 Dec 2018 02:12:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gdrkV-00064j-VF for help-guix@gnu.org; Mon, 31 Dec 2018 02:12:36 -0500 Received: from mta0.exactas.uba.ar ([157.92.32.130]:48284) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gdrkR-0005Ub-F7 for help-guix@gnu.org; Mon, 31 Dec 2018 02:12:30 -0500 In-Reply-To: <87efa14sgu.fsf@elephly.net> (Ricardo Wurmus's message of "Fri, 28 Dec 2018 15:49:05 +0100") List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Ricardo Wurmus Cc: help-guix@gnu.org Hi Ricardo, thanks for answering, so basically this is equivalent to find the generation of commit 65956a... and invoking guix-generation-x to install guile-json. Yes, I see why this it's better than using "guix package -i *" and it relates well to my other question about profile -> packages definitions generation. Just write manifests, instantiate them and when it's time to migrate the pacakges definitions will already there. What happens if you then do "guix package -i guile-json" or if somewhere in the future "guix package -U" after a pull? It will honor the manifest or just install the guile-json on the package definition? I don't know if I can make my mind on what sort of behaviur should be best but maybe I'm more towards the idea that a manifest should take precedence, maybe with an override flag. Anyway I can try and check later what guix does. Thanks! and have a happy new year eve. Ricardo Wurmus writes: > Inferiors work, but you=E2=80=99d use them in manifests. The idea is to = install > the package with an old version of Guix, but to do it in code instead of > manually. Here=E2=80=99s an example: > > (use-modules (guix inferior) (guix channels) > (srfi srfi-1)) ;for 'first' > > (define channels > ;; This is the old revision from which we want to > ;; extract guile-json. > (list (channel > (name 'guix) > (url "https://git.savannah.gnu.org/git/guix.git") > (commit > "65956ad3526ba09e1f7a40722c96c6ef7c0936fe")))) > > (define inferior > ;; An inferior representing the above revision. > (inferior-for-channels channels)) > > ;; Now create a manifest with the current "guile" package > ;; and the old "guile-json" package. > (packages->manifest > (list (first (lookup-inferior-packages inferior "guile-json")) > (specification->package "guile"))) > > You can instantiate the manifest the usual way: > > guix package -m /path/to/manifest.scm > > -- > Ricardo -- Catriel