[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#69997: Should ‘guix import pypi’ get dependencies from pyproject fil
From: |
Tanguy LE CARROUR |
Subject: |
bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files? |
Date: |
Tue, 26 Mar 2024 08:54:17 +0100 |
User-agent: |
alot/0.10 |
Hi Ludo’,
Quoting Ludovic Courtès (2024-03-25 12:06:51)
> Should ‘guix import pypi’ attempt to get dependency information from
> ‘pyproject.toml’, in addition to ‘requirements.txt’ and wheel ‘METADATA’
> as it already does?
>
> It might be more complicated than we’d like: in some cases, that file
> seems to be used as a “trampoline” to Poetry. For instance, in
> python-pypugjs, the ‘requires’ bit delegates everything to Poetry:
Short answer: no! 😁
I’m pretty sure you know everything that I’m about to write, but better
say it out loud…
For a "standard modern" project managed with Poetry, the Python source
package contains `PKG-INFO` and `pyproject.toml ` that both contain
the run time dependencies. The wheel package only contains `METADATA` that
lists the dependencies. The source only contains a `pyproject.toml`.
To make the installed package as small as possible, tests files and
uncompiled assets are not (should not be) included.
>From a Guix stand point, it’s better to build from source to be able to
run the test suite.
For the `python-pypugjs` you used as an example, we build from source,
so I guess the question does not arise. If we were to use the packages
available on PyPI, what I said above is *NOT* confirmed 😱:
- wheel (`.whl`) only contains `METADATA` with the dependencies; **BUT**
- source (`.tar.gz`) contains `PKG-INFO` (without dependency information),
`pyproject.toml` (with dep’) and `setup.py` (also with dep’).
… "fun" fact, the information in `pyproject.toml` are **NOT** the same as
the one in `setup.py`!? 🤯 `pyproject.toml` says that `nose` is a run time
dependency (which it is not), but `setup.py` properly lists it in
`tests_require`.
So, my answer would be: do not import from PyPI! Yes, I know, it’s radical! 😅
But if you have to, rely on the wheel’s `METADATA` file.
I hope this make sense. … I’m not really sure any more! 😅
Regards,
--
Tanguy
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Ludovic Courtès, 2024/03/25
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Sharlatan Hellseher, 2024/03/25
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?,
Tanguy LE CARROUR <=
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Ludovic Courtès, 2024/03/26
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Tanguy LE CARROUR, 2024/03/26
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Tanguy LE CARROUR, 2024/03/26
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Ludovic Courtès, 2024/03/28
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Tanguy LE CARROUR, 2024/03/29
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Ludovic Courtès, 2024/03/29
- bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Tanguy LE CARROUR, 2024/03/29
bug#69997: Should ‘guix import pypi’ get dependencies from pyproject files?, Lars-Dominik Braun, 2024/03/27