diff mbox series

[meta-python] python3-pandas: upgrade 2.0.3 -> 2.2.2

Message ID 20240812182036.1132711-1-tgamblin@baylibre.com
State Accepted
Headers show
Series [meta-python] python3-pandas: upgrade 2.0.3 -> 2.2.2 | expand

Commit Message

Trevor Gamblin Aug. 12, 2024, 6:20 p.m. UTC
pandas 2.2.2 is the first version compatible with numpy 2.0.x.

The package now uses meson as the build backend, so change the recipe to
inherit that.

Its pyproject.toml pins required versions for Cython and meson, but
newer upstream pandas releases are using different versions and
compatibility strings, so just add an OE-specific patch to relax the
requirements a bit for us.

Changelog: https://pandas.pydata.org/pandas-docs/version/2.2.2/whatsnew/v2.2.2.html

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
---
 ...t.toml-don-t-pin-dependency-versions.patch | 37 +++++++++++++++++++
 ...andas_2.0.3.bb => python3-pandas_2.2.2.bb} |  8 +++-
 2 files changed, 43 insertions(+), 2 deletions(-)
 create mode 100644 meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
 rename meta-python/recipes-devtools/python/{python3-pandas_2.0.3.bb => python3-pandas_2.2.2.bb} (81%)

Comments

Khem Raj Aug. 13, 2024, 3:38 a.m. UTC | #1
On Mon, Aug 12, 2024 at 11:20 AM Trevor Gamblin via
lists.openembedded.org <tgamblin=baylibre.com@lists.openembedded.org>
wrote:
>
> pandas 2.2.2 is the first version compatible with numpy 2.0.x.
>
> The package now uses meson as the build backend, so change the recipe to
> inherit that.
>
> Its pyproject.toml pins required versions for Cython and meson, but
> newer upstream pandas releases are using different versions and
> compatibility strings, so just add an OE-specific patch to relax the
> requirements a bit for us.
>
> Changelog: https://pandas.pydata.org/pandas-docs/version/2.2.2/whatsnew/v2.2.2.html
>
> Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
> ---
>  ...t.toml-don-t-pin-dependency-versions.patch | 37 +++++++++++++++++++
>  ...andas_2.0.3.bb => python3-pandas_2.2.2.bb} |  8 +++-
>  2 files changed, 43 insertions(+), 2 deletions(-)
>  create mode 100644 meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
>  rename meta-python/recipes-devtools/python/{python3-pandas_2.0.3.bb => python3-pandas_2.2.2.bb} (81%)
>
> diff --git a/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch b/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
> new file mode 100644
> index 000000000..f60f43a5b
> --- /dev/null
> +++ b/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
> @@ -0,0 +1,37 @@
> +From d46b8720a6bccb345f6bdd7ee2f5c357e7eb227b Mon Sep 17 00:00:00 2001
> +From: Trevor Gamblin <tgamblin@baylibre.com>
> +Date: Mon, 12 Aug 2024 11:27:36 -0400
> +Subject: [PATCH] pyproject.toml: don't pin dependency versions
> +
> +Pandas will fail to build if the exact versions aren't found, but newer
> +ones actually work. Since newer versions of pandas are adjusting the
> +requires section of pyproject toml further, just patch it for us.
> +
> +Upstream-Status: Inappropriate [OE-Specific]
> +
> +Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
> +---
> + pyproject.toml | 6 +++---
> + 1 file changed, 3 insertions(+), 3 deletions(-)
> +
> +diff --git a/pyproject.toml b/pyproject.toml
> +index db9f055799..5158d60f59 100644
> +--- a/pyproject.toml
> ++++ b/pyproject.toml
> +@@ -2,10 +2,10 @@
> + # Minimum requirements for the build system to execute.
> + # See https://github.com/scipy/scipy/pull/12940 for the AIX issue.
> + requires = [
> +-    "meson-python==0.13.1",
> +-    "meson==1.2.1",
> ++    "meson-python>=0.13.1",
> ++    "meson>=1.2.1",
> +     "wheel",
> +-    "Cython==3.0.5",  # Note: sync with setup.py, environment.yml and asv.conf.json
> ++    "Cython>=3.0.5",  # Note: sync with setup.py, environment.yml and asv.conf.json
> +     # Force numpy higher than 2.0rc1, so that built wheels are compatible
> +     # with both numpy 1 and 2
> +     "numpy>=2.0.0rc1",

This means I have to synchronise this patch with the numpy 2.x upgrade
patch in oe-core

> +--
> +2.39.2
> +
> diff --git a/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb b/meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
> similarity index 81%
> rename from meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
> rename to meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
> index 91e76d991..ac8d46984 100644
> --- a/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
> +++ b/meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
> @@ -6,9 +6,13 @@ HOMEPAGE = "http://pandas.pydata.org/"
>  LICENSE = "BSD-3-Clause"
>  LIC_FILES_CHKSUM = "file://LICENSE;md5=cb819092901ddb13a7d0a4f5e05f098a"
>
> -SRC_URI[sha256sum] = "c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"
> +SRC_URI += " \
> +            file://0001-pyproject.toml-don-t-pin-dependency-versions.patch \
> +            "
>
> -inherit pypi setuptools3
> +SRC_URI[sha256sum] = "9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"
> +
> +inherit pypi python_mesonpy
>
>  DEPENDS += " \
>      python3-cython-native \
> --
> 2.39.2
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#111773): https://lists.openembedded.org/g/openembedded-devel/message/111773
> Mute This Topic: https://lists.openembedded.org/mt/107862188/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Trevor Gamblin Aug. 13, 2024, 12:23 p.m. UTC | #2
On 2024-08-12 11:38 p.m., Khem Raj wrote:
> On Mon, Aug 12, 2024 at 11:20 AM Trevor Gamblin via
> lists.openembedded.org <tgamblin=baylibre.com@lists.openembedded.org>
> wrote:
>> pandas 2.2.2 is the first version compatible with numpy 2.0.x.
>>
>> The package now uses meson as the build backend, so change the recipe to
>> inherit that.
>>
>> Its pyproject.toml pins required versions for Cython and meson, but
>> newer upstream pandas releases are using different versions and
>> compatibility strings, so just add an OE-specific patch to relax the
>> requirements a bit for us.
>>
>> Changelog: https://pandas.pydata.org/pandas-docs/version/2.2.2/whatsnew/v2.2.2.html
>>
>> Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
>> ---
>>   ...t.toml-don-t-pin-dependency-versions.patch | 37 +++++++++++++++++++
>>   ...andas_2.0.3.bb => python3-pandas_2.2.2.bb} |  8 +++-
>>   2 files changed, 43 insertions(+), 2 deletions(-)
>>   create mode 100644 meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
>>   rename meta-python/recipes-devtools/python/{python3-pandas_2.0.3.bb => python3-pandas_2.2.2.bb} (81%)
>>
>> diff --git a/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch b/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
>> new file mode 100644
>> index 000000000..f60f43a5b
>> --- /dev/null
>> +++ b/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
>> @@ -0,0 +1,37 @@
>> +From d46b8720a6bccb345f6bdd7ee2f5c357e7eb227b Mon Sep 17 00:00:00 2001
>> +From: Trevor Gamblin <tgamblin@baylibre.com>
>> +Date: Mon, 12 Aug 2024 11:27:36 -0400
>> +Subject: [PATCH] pyproject.toml: don't pin dependency versions
>> +
>> +Pandas will fail to build if the exact versions aren't found, but newer
>> +ones actually work. Since newer versions of pandas are adjusting the
>> +requires section of pyproject toml further, just patch it for us.
>> +
>> +Upstream-Status: Inappropriate [OE-Specific]
>> +
>> +Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
>> +---
>> + pyproject.toml | 6 +++---
>> + 1 file changed, 3 insertions(+), 3 deletions(-)
>> +
>> +diff --git a/pyproject.toml b/pyproject.toml
>> +index db9f055799..5158d60f59 100644
>> +--- a/pyproject.toml
>> ++++ b/pyproject.toml
>> +@@ -2,10 +2,10 @@
>> + # Minimum requirements for the build system to execute.
>> + # See https://github.com/scipy/scipy/pull/12940 for the AIX issue.
>> + requires = [
>> +-    "meson-python==0.13.1",
>> +-    "meson==1.2.1",
>> ++    "meson-python>=0.13.1",
>> ++    "meson>=1.2.1",
>> +     "wheel",
>> +-    "Cython==3.0.5",  # Note: sync with setup.py, environment.yml and asv.conf.json
>> ++    "Cython>=3.0.5",  # Note: sync with setup.py, environment.yml and asv.conf.json
>> +     # Force numpy higher than 2.0rc1, so that built wheels are compatible
>> +     # with both numpy 1 and 2
>> +     "numpy>=2.0.0rc1",
> This means I have to synchronise this patch with the numpy 2.x upgrade
> patch in oe-core

Yes, once that is merged then this should be OK to merge as well.

- Trevor

>
>> +--
>> +2.39.2
>> +
>> diff --git a/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb b/meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
>> similarity index 81%
>> rename from meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
>> rename to meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
>> index 91e76d991..ac8d46984 100644
>> --- a/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
>> +++ b/meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
>> @@ -6,9 +6,13 @@ HOMEPAGE = "http://pandas.pydata.org/"
>>   LICENSE = "BSD-3-Clause"
>>   LIC_FILES_CHKSUM = "file://LICENSE;md5=cb819092901ddb13a7d0a4f5e05f098a"
>>
>> -SRC_URI[sha256sum] = "c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"
>> +SRC_URI += " \
>> +            file://0001-pyproject.toml-don-t-pin-dependency-versions.patch \
>> +            "
>>
>> -inherit pypi setuptools3
>> +SRC_URI[sha256sum] = "9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"
>> +
>> +inherit pypi python_mesonpy
>>
>>   DEPENDS += " \
>>       python3-cython-native \
>> --
>> 2.39.2
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#111773): https://lists.openembedded.org/g/openembedded-devel/message/111773
>> Mute This Topic: https://lists.openembedded.org/mt/107862188/1997914
>> Group Owner: openembedded-devel+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch b/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
new file mode 100644
index 000000000..f60f43a5b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pandas/0001-pyproject.toml-don-t-pin-dependency-versions.patch
@@ -0,0 +1,37 @@ 
+From d46b8720a6bccb345f6bdd7ee2f5c357e7eb227b Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Mon, 12 Aug 2024 11:27:36 -0400
+Subject: [PATCH] pyproject.toml: don't pin dependency versions
+
+Pandas will fail to build if the exact versions aren't found, but newer
+ones actually work. Since newer versions of pandas are adjusting the
+requires section of pyproject toml further, just patch it for us.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ pyproject.toml | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index db9f055799..5158d60f59 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -2,10 +2,10 @@
+ # Minimum requirements for the build system to execute.
+ # See https://github.com/scipy/scipy/pull/12940 for the AIX issue.
+ requires = [
+-    "meson-python==0.13.1",
+-    "meson==1.2.1",
++    "meson-python>=0.13.1",
++    "meson>=1.2.1",
+     "wheel",
+-    "Cython==3.0.5",  # Note: sync with setup.py, environment.yml and asv.conf.json
++    "Cython>=3.0.5",  # Note: sync with setup.py, environment.yml and asv.conf.json
+     # Force numpy higher than 2.0rc1, so that built wheels are compatible
+     # with both numpy 1 and 2
+     "numpy>=2.0.0rc1",
+-- 
+2.39.2
+
diff --git a/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb b/meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
similarity index 81%
rename from meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
rename to meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
index 91e76d991..ac8d46984 100644
--- a/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
+++ b/meta-python/recipes-devtools/python/python3-pandas_2.2.2.bb
@@ -6,9 +6,13 @@  HOMEPAGE = "http://pandas.pydata.org/"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=cb819092901ddb13a7d0a4f5e05f098a"
 
-SRC_URI[sha256sum] = "c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"
+SRC_URI += " \
+            file://0001-pyproject.toml-don-t-pin-dependency-versions.patch \
+            "
 
-inherit pypi setuptools3
+SRC_URI[sha256sum] = "9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"
+
+inherit pypi python_mesonpy
 
 DEPENDS += " \
     python3-cython-native \