From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id GNeKFw/QgV9HeQAA0tVLHw (envelope-from ) for ; Sat, 10 Oct 2020 15:15:27 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id kP1FEw/QgV/lNQAAB5/wlQ (envelope-from ) for ; Sat, 10 Oct 2020 15:15:27 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id BC5C69404D1 for ; Sat, 10 Oct 2020 15:15:26 +0000 (UTC) Received: from localhost ([::1]:41734 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kRGai-0005PX-4p for larch@yhetil.org; Sat, 10 Oct 2020 11:15:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34000) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kRGaZ-0005P4-IO for help-guix@gnu.org; Sat, 10 Oct 2020 11:15:15 -0400 Received: from mout02.posteo.de ([185.67.36.66]:45527) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kRGaW-0006Uw-PD for help-guix@gnu.org; Sat, 10 Oct 2020 11:15:15 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id B15702400FD for ; Sat, 10 Oct 2020 17:15:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1602342909; bh=xQan8ikUdJQNtPGb7z6/Urw0NBmX+9AzTLfbC02H3HI=; h=Subject:To:Cc:From:Date:From; b=P3dMJtJx2bCtQQo/DCSG221uimuU9nCztru0xqAJXZtenmUEL0djnH6eXZCDspPzz TGT9/ukM/aSB4de+7VVAYPE9hr4WE5guHDr51zN4cRoVrK2BzP9QpNcEv1CLhXJJgm 2BFRrhc4R+JEGz17IPwd6SVg+ns87wyk0wGZ0DVhlmCU/vPiFqRjXj4FTokwjqnLJW psCn1gsxfAMfAXvMYS2AKPuQfD/KkC2igQKNv3IWdtvsWem5i9nBc0LKuA2HBK7jqI I+/DyvXgDwgWtufrbKfr4eTPBtmf7HKl7DDK4SqciwY4b8v6Sqa6gyQYCg0b636xmm qQhy0jAhfwxvg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4C7pQF6Xdnz6tmP; Sat, 10 Oct 2020 17:14:45 +0200 (CEST) Subject: Re: How to install previous versions? To: zimoun References: <74f9ab4c-346a-fa13-53ca-8d47dd50e683@posteo.de> From: Zelphir Kaltstahl X-Tagtoolbar-Keys: D20201010171445393 Message-ID: Date: Sat, 10 Oct 2020 17:14:45 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Received-SPF: pass client-ip=185.67.36.66; envelope-from=zelphirkaltstahl@posteo.de; helo=mout02.posteo.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/10 11:15:10 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.207, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: help-guix Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (body hash did not verify) header.d=posteo.de header.s=2017 header.b=P3dMJtJx; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.de (policy=none); spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Spam-Score: 2.59 X-TUID: HxRW0kn6EwPx Hello Zimoun! Thank you for your reply! I have a few follow up questions. On 10/9/20 6:37 PM, zimoun wrote: > Hi, > > On Fri, 9 Oct 2020 at 19:19, Zelphir Kaltstahl > wrote: > >> http://data.guix.gnu.org/repository/1/branch/master/package/python-redis. > On this web page, you can click on the date: first commit and last > commit known to have this version. You can even see the status > (build, failed, pending, etc.) on this web page (appending > 'output-history') > > http://data.guix.gnu.org/repository/1/branch/master/package/python-redis/output-history So far so good, I get until this point. > For example, clicking leads to: > > http://data.guix.gnu.org/revision/f5111b4d2b982d58387188bc3018e4dd2e9a9d4f Here is where I am lost. Where do I need to click? I see a link named `/gnu/store/wlj2bq4g9ki9iz6vqlv366c0v5qmszg7-python-redis-3.3.8`, which seems to be the latest of the python-redis 3.3.8 version, but that one leads me elsewhere, leads me to `http://data.guix.gnu.org/gnu/store/wlj2bq4g9ki9iz6vqlv366c0v5qmszg7-python-redis-3.3.8`. > And this gives you the commit with 'python-redis@3.8', using the command: > > guix time-machine --commit=f5111b \ > -- environment --ad-hoc python-redis python \ > -- python OK, assume I get the commit id. I just tried this with the following command: ~~~~ guix time-machine --commit=f5111b -- environment --ad-hoc 'python-redis@3.3.8' 'python@3.8' -- python3.8 ~~~~ That runs for a quite while and then I get: ~~~~ Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... guile: warning: failed to install locale guix environment: error: python: package not found for version 3.8.2 ~~~~ My guess is, that in this commit of Guix there was no Python 3.8.2 yet? Or perhaps `python-redis` was not build for that Python version? I do not have a specific use-case at this moment, but I would like to know how to get those specific versions, the same every single time I run the command. To compare, when I create a virtual environment using: ~~~~ python3 -m venv venv source venv/bin/activate pip install --requirement requirements.txt ~~~~ I can write the version of python-redis in my requirements.txt file and it will install just fine. That means, that is it compatible, so it's not a compatibility issue of python@3.8.2 and python-redis@3.3.8. However, those virtual environments are not reproducible, as there are no hashes stored or anything and everything relies on version numbers only. If anyone changed the code behind a version number, it would install different code. It would be cooler to have it in Guix and reproducible. >> So how would I need to write my manifest.scm or my one-liner to get back >> to that older version? > The best is to write a manifest file, say manifest.scm containing the > package you need: > > --8<---------------cut here---------------start------------->8--- > (specfications->manifest > (list > "python-redis" > "python" > "foo" > "bar" > "etc")) > --8<---------------cut here---------------end--------------->8--- But that is, what I already have, isn't it? There is no part in this, that indicates `guix time-machine`. If time-machine is necessary to get the older version of python-redis@3.3.8 in the command line, then there must be something I need to write in the manifest.scm file to let Guix know, that I want a specific commit id. Or perhaps this is not possible with a manifest? Or is the idea, that I need to have a tracked channel as well to achieve it? > The other no-so-said is to track "guix describe", you *should* _track_ > the file channels.scm: > > guix describe -f channels.scm OK this is probably the part, where I need to read the docs about it. I do not have a channels.scm and I do not know what does in there. I only have a vague idea about channels in my head. > > Then later or on another machine, you simply run the command: > > guix time-machine -C path/to/channels.scm \ > -- -m path/to/manifest.scm If I understand this correctly, a manifest with specific versions can only be guaranteed to work, if I track a channel as well. And somehow in that channel definition, I must specify which commit of Guix I am on? But wouldn't that limit my choice of libraries to what was available in one commit? > Hope that helps, > simon Thanks for all that info. There are still many things unclear to me, but I hope to gain an understanding of those as well : ) Best regards, Zelphir -- repositories: https://notabug.org/ZelphirKaltstahl