unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
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!





  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).