From: Phil <phil@beadling.co.uk>
To: Christopher Baines <mail@cbaines.net>
Cc: help-guix@gnu.org
Subject: Re: No Explicit Python Version Dependency In Package Definitions?
Date: Tue, 05 Jan 2021 14:59:27 +0000 [thread overview]
Message-ID: <85im8bqvjk.fsf@beadling.co.uk> (raw)
In-Reply-To: <87h7nwjm69.fsf@cbaines.net>
Thanks for the reply.
Christopher Baines writes:
> Build systems are a mechanic to deduplicate common steps, but also
> common inputs between packages, and the python-build-system will include
> a default Python as an input.
>
> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build-system/python.scm#n138
Got it - so the version is set behind the scenes depending on the
current python package definition.
> So, you can't have this particular python-scipy output in your store
> without python as well, as it's referenced by some shared libraries,
> which I guess makes sense.
Yep - so even tho python 3.8 is not installed by installing eg
python-scipy, the package is made available in the store as it's referenced.
> When the default python version is changed, the build system will change
> accordingly.
Yep makes sense - so the python package will now reference the 3.9
package here instead of 3.8:
;; Current 3.x version.
(define-public python-3 python-3.8)
I'm guessing my local Guix would stay on 3.8 until I did a guix
upgrade. At this point the new version of python-3 would force any
python packages I had to reinstall against 3.9. I assume my local 3.8 system
would be left untouched, such that I could rollback both the python
version and my packages if I wanted?
What would happen if I installed a new python package after pulling the
latest package definitions tho?
So I have a system say with python3.8 and python-scipy, and I decide I
want to then install python-pandas (for example). Will it not then
build this for python 3.9 (due to the new definition), if the version of
python has incremented between the installs of python-scipy and
python-pandas? Would I then have to manually reinstall python-scipy to
have it under 3.9 (as well as 3.8) (or do a guix upgrade)?
Last question, if today I wanted to create a profile that installed
python-scipy against the python 3.9 package definition (which already
exists in Guix it's just not the default). Do I have to change the
python-3 definition as per above, or is there another way of saying "use
python3.9 just for this profile".
I suspect I could use a manifest to install 3.9 rather than the default,
but won't any packages still depend on 3.8 unless I switch the python-3
definition?
Thanks again!
next prev parent reply other threads:[~2021-01-05 15:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-04 23:34 No Explicit Python Version Dependency In Package Definitions? Phil
2021-01-04 23:51 ` Christopher Baines
2021-01-05 14:59 ` Phil [this message]
2021-01-05 21:46 ` Christopher Baines
2021-01-05 22:56 ` Ricardo Wurmus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=85im8bqvjk.fsf@beadling.co.uk \
--to=phil@beadling.co.uk \
--cc=help-guix@gnu.org \
--cc=mail@cbaines.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).