On 06-06-2023 09:39, Elliott Sales de Andrade wrote:
On Mon, Jun 5, 2023 at 6:45 AM Sandro <lists(a)penguinpee.nl>
wrote:
>
> Hi again,
>
> I'm trying to understand why I'm getting a circular import error running
> tests only in F37 [1].
>
> It's an easy fix adding an empty __init__.py in %prep, but why are F38
> and rawhide buildroots happy not having that file, while F37 complaints?
Looking at the F37 log, you can see that only a few files were copied:
creating build/lib/palettable
copying palettable/utils.py -> build/lib/palettable
copying palettable/palette.py -> build/lib/palettable
copying palettable/__init__.py -> build/lib/palettable
with no trace of something named cmocean. And then looking at F38, you see:
/usr/lib/python3.11/site-packages/setuptools/command/build_py.py:202:
SetuptoolsDeprecationWarning: Installing 'palettable.cmocean' as
data is deprecated, please list it in `packages`.
############################
# Package would be ignored #
############################
Python recognizes 'palettable.cmocean' as an importable package,
but it is not listed in the `packages` configuration of setuptools.
'palettable.cmocean' has been automatically added to the distribution
only
because it may contain data files, but this behavior is likely to change
in future versions of setuptools (and therefore is considered deprecated).
Please make sure that 'palettable.cmocean' is included as a
package by using
the `packages` configuration field or the proper discovery methods
(for example by using `find_namespace_packages(...)`/`find_namespace:`
instead of `find_packages(...)`/`find:`).
You can read more about "package discovery" and "data files"
on setuptools
documentation page.
So you can see that the newer versions are happily working, but only
through some bit of compatibility concerns. It may eventually break
there as well.
I'm not quite sure I follow your explanation/analysis.
Yes, there is a deprecation warning, which should be addresses by
upstream. I'll let them know, possibly providing a patch.
I can also see that the build for F37 is incomplete. Indeed not all
modules have been added to the wheel.
What I fail to understand is how adding test/__init__.py fixes the
problem. I mean test is not even consulted during build. It resides
outside the palettable namespace.
diff --git a/python-palettable.spec b/python-palettable.spec
index 3334dc8..8d124db 100644
--- a/python-palettable.spec
+++ b/python-palettable.spec
@@ -32,6 +32,7 @@ BuildRequires: git-core
%prep
%autosetup -p1 -n %{pypi_name}-%{version} -S git
+touch test/__init__.py
%generate_buildrequires
%pyproject_buildrequires
This is the only change I made to the spec file. And all of a sudden it
works [2]? I didn't make any changes to pyproject.toml as suggested in
the deprecation warning.
Sorry, if I wasn't clear enough in my initial post.
> The versions of the involved packages only differ in minor /
patch
> versions between F37 and F38, if at all. With python-setuptools-wheel
> being the only package with a different major version.
>
> python3-devel 3.11.3-2.fc37 3.11.3-2.fc38
> python3-pytest 7.1.3-2.fc37 7.2.2-1.fc38
> pyproject-rpm-macros 1.8.0-1.fc37 1.8.0-1.fc38
> python-rpm-macros 3.11-5.fc37 3.11-10.fc38
> python-pip-wheel 22.2.2-3.fc37 22.3.1-2.fc38
> python-setuptools-wheel 62.6.0-3.fc37 65.5.1-2.fc38
>
>
> [1]
https://copr.fedorainfracloud.org/coprs/gui1ty/neuro-sig/build/6002232/
[2]
https://copr.fedorainfracloud.org/coprs/gui1ty/neuro-sig/build/6010125/
-- Sandro