#1094278 kdevelop-python: Avoid explicit Python version dependencies

#1094278#5
Date:
2025-01-26 17:58:24 UTC
From:
To:
$ grep-dctrl -s Package,Build-Depends -F Build-Depends python3.12
...
Package: kdevelop-python
Build-Depends: cmake (>= 3.16~), debhelper-compat (= 13), dh-sequence-kf5, extra-cmake-modules (>= 5.78.0~), gettext, qtbase5-dev (>= 5.15.0~), libkf5i18n-dev (>= 5.78.0~), libkf5itemmodels-dev (>= 5.78.0~), libkf5kcmutils-dev (>= 5.78.0~), libkf5newstuff-dev (>= 5.78.0~), libkf5texteditor-dev (>= 5.78.0~), libkf5threadweaver-dev (>= 5.78.0~), kdevelop-dev (>= 4:23.08.1~), libpython3.12-dev, python3.12:any

Please try to avoid explicit Python versions in Build-Depends, you
should be able to build-depend on "libpython3-dev, python3" (or
even-better: "libpython3-all-dev, python3-all")

Stefano

#1094278#14
Date:
2025-01-26 20:02:16 UTC
From:
To:
control: tags -1 + wontfix

Dear Stefano,

Le dimanche 26 janvier 2025, 18:58:24 UTC+1 Stefano Rivera a écrit :
kdevelop-python 24.12.1-1 has :

Build-Depends: debhelper-compat (= 13), dh-sequence-kf6, cmake (>= 3.19~), extra-cmake-modules (>= 6.0.0~), gettext, kdevelop-dev (>= 4:24.12~), libkf6config-dev (>= 6.0.0~), libkf6coreaddons-dev (>= 6.0.0~), libkf6i18n-dev (>= 6.0.0~), libkf6parts-dev (>= 6.0.0~), libkf6service-dev (>= 6.0.0~), libkf6texteditor-dev (>= 6.0.0~), libkf6threadweaver-dev (>= 6.0.0~), libkf6widgetsaddons-dev (>= 6.0.0~), libkf6xmlgui-dev (>= 6.0.0~), libpython3.13-dev, python3.13:any, qt6-5compat-dev (>= 6.5.0~), qt6-base-dev (>= 6.5.0~),
The current version has the following in its CMakeLists.txt [1] :
find_package(Python3 3.4.3...<3.14 COMPONENTS Interpreter Development REQUIRED)

So no, I’m not going to do that, I think it would be misleading and would hide the real issue that kdevelop cannot be rebuilt with just any version of Python.

[1] https://invent.kde.org/kdevelop/kdev-python/-/blob/v24.12.1/CMakeLists.txt?ref_type=tags#L45


Happy hacking,
--
Aurélien

#1094278#21
Date:
2025-01-26 20:02:16 UTC
From:
To:
control: tags -1 + wontfix

Dear Stefano,

Le dimanche 26 janvier 2025, 18:58:24 UTC+1 Stefano Rivera a écrit :
kdevelop-python 24.12.1-1 has :

Build-Depends: debhelper-compat (= 13), dh-sequence-kf6, cmake (>= 3.19~), extra-cmake-modules (>= 6.0.0~), gettext, kdevelop-dev (>= 4:24.12~), libkf6config-dev (>= 6.0.0~), libkf6coreaddons-dev (>= 6.0.0~), libkf6i18n-dev (>= 6.0.0~), libkf6parts-dev (>= 6.0.0~), libkf6service-dev (>= 6.0.0~), libkf6texteditor-dev (>= 6.0.0~), libkf6threadweaver-dev (>= 6.0.0~), libkf6widgetsaddons-dev (>= 6.0.0~), libkf6xmlgui-dev (>= 6.0.0~), libpython3.13-dev, python3.13:any, qt6-5compat-dev (>= 6.5.0~), qt6-base-dev (>= 6.5.0~),
The current version has the following in its CMakeLists.txt [1] :
find_package(Python3 3.4.3...<3.14 COMPONENTS Interpreter Development REQUIRED)

So no, I’m not going to do that, I think it would be misleading and would hide the real issue that kdevelop cannot be rebuilt with just any version of Python.

[1] https://invent.kde.org/kdevelop/kdev-python/-/blob/v24.12.1/CMakeLists.txt?ref_type=tags#L45


Happy hacking,
--
Aurélien

#1094278#26
Date:
2025-01-27 18:37:39 UTC
From:
To:
Hi Aurélien (2025.01.26_20:02:16_+0000)

Thanks, that's at least better that depending on the non-default
version.

That sounds like it supports any default version between 3.4 and 3.14.
Almost all Python packages are in a situation like that. They support a
few older versions, and probably support future versions, but they don't
know for sure, yet. In that situation, Build-Depending on python3-dev or
python3-all-dev is perfectly reasonable to do. When we change the
supported versions in the archive, either your package will just work,
or it'll fail its tests and you'll get an FTBFS bug report.

I don't see any reason why kdevelop needs 3.13 explicitly specified in
its build-depends.

Stefano

#1094278#31
Date:
2025-01-27 18:37:39 UTC
From:
To:
Hi Aurélien (2025.01.26_20:02:16_+0000)

Thanks, that's at least better that depending on the non-default
version.

That sounds like it supports any default version between 3.4 and 3.14.
Almost all Python packages are in a situation like that. They support a
few older versions, and probably support future versions, but they don't
know for sure, yet. In that situation, Build-Depending on python3-dev or
python3-all-dev is perfectly reasonable to do. When we change the
supported versions in the archive, either your package will just work,
or it'll fail its tests and you'll get an FTBFS bug report.

I don't see any reason why kdevelop needs 3.13 explicitly specified in
its build-depends.

Stefano

#1094278#36
Date:
2025-01-28 17:58:17 UTC
From:
To:
Le lundi 27 janvier 2025, 19:37:39 UTC+1 stefanor@debian.org a écrit :

_ and 3.14… excluded !

I don’t agree that it’s the same thing to not know for sure yet, and to explicitly state future versions are expected not to be OK in your build system.

In this case it means we have to upgrade kdevelop-python anyway for it to build with python 3.14, and we will update the build dependencies accordingly when time comes.


Happy hacking,
--
Aurélien

#1094278#41
Date:
2025-01-28 17:58:17 UTC
From:
To:
Le lundi 27 janvier 2025, 19:37:39 UTC+1 stefanor@debian.org a écrit :

_ and 3.14… excluded !

I don’t agree that it’s the same thing to not know for sure yet, and to explicitly state future versions are expected not to be OK in your build system.

In this case it means we have to upgrade kdevelop-python anyway for it to build with python 3.14, and we will update the build dependencies accordingly when time comes.


Happy hacking,
--
Aurélien