Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{tools}[gfbf/2023b] Spyder v6.0.1, Deprecated v1.2.14, PyQt-builder v1.16.4, ... #21684

Open
wants to merge 23 commits into
base: develop
Choose a base branch
from

Conversation

pavelToman
Copy link
Contributor

@pavelToman pavelToman commented Oct 17, 2024

…f-2023b.eb, PyQt-builder-1.16.4-GCCcore-13.2.0.eb, PyQt5-5.15.10-GCCcore-13.2.0.eb, Qtconsole-5.6.0-GCCcore-13.2.0.eb, QtPy-2.4.1-GCCcore-13.2.0.eb, Rtree-1.2.0-GCCcore-13.2.0.eb, wrapt-1.16.0-gfbf-2023b.eb
@pavelToman
Copy link
Contributor Author

@boegelbot please test @ generoso

@boegelbot
Copy link
Collaborator

@pavelToman: Request for testing this PR well received on login1

PR test command 'EB_PR=21684 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_21684 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 14506

Test results coming soon (I hope)...

- notification for comment with ID 2419340360 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@pavelToman pavelToman changed the title {tools,vis}[GCCcore/13.2.0] Spyder v6.0.1, Deprecated v1.2.14, PyQt-builder v1.16.4, ... {tools}[gfbf/2023b] Spyder v6.0.1, Deprecated v1.2.14, PyQt-builder v1.16.4, ... Oct 17, 2024
@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 8 out of 8 (8 easyconfigs in total)
cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/d999934e9965fe8abf08537b1a7a3a41 for a full test report.

@pavelToman
Copy link
Contributor Author

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@pavelToman: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=21684 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_21684 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 5111

Test results coming soon (I hope)...

- notification for comment with ID 2419589197 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 8 out of 8 (8 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.4, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.18
See https://gist.github.com/boegelbot/f279a1aa48c7e41fc6e9935066f69b86 for a full test report.

@Flamefire
Copy link
Contributor

Would it make sense to use the same dependencies as in #21653 (and dependent PRs) such that the extracted easyconfigs can be used in other places? That would also bring down the number of extensions installed in the Spyder EC and updating the ECs might be sufficiently easy, at least after merging #21653

I'd also double check the extension list of Spyder with findPythonDeps using the fixed version from easybuilders/easybuild-framework#4682

I could help with that if desired.

@pavelToman
Copy link
Contributor Author

@boegelbot please test @ generoso

@boegelbot
Copy link
Collaborator

@pavelToman: Request for testing this PR well received on login1

PR test command 'EB_PR=21684 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_21684 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 14548

Test results coming soon (I hope)...

- notification for comment with ID 2426516467 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 15 out of 15 (15 easyconfigs in total)
cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/36047f4dd20dd73d097c8b11aa80360c for a full test report.

@pavelToman
Copy link
Contributor Author

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@pavelToman: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=21684 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_21684 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 5142

Test results coming soon (I hope)...

- notification for comment with ID 2427136093 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 15 out of 15 (15 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.4, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.18
See https://gist.github.com/boegelbot/1661b1081727094f6cc80a740154d522 for a full test report.

@pavelToman
Copy link
Contributor Author

@boegelbot please test @ generoso

@boegelbot
Copy link
Collaborator

@pavelToman: Request for testing this PR well received on login1

PR test command 'EB_PR=21684 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_21684 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 14551

Test results coming soon (I hope)...

- notification for comment with ID 2428803682 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 15 out of 15 (15 easyconfigs in total)
cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/2e4ec6de9a6b10fe8b65217710bc4e08 for a full test report.

@pavelToman
Copy link
Contributor Author

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@pavelToman: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=21684 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_21684 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 5146

Test results coming soon (I hope)...

- notification for comment with ID 2429170024 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 15 out of 15 (15 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.4, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.18
See https://gist.github.com/boegelbot/bb407e253c88221a2be1d8e2603df9c8 for a full test report.

Copy link
Contributor

@Flamefire Flamefire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I verified the packages against existing EasyConfigs and the findPythonDeps output. Comments and suggestions inline, tested locally.

Mostly: Lower to GCCcore and use PythonPackage where possible. Not really critical but I think it makes usage and updating later easier

pavelToman and others added 11 commits November 19, 2024 11:01
Copy link

github-actions bot commented Nov 19, 2024

Updated software Deprecated-1.2.14-gfbf-2023b.eb

Diff against Deprecated-1.2.14-foss-2023a.eb

easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-foss-2023a.eb

diff --git a/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-foss-2023a.eb b/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-gfbf-2023b.eb
index 803a1996c3..c80cc41c6d 100644
--- a/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-foss-2023a.eb
+++ b/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-gfbf-2023b.eb
@@ -1,7 +1,7 @@
 # author: Denis Kristak (INUITS)
 # update: Pavel Tománek (INUITS)
 
-easyblock = 'PythonBundle'
+easyblock = 'PythonPackage'
 
 name = 'Deprecated'
 version = '1.2.14'
@@ -9,21 +9,22 @@ version = '1.2.14'
 homepage = 'https://github.com/tantale/deprecated'
 description = "If you need to mark a function or a method as deprecated, you can use the @deprecated decorator."
 
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3']
 
 dependencies = [
-    ('Python', '3.11.3'),
-    ('wrapt', '1.15.0'),
+    ('Python', '3.11.5'),
+    ('wrapt', '1.16.0'),
 ]
-
+builddependencies = [('binutils', '2.40')]
 
 use_pip = True
 sanity_pip_check = True
 
-exts_list = [
-    (name, version, {
-        'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
-    }),
-]
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
 
 moduleclass = 'tools'
Diff against Deprecated-1.2.13-foss-2021a.eb

easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.13-foss-2021a.eb

diff --git a/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.13-foss-2021a.eb b/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-gfbf-2023b.eb
index 37b1d866da..c80cc41c6d 100644
--- a/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.13-foss-2021a.eb
+++ b/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-gfbf-2023b.eb
@@ -1,29 +1,30 @@
 # author: Denis Kristak (INUITS)
-easyblock = 'PythonBundle'
+# update: Pavel Tománek (INUITS)
+
+easyblock = 'PythonPackage'
 
 name = 'Deprecated'
-version = '1.2.13'
+version = '1.2.14'
 
 homepage = 'https://github.com/tantale/deprecated'
 description = "If you need to mark a function or a method as deprecated, you can use the @deprecated decorator."
 
-toolchain = {'name': 'foss', 'version': '2021a'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3']
 
 dependencies = [
-    ('Python', '3.9.5'),
+    ('Python', '3.11.5'),
+    ('wrapt', '1.16.0'),
 ]
+builddependencies = [('binutils', '2.40')]
 
 use_pip = True
+sanity_pip_check = True
 
-exts_list = [
-    ('wrapt', '1.15.0', {
-        'checksums': ['d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a'],
-    }),
-    (name, version, {
-        'checksums': ['43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d'],
-    }),
-]
-
+use_pip = True
+download_dep_fail = True
 sanity_pip_check = True
 
 moduleclass = 'tools'

Updated software PyQt-builder-1.16.4-GCCcore-13.2.0.eb

Diff against PyQt-builder-1.15.4-GCCcore-12.3.0.eb

easybuild/easyconfigs/p/PyQt-builder/PyQt-builder-1.15.4-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/p/PyQt-builder/PyQt-builder-1.15.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PyQt-builder/PyQt-builder-1.16.4-GCCcore-13.2.0.eb
index dfef8b1802..ce86a241e3 100644
--- a/easybuild/easyconfigs/p/PyQt-builder/PyQt-builder-1.15.4-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/p/PyQt-builder/PyQt-builder-1.16.4-GCCcore-13.2.0.eb
@@ -2,27 +2,27 @@
 easyblock = 'PythonBundle'
 
 name = 'PyQt-builder'
-version = '1.15.4'
+version = '1.16.4'
 
-homepage = 'http://www.example.com'
+homepage = 'https://github.com/Python-PyQt/PyQt-builder'
 description = """PyQt-builder is the PEP 517 compliant build system for PyQt and projects that   
-extend PyQt. It extends the SIP build system and uses Qt’s qmake to perform the 
+extend PyQt. It extends the SIP build system and uses Qt's qmake to perform the 
 actual compilation and installation of extension modules.
 """
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 builddependencies = [('binutils', '2.40')]
 dependencies = [
-    ('Python', '3.11.3'),
-    ('SIP', '6.8.1'),
+    ('Python', '3.11.5'),
+    ('SIP', '6.8.3'),
 ]
 
 
 exts_list = [
-    (name, version, {
+    ('pyqt_builder', version, {
         'modulename': 'pyqtbuild',
-        'checksums': ['39f8c75db17d9ce17cb6bbf3df1650b5cebc1ea4e5bd73843d21cc96612b2ae1'],
+        'checksums': ['4515e41ae379be2e54f88a89ecf47cd6e4cac43e862c4abfde18389c2666afdf'],
     }),
 ]
 

Updated software PyQt5-5.15.10-GCCcore-13.2.0.eb

Diff against PyQt5-5.15.10-GCCcore-12.3.0.eb

easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.10-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.10-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.10-GCCcore-13.2.0.eb
index 531882e6f5..30cbfa784c 100644
--- a/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.10-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.10-GCCcore-13.2.0.eb
@@ -1,4 +1,3 @@
-# update 5.15.10, sip6: THEMBL
 easyblock = 'PythonBundle'
 
 name = 'PyQt5'
@@ -8,16 +7,16 @@ homepage = 'https://www.riverbankcomputing.com/software/pyqt'
 description = """PyQt5 is a set of Python bindings for v5 of the Qt application framework from The Qt Company.
 This bundle includes PyQtWebEngine, a set of Python bindings for The Qt Company’s Qt WebEngine framework."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 toolchainopts = {'cstd': 'c++11'}
 
 builddependencies = [
     ('binutils', '2.40'),
-    ('PyQt-builder', '1.15.4'),
+    ('PyQt-builder', '1.16.4'),
 ]
 dependencies = [
-    ('Python', '3.11.3'),
-    ('Qt5', '5.15.10'),
+    ('Python', '3.11.5'),
+    ('Qt5', '5.15.13'),
 ]
 local_sipdir = '%(installdir)s/share/sip'
 
@@ -68,7 +67,7 @@ components = [
         'preinstallopts': "cd build && ",
         'checksums': ['d46b7804b1b10a4ff91753f8113e5b5580d2b4462f3226288e2d84497334898a'],
     }),
-    ('PyQtWebEngine', '5.15.6', {
+    ('PyQtWebEngine', '5.15.7', {
         'source_urls': [PYPI_SOURCE],
         'sources': [SOURCE_TAR_GZ],
         'easyblock': 'ConfigureMake',
@@ -79,7 +78,7 @@ components = [
         'configopts': ' '.join(local_pyqtwebengine_configopts),
         'prebuildopts': local_setup_env + "cd build && ",
         'preinstallopts': "cd build && ",
-        'checksums': ['ae241ef2a61c782939c58b52c2aea53ad99b30f3934c8358d5e0a6ebb3fd0721'],
+        'checksums': ['f121ac6e4a2f96ac289619bcfc37f64e68362f24a346553f5d6c42efa4228a4d'],
     })
 ]
 
Diff against PyQt5-5.15.7-GCCcore-12.2.0.eb

easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.7-GCCcore-12.2.0.eb

diff --git a/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.7-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.10-GCCcore-13.2.0.eb
index 97be3ae2aa..30cbfa784c 100644
--- a/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.7-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.10-GCCcore-13.2.0.eb
@@ -1,118 +1,111 @@
-easyblock = 'Bundle'
+easyblock = 'PythonBundle'
 
 name = 'PyQt5'
-version = '5.15.7'
+version = '5.15.10'
 
 homepage = 'https://www.riverbankcomputing.com/software/pyqt'
 description = """PyQt5 is a set of Python bindings for v5 of the Qt application framework from The Qt Company.
 This bundle includes PyQtWebEngine, a set of Python bindings for The Qt Company’s Qt WebEngine framework."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 toolchainopts = {'cstd': 'c++11'}
 
 builddependencies = [
-    ('binutils', '2.39'),
-    ('flex', '2.6.4'),   # req. for PyQt5-5.15.7_sip-5.5.0_add_py_ssize_t_clean.patch
-    ('Bison', '3.8.2'),  # req. for PyQt5-5.15.7_sip-5.5.0_add_py_ssize_t_clean.patch
+    ('binutils', '2.40'),
+    ('PyQt-builder', '1.16.4'),
 ]
 dependencies = [
-    ('Python', '3.10.8'),
-    ('Qt5', '5.15.7'),
+    ('Python', '3.11.5'),
+    ('Qt5', '5.15.13'),
 ]
-
-default_easyblock = 'PythonPackage'
-
 local_sipdir = '%(installdir)s/share/sip'
 
 local_pylibdir = '%(installdir)s/lib/python%(pyshortver)s/site-packages'
 
-local_pyqt5_sip_install = "sip-install --verbose --target-dir " + local_pylibdir + " "
-local_pyqt5_sip_install += "--confirm-license --no-designer-plugin --no-qml-plugin "
+local_setup_env = "export PATH=%(installdir)s/bin:$PATH && "
+local_setup_env += "export PYTHONPATH=%s:$PYTHONPATH && " % local_pylibdir
 
-local_pyqtweb_configopts = "configure.py --verbose --destdir=%s/PyQt5 " % local_pylibdir
-local_pyqtweb_configopts += "--apidir=%(installdir)s/qsci "
-local_pyqtweb_configopts += "--pyqt-sipdir=%s " % local_sipdir
-local_pyqtweb_configopts += "--sipdir=%s " % local_sipdir
-local_pyqtweb_configopts += "--no-stubs --no-dist-info"
 
-local_pyqt_configopts = "configure.py --verbose --destdir=%s " % local_pylibdir
-local_pyqt_configopts += "--no-stubs  "
-local_pyqt_configopts += "--confirm-license --no-designer-plugin --no-qml-plugin "
-# prevent installing pyrcc5 and other tools into $EBROOTPYTHON/bin:
-local_pyqt_configopts += "--bindir=%(installdir)s/bin "
-local_pyqt_configopts += "--sipdir=%s " % local_sipdir
+local_sip_configopts_common = [
+    "--no-make",
+    "--jobs %(parallel)s",
+    "--qmake-setting 'QMAKE_CXXFLAGS+=$$(CFLAGS)'",
+    "--qmake-setting 'QMAKE_CFLAGS+=$$(CFLAGS)'",
+    "--qmake-setting 'QMAKE_LFLAGS+=$$(LDFLAGS)'",
+    "--api-dir %(installdir)s/qsci",
+    "--scripts-dir %(installdir)s/bin",
+    "--target-dir %s" % local_pylibdir,
+]
+
+local_pyqt5_configopts = [
+    "--confirm-license",
+    "--no-designer-plugin",
+    "--no-qml-plugin",
+] + local_sip_configopts_common
+
+local_pyqtwebengine_configopts = local_sip_configopts_common
+default_easyblock = 'PythonPackage'
 
-local_setup_env = "export PATH=%(installdir)s/bin:$PATH && "
-local_setup_env += "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && "
-local_sipver = '5.5.0'
-local_sip_rebuildparser = 'flex -o code_generator/lexer.c code_generator/metasrc/lexer.l &&'
-local_sip_rebuildparser += 'bison -y -d -o code_generator/parser.c code_generator/metasrc/parser.y &&'
 components = [
-    ('SIP', local_sipver, {
-        'source_urls': [PYPI_SOURCE],
-        'sources': [SOURCELOWER_TAR_GZ],
-        'start_dir': 'sip-%s' % local_sipver,
-        'use_pip': True,
-        'options': {'modulename': 'PyQt5.sip'},
-        'patches': ['PyQt5-5.15.7_sip-5.5.0_add_py_ssize_t_clean.patch'],
-        'preinstallopts': local_sip_rebuildparser,  # req. for PyQt5-5.15.7_sip-5.5.0_add_py_ssize_t_clean.patch
-        'checksums': [
-            '5d024c419b30fea8a6de8c71a560c7ab0bc3c221fbfb14d55a5b865bd58eaac5',
-            'f828b1cf81e8bfea676f7aa1e428102aade5acf520aedd85e7de08b0b2226a5d'
-        ],
-    }),
-    ('PyQt-builder', '1.11.0', {
-        'source_urls': [PYPI_SOURCE],
-        'sources': [SOURCE_TAR_GZ],
-        'start_dir': 'PyQt-builder-%(version)s',
-        'use_pip': True,
-        'checksums': ['40f6df88c00e6aa9ac9a8bc5688f9fe2a4bd56c06cdb0a0b00ce8955ec34ffe5'],
-    }),
-    ('PyQt5_sip', '12.11.0', {
+    ('%s_sip' % name, '12.13.0', {
         'source_urls': [PYPI_SOURCE],
         'sources': [SOURCE_TAR_GZ],
-        'start_dir': 'PyQt5_sip-%(version)s',
+        'start_dir': '%(name)s-%(version)s',
         'use_pip': True,
-        'checksums': ['b4710fd85b57edef716cc55fae45bfd5bfac6fc7ba91036f1dcc3f331ca0eb39'],
+        'checksums': ['7f321daf84b9c9dbca61b80e1ef37bdaffc0e93312edae2cd7da25b953971d91'],
     }),
     (name, version, {
         'source_urls': [PYPI_SOURCE],
         'sources': [SOURCE_TAR_GZ],
-        'easyblock': 'ConfigureMakePythonPackage',
+        'easyblock': 'ConfigureMake',
+        'configure_cmd': 'sip-build',
         'start_dir': '%(name)s-%(version)s',
+        'configure_without_installdir': True,
         'preconfigopts': local_setup_env,
-        'configopts': local_pyqt_configopts,
-        'checksums': ['755121a52b3a08cb07275c10ebb96576d36e320e572591db16cfdbc558101594'],
+        'configopts': ' '.join(local_pyqt5_configopts),
+        'prebuildopts': local_setup_env + "cd build && ",
+        'preinstallopts': "cd build && ",
+        'checksums': ['d46b7804b1b10a4ff91753f8113e5b5580d2b4462f3226288e2d84497334898a'],
     }),
-    ('PyQtWebEngine', '5.15.6', {
+    ('PyQtWebEngine', '5.15.7', {
         'source_urls': [PYPI_SOURCE],
         'sources': [SOURCE_TAR_GZ],
-        'easyblock': 'ConfigureMakePythonPackage',
+        'easyblock': 'ConfigureMake',
+        'configure_cmd': 'sip-build',
         'start_dir': '%(name)s-%(version)s',
+        'configure_without_installdir': True,
         'preconfigopts': local_setup_env,
-        'configopts': local_pyqtweb_configopts,
-        'options': {'modulename': 'PyQt5.QtWebEngine'},
-        'checksums': ['ae241ef2a61c782939c58b52c2aea53ad99b30f3934c8358d5e0a6ebb3fd0721'],
-    }),
+        'configopts': ' '.join(local_pyqtwebengine_configopts),
+        'prebuildopts': local_setup_env + "cd build && ",
+        'preinstallopts': "cd build && ",
+        'checksums': ['f121ac6e4a2f96ac289619bcfc37f64e68362f24a346553f5d6c42efa4228a4d'],
+    })
+]
+
+postinstallcmds = [
+    'mkdir %(installdir)s/share',
+    'ln -s --relative %s/%%(name)s/bindings %s' % (local_pylibdir, local_sipdir)
 ]
 
 sanity_check_paths = {
     'files': ['bin/%s' % x for x in [
-        'pyrcc5', 'pyuic5', 'pylupdate5', 'pyqt-bundle', 'sip-build', 'sip-install', 'sip5']],
-    'dirs': ['lib/python%(pyshortver)s/site-packages'],
+        'pyrcc5', 'pyuic5', 'pylupdate5']],
+    'dirs': ['lib/python%(pyshortver)s/site-packages', 'qsci'],
 }
 
+use_pip = True
+
+sanity_pip_check = True
+
 sanity_check_commands = [
-    "python -s -c 'import PyQt5.QtCore'",
-    "sip5 --help",
+    "python -c 'import %(name)s.QtCore'",
+    "python -c 'import %(name)s.QtWebEngineWidgets'",
     "pyuic5 --help",
     "pylupdate5 -version 2>&1 | grep 'pylupdate5 v%(version)s'",
     "pyrcc5 -version 2>&1 | grep 'pyrcc5 v%(version)s'",
-    "PIP_DISABLE_PIP_VERSION_CHECK=true python -s -m pip check",
 ]
 
 modextrapaths = {
-    'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
     'QT_INSTALL_DATA': 'qsci',
 }
 

Updated software QtPy-2.4.1-GCCcore-13.2.0.eb

Diff against QtPy-2.4.1-GCCcore-12.3.0.eb

easybuild/easyconfigs/q/QtPy/QtPy-2.4.1-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/q/QtPy/QtPy-2.4.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/q/QtPy/QtPy-2.4.1-GCCcore-13.2.0.eb
index 91aea4a371..ef825aea14 100644
--- a/easybuild/easyconfigs/q/QtPy/QtPy-2.4.1-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/q/QtPy/QtPy-2.4.1-GCCcore-13.2.0.eb
@@ -7,7 +7,7 @@ homepage = "https://github.com/spyder-ide/qtpy"
 description = """QtPy is a small abstraction layer that lets you write applications using a single API call to
  either PyQt or PySide. It provides support for PyQt5, PyQt4, PySide2 and PySide."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 sources = [SOURCE_TAR_GZ]
 checksums = ['a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987']
@@ -17,9 +17,9 @@ builddependencies = [
 ]
 
 dependencies = [
-    ('Python', '3.11.3'),
+    ('Python', '3.11.5'),
     ('PyQt5', '5.15.10'),
-    ('Python-bundle-PyPI', '2023.06'),
+    ('Python-bundle-PyPI', '2023.10'),
 ]
 
 use_pip = True
Diff against QtPy-2.3.0-GCCcore-11.3.0.eb

easybuild/easyconfigs/q/QtPy/QtPy-2.3.0-GCCcore-11.3.0.eb

diff --git a/easybuild/easyconfigs/q/QtPy/QtPy-2.3.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/q/QtPy/QtPy-2.4.1-GCCcore-13.2.0.eb
index 79b8aeb2b4..ef825aea14 100644
--- a/easybuild/easyconfigs/q/QtPy/QtPy-2.3.0-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/q/QtPy/QtPy-2.4.1-GCCcore-13.2.0.eb
@@ -1,22 +1,25 @@
 easyblock = 'PythonPackage'
 
 name = 'QtPy'
-version = '2.3.0'
+version = '2.4.1'
 
 homepage = "https://github.com/spyder-ide/qtpy"
 description = """QtPy is a small abstraction layer that lets you write applications using a single API call to
  either PyQt or PySide. It provides support for PyQt5, PyQt4, PySide2 and PySide."""
 
-toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 sources = [SOURCE_TAR_GZ]
-checksums = ['0603c9c83ccc035a4717a12908bf6bc6cb22509827ea2ec0e94c2da7c9ed57c5']
+checksums = ['a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987']
 
-builddependencies = [('binutils', '2.38')]
+builddependencies = [
+    ('binutils', '2.40'),
+]
 
 dependencies = [
-    ('Python', '3.10.4'),
-    ('PyQt5', '5.15.5')
+    ('Python', '3.11.5'),
+    ('PyQt5', '5.15.10'),
+    ('Python-bundle-PyPI', '2023.10'),
 ]
 
 use_pip = True

Updated software Qtconsole-5.6.0-GCCcore-13.2.0.eb

Diff against Qtconsole-5.5.1-GCCcore-12.3.0.eb

easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.5.1-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.5.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.6.0-GCCcore-13.2.0.eb
index 61694a5b19..632269b483 100644
--- a/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.5.1-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.6.0-GCCcore-13.2.0.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonPackage'
 
 name = 'Qtconsole'
-version = '5.5.1'
+version = '5.6.0'
 
 homepage = 'https://jupyter.org/'
 description = """A rich Qt-based console for working with Jupyter kernels, supporting rich media 
@@ -11,18 +11,18 @@ terminal, but provides a number of enhancements only possible in a GUI, such as
 inline figures, proper multiline editing with syntax highlighting, graphical    
 calltips, and more."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 sources = [SOURCELOWER_TAR_GZ]
-checksums = ['a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc']
+checksums = ['4c82120a3b53a3d36e3f76e6a1a26ffddf4e1ce2359d56a19889c55e1d73a436']
 
 builddependencies = [('binutils', '2.40')]
 
 dependencies = [
-    ('Python', '3.11.3'),
-    ('IPython', '8.14.0'),
+    ('Python', '3.11.5'),
+    ('IPython', '8.17.2'),
     ('QtPy', '2.4.1'),
-    ('Jupyter-bundle', '20230823'),
+    ('Jupyter-bundle', '20240522'),
 ]
 
 use_pip = True
Diff against Qtconsole-5.4.0-GCCcore-11.3.0.eb

easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.4.0-GCCcore-11.3.0.eb

diff --git a/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.4.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.6.0-GCCcore-13.2.0.eb
index 4ca3e9f8a2..632269b483 100644
--- a/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.4.0-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/q/Qtconsole/Qtconsole-5.6.0-GCCcore-13.2.0.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonPackage'
 
 name = 'Qtconsole'
-version = '5.4.0'
+version = '5.6.0'
 
 homepage = 'https://jupyter.org/'
 description = """A rich Qt-based console for working with Jupyter kernels, supporting rich media 
@@ -11,17 +11,18 @@ terminal, but provides a number of enhancements only possible in a GUI, such as
 inline figures, proper multiline editing with syntax highlighting, graphical    
 calltips, and more."""
 
-toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 sources = [SOURCELOWER_TAR_GZ]
-checksums = ['57748ea2fd26320a0b77adba20131cfbb13818c7c96d83fafcb110ff55f58b35']
+checksums = ['4c82120a3b53a3d36e3f76e6a1a26ffddf4e1ce2359d56a19889c55e1d73a436']
 
-builddependencies = [('binutils', '2.38')]
+builddependencies = [('binutils', '2.40')]
 
 dependencies = [
-    ('Python', '3.10.4'),
-    ('IPython', '8.5.0'),
-    ('QtPy', '2.3.0'),
+    ('Python', '3.11.5'),
+    ('IPython', '8.17.2'),
+    ('QtPy', '2.4.1'),
+    ('Jupyter-bundle', '20240522'),
 ]
 
 use_pip = True

Updated software Rtree-1.2.0-GCCcore-13.2.0.eb

Diff against Rtree-1.2.0-GCCcore-12.3.0.eb

easybuild/easyconfigs/r/Rtree/Rtree-1.2.0-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/r/Rtree/Rtree-1.2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/r/Rtree/Rtree-1.2.0-GCCcore-13.2.0.eb
index e3bb235138..b0d0844989 100644
--- a/easybuild/easyconfigs/r/Rtree/Rtree-1.2.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/r/Rtree/Rtree-1.2.0-GCCcore-13.2.0.eb
@@ -7,7 +7,7 @@ homepage = 'https://toblerity.org/rtree/'
 description = """Rtree is a ctypes Python wrapper of libspatialindex that provides a number of advanced spatial
  indexing features for the spatially curious Python user."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 sources = [SOURCE_TAR_GZ]
 checksums = ['f5145f7852bf7f95c126fb16bf1a4c2ca9300ae151b07f8a0f7083ea47912675']
@@ -17,7 +17,7 @@ builddependencies = [
 ]
 
 dependencies = [
-    ('Python', '3.11.3'),
+    ('Python', '3.11.5'),
     ('libspatialindex', '1.9.3'),
 ]
 
Diff against Rtree-1.0.1-GCCcore-12.2.0.eb

easybuild/easyconfigs/r/Rtree/Rtree-1.0.1-GCCcore-12.2.0.eb

diff --git a/easybuild/easyconfigs/r/Rtree/Rtree-1.0.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/r/Rtree/Rtree-1.2.0-GCCcore-13.2.0.eb
index 5650717ef6..b0d0844989 100644
--- a/easybuild/easyconfigs/r/Rtree/Rtree-1.0.1-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/r/Rtree/Rtree-1.2.0-GCCcore-13.2.0.eb
@@ -1,23 +1,23 @@
 easyblock = 'PythonPackage'
 
 name = 'Rtree'
-version = '1.0.1'
+version = '1.2.0'
 
 homepage = 'https://toblerity.org/rtree/'
 description = """Rtree is a ctypes Python wrapper of libspatialindex that provides a number of advanced spatial
  indexing features for the spatially curious Python user."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 sources = [SOURCE_TAR_GZ]
-checksums = ['222121699c303a64065d849bf7038b1ecabc37b65c7fa340bedb38ef0e805429']
+checksums = ['f5145f7852bf7f95c126fb16bf1a4c2ca9300ae151b07f8a0f7083ea47912675']
 
 builddependencies = [
-    ('binutils', '2.39'),
+    ('binutils', '2.40'),
 ]
 
 dependencies = [
-    ('Python', '3.10.8'),
+    ('Python', '3.11.5'),
     ('libspatialindex', '1.9.3'),
 ]
 

Updated software Spyder-6.0.1-gfbf-2023b.eb

Diff against Spyder-4.1.5-foss-2020a-Python-3.8.2.eb

easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2020a-Python-3.8.2.eb

diff --git a/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/s/Spyder/Spyder-6.0.1-gfbf-2023b.eb
index 83982c1baa..779cc908ec 100644
--- a/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2020a-Python-3.8.2.eb
+++ b/easybuild/easyconfigs/s/Spyder/Spyder-6.0.1-gfbf-2023b.eb
@@ -1,210 +1,110 @@
 easyblock = 'PythonBundle'
 
 name = 'Spyder'
-version = '4.1.5'
-versionsuffix = '-Python-%(pyver)s'
+version = '6.0.1'
 
 homepage = 'https://github.com/spyder-ide/spyder'
 description = """Spyder is an interactive Python development environment providing MATLAB-like features in a simple
  and light-weighted software."""
 
-toolchain = {'name': 'foss', 'version': '2020a'}
-toolchainopts = {'cstd': 'c++11'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 builddependencies = [
-    ('CMake', '3.16.4'),
+    ('binutils', '2.40'),
+    ('poetry', '1.6.1'),
+    ('maturin', '1.3.1'),
 ]
 dependencies = [
-    ('Python', '3.8.2'),
-    ('ZeroMQ', '4.3.2'),
-    ('PyQt5', '5.15.1', versionsuffix),
-    ('IPython', '7.15.0', versionsuffix),
-    ('geopandas', '0.8.1', versionsuffix),
+    ('Python', '3.11.5'),
+    ('Python-bundle-PyPI', '2023.10'),
+    ('aiohttp', '3.9.5'),
+    ('IPython', '8.17.2'),
+    ('jupyter-server', '2.14.0'),
+    ('Pylint', '3.2.5'),
+    ('PyZMQ', '25.1.2'),
+    ('PyQt5', '5.15.10'),
+    ('Qtconsole', '5.6.0'),
+    ('Rtree', '1.2.0'),
+    ('Deprecated', '1.2.14'),
+    ('tornado', '6.4'),
+    ('numpydoc', '1.8.0'),
+    ('cookiecutter', '2.6.0'),
+    ('wurlitzer', '3.1.1'),
+    ('python-lsp-server', '1.12.0'),
 ]
 
 use_pip = True
 
-# strip out (too strict version) requirements for pyqt5 and pyqtwebengine,
-# because they are not installed with pip, but are provided via the PyQt5 dependency
-local_spyder_preinstallopts = (
-    """sed -i "s/'pyqt5.*,//g" setup.py && """
-    """sed -i "s/'pyqtwebengine.*,//g" setup.py && """
-)
+# fix deleting of PYTHONPATH
+local_preinstallopts = "sed -i '13,19d' spyder/app/start.py && "
+local_preinstallopts += "sed -i '171,173d' spyder/plugins/ipythonconsole/utils/kernelspec.py && "
 
 exts_list = [
-    ('astroid', '2.4.2', {
-        'checksums': ['2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703'],
+    ('asyncssh', '2.17.0', {
+        'checksums': ['3b159c105aa388c1e2245c4faf483f540ada8cad99402281119100166e5edb3c'],
     }),
-    ('async_generator', '1.10', {
-        'checksums': ['6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144'],
+    ('diff-match-patch', '20230430', {
+        'checksums': ['953019cdb9c9d2c9e47b5b12bcff3cf4746fc4598eb406076fa1fc27e6a1f15c'],
     }),
-    ('autopep8', '1.5.4', {
-        'checksums': ['d21d3901cb0da6ebd1e83fc9b0dfbde8b46afc2ede4fe32fbda0c7c6118ca094'],
+    ('PyGithub', '2.4.0', {
+        'source_tmpl': SOURCELOWER_TAR_GZ,
+        'modulename': 'github',
+        'checksums': ['6601e22627e87bac192f1e2e39c6e6f69a43152cfb8f307cee575879320b3051'],
     }),
-    ('binaryornot', '0.4.4', {
-        'checksums': ['359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061'],
+    ('pylint_venv', '3.0.3', {
+        'checksums': ['df12a17fca39a94acc1c9a0f1dcf68141e90fe685569d78c046695c67c4e55fa'],
     }),
-    ('bleach', '3.2.1', {
-        'checksums': ['52b5919b81842b1854196eaae5ca29679a2f2e378905c346d3ca8227c2c66080'],
+    ('pyls-spyder', '0.4.0', {
+        'checksums': ['45a321c83f64267d82907492c55199fccabda45bc872dd23bf1efd08edac1b0b'],
     }),
-    ('cloudpickle', '1.6.0', {
-        'checksums': ['9bc994f9e9447593bd0a45371f0e7ac7333710fcf64a4eb9834bf149f4ef2f32'],
+    ('pyuca', '1.2', {
+        'checksums': ['8a382fe74627f08c0d18908c0713ca4a20aad5385f077579e56208beea2893b2'],
     }),
-    ('cookiecutter', '1.7.2', {
-        'checksums': ['efb6b2d4780feda8908a873e38f0e61778c23f6a2ea58215723bcceb5b515dac'],
-    }),
-    ('decorator', '4.4.2', {
-        'checksums': ['e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7'],
-    }),
-    ('diff-match-patch', '20200713', {
-        'checksums': ['da6f5a01aa586df23dfc89f3827e1cafbb5420be9d87769eeb079ddfd9477a18'],
-    }),
-    ('flake8', '3.8.4', {
-        'checksums': ['aadae8761ec651813c24be05c6f7b4680857ef6afaae4651a4eccaef97ce6c3b'],
-    }),
-    ('helpdev', '0.7.1', {
-        'checksums': ['bb62a79acbac141dadf42cadeb92bb7450dd18b9824a62043b6a0b149190db3d'],
-    }),
-    ('isort', '5.6.3', {
-        'use_pip': False,
-        'checksums': ['3820dd92c3214290cda6351f2ae2cedd5170759bc434af600eaad4f7a82a6ade'],
-    }),
-    ('jedi', '0.17.1', {
-        'checksums': ['807d5d4f96711a2bcfdd5dfa3b1ae6d09aa53832b182090b222b5efb81f52f63'],
-    }),
-    ('jeepney', '0.4.3', {
-        'use_pip': False,
-        'checksums': ['3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e'],
-    }),
-    ('arrow', '0.17.0', {
-        'checksums': ['ff08d10cda1d36c68657d6ad20d74fbea493d980f8b2d45344e00d6ed2bf6ed4'],
-    }),
-    ('jinja2-time', '0.2.0', {
-        'checksums': ['d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40'],
-    }),
-    ('jupyterlab_pygments', '0.1.2', {
-        'checksums': ['cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146'],
-    }),
-    ('keyring', '21.4.0', {
-        'checksums': ['9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466'],
-    }),
-    ('keyrings.alt', '4.0.0', {
-        'checksums': ['f70ef01a8f2b968b83643db370a1e85bc0e4bc8b358f9661504279afb019d21d'],
-    }),
-    ('lazy-object-proxy', '1.4.3', {
-        'checksums': ['f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0'],
-    }),
-    ('mccabe', '0.6.1', {
-        'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'],
-    }),
-    ('jupyter_client', '6.1.7', {
-        'checksums': ['49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1'],
-    }),
-    ('nbclient', '0.5.1', {
-        'checksums': ['01e2d726d16eaf2cde6db74a87e2451453547e8832d142f73f72fddcd4fe0250'],
-    }),
-    ('nest_asyncio', '1.4.1', {
-        'checksums': ['b86c3193abda5b2eeccf8c79894bc71c680369a178f4b068514ac00720b14e01'],
-    }),
-    ('numpydoc', '1.1.0', {
-        'checksums': ['c36fd6cb7ffdc9b4e165a43f67bf6271a7b024d0bb6b00ac468c9e2bfc76448e'],
-    }),
-    ('pathtools', '0.1.2', {
-        'checksums': ['7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0'],
-    }),
-    ('poyo', '0.5.0', {
-        'checksums': ['e26956aa780c45f011ca9886f044590e2d8fd8b61db7b1c1cf4e0869f48ed4dd'],
-    }),
-    ('pycodestyle', '2.6.0', {
-        'checksums': ['c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e'],
-    }),
-    ('pydocstyle', '5.1.1', {
-        'checksums': ['19b86fa8617ed916776a11cd8bc0197e5b9856d5433b777f51a3defe13075325'],
-    }),
-    ('pyflakes', '2.2.0', {
-        'checksums': ['35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8'],
-    }),
-    ('pylint', '2.6.0', {
-        'checksums': ['bb4a908c9dadbc3aac18860550e870f58e1a02c9f2c204fdf5693d73be061210'],
-    }),
-    ('ujson', '4.0.1', {
-        'checksums': ['26cf6241b36ff5ce4539ae687b6b02673109c5e3efc96148806a7873eaa229d3'],
-    }),
-    ('python-language-server', '0.35.1', {
-        'checksums': ['6e0c9a3b2ae98e0eb22e98ed6b3c4e190a6bf9e27af53efd2396da60cd92b221'],
-        'modulename': 'pyls',
-    }),
-    ('pyrsistent', '0.17.3', {
-        'checksums': ['2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e'],
-    }),
-    ('python-jsonrpc-server', '0.4.0', {
-        'checksums': ['62c543e541f101ec5b57dc654efc212d2c2e3ea47ff6f54b2e7dcb36ecf20595'],
-        'modulename': 'pyls_jsonrpc',
-    }),
-    ('python-slugify', '4.0.1', {
-        'checksums': ['69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270'],
-        'modulename': 'slugify',
-    }),
-    ('pyxdg', '0.26', {
-        'checksums': ['fe2928d3f532ed32b39c32a482b54136fe766d19936afc96c8f00645f9da1a06'],
+    ('pyxdg', '0.28', {
         'modulename': 'xdg',
+        'checksums': ['3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4'],
     }),
-    ('rope', '0.18.0', {
-        'checksums': ['786b5c38c530d4846aa68a42604f61b4e69a493390e3ca11b88df0fbfdc3ed04'],
-    }),
-    ('QDarkStyle', '2.8.1', {
-        'checksums': ['d53b0120bddd9e3efba9801731e22ef86ed798bb5fc6a802f5f7bb32dedf0321'],
-    }),
-    ('QtAwesome', '1.0.1', {
-        'checksums': ['d612a313e531966d17f5a8fb7604faba961cf7ce3c77a9168c6f60e60140b767'],
-    }),
-    ('qtconsole', '4.7.7', {
-        'checksums': ['f236ead8711dba0702507dd8fad473c7216a86eefa6098eff8ec4b54f57d7804'],
-    }),
-    ('QtPy', '1.9.0', {
-        'checksums': ['2db72c44b55d0fe1407be8fba35c838ad0d6d3bb81f23007886dc1fc0f459c8d'],
+    ('QDarkStyle', '3.2.3', {
+        'checksums': ['0c0b7f74a6e92121008992b369bab60468157db1c02cd30d64a5e9a3b402f1ae'],
     }),
-    ('SecretStorage', '3.1.2', {
-        'checksums': ['15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6'],
-        'modulename': 'secretstorage',
+    ('inflection', '0.5.1', {
+        'checksums': ['1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417'],
     }),
-    ('spyder', version, {
-        'checksums': ['d467f020b694193873a237ce6744ae36bd5a59f4d2b7ffbeb15dda68b03f5aa1'],
-        'preinstallopts': local_spyder_preinstallopts,
+    ('qstylizer', '0.2.3', {
+        'checksums': ['5f2f5eb2c65c6c45e950462b565fcaa5107a91d1cfc1a85b8e0d831d727ee8f6'],
     }),
-    ('spyder-kernels', '1.9.4', {
-        'checksums': ['ca9d997c475b714b54d2fd67aa140837ec3630e91cbbc2e0cd190f1b0bd9fe9d'],
-        'modulename': 'spyder_kernels',
+    ('QtAwesome', '1.3.1', {
+        'checksums': ['075b2c9ee01cbaf5e3a4bebed0e5529ee8605981355f21dea051b15c1b869e1b'],
     }),
-    ('text-unidecode', '1.3', {
-        'checksums': ['bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93'],
+    ('spyder_kernels', '3.0.0', {
+        'checksums': ['3d316ea04802ed1feb366405cca03df2349dc9e35ad8653538d2fe48c0e9417f'],
     }),
-    ('traitlets', '5.0.4', {
-        'checksums': ['86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b'],
+    ('superqt', '0.6.6', {
+        'checksums': ['792e09165c8a788ee245bdb784e018f9077fb309253354d86793cdf1d092f99f'],
     }),
-    ('typed_ast', '1.4.1', {
-        'checksums': ['8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b'],
+    ('textdistance', '4.6.3', {
+        'checksums': ['d6dabc50b4ea832cdcf0e1e6021bd0c7fcd9ade155888d79bb6a3c31fce2dc6f'],
     }),
-    ('watchdog', '0.10.3', {
-        'checksums': ['4214e1379d128b0588021880ccaf40317ee156d4603ac388b9adcf29165e0c04'],
+    ('three-merge', '0.1.1', {
+        'checksums': ['60f6afe144595560d63ae32625351bcef3b94733b54eb97800a9feb0f3d9d970'],
     }),
-    ('wurlitzer', '2.0.1', {
-        'checksums': ['d08f0728a998441aac3d7a0f8cd6dfed2ba2525144878fb49599b719085b7543'],
+    ('watchdog', '5.0.3', {
+        'checksums': ['108f42a7f0345042a854d4d0ad0834b741d421330d5f575b81cb27b883500176'],
     }),
-    ('wrapt', '1.12.1', {
-        'checksums': ['b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7'],
+    ('jellyfish', '1.1.0', {
+        'checksums': ['2a2eec494c81dc1eb23dfef543110dad1873538eccaffabea8520bdac8aecbc1'],
     }),
-    ('yapf', '0.30.0', {
-        'checksums': ['3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427'],
+    (name, version, {
+        'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
+        'preinstallopts': local_preinstallopts,
+        'checksums': ['709782e88091588bbe614de6ebbde7b47544a4d6c225e199de5ad22b77d8b130'],
     }),
 ]
 
-sanity_check_paths = {
-    'files': ['bin/spyder3'],
-    'dirs': ['lib/python%(pyshortver)s/site-packages'],
-}
+enhance_sanity_check = True
+sanity_check_paths = {'files': ['bin/spyder']}
 
-sanity_check_commands = ["spyder3 --help"]
+sanity_check_commands = ["spyder --help"]
 
 sanity_pip_check = True
 
Diff against Spyder-4.1.5-foss-2019a-Python-3.7.2.eb

easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2019a-Python-3.7.2.eb

diff --git a/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2019a-Python-3.7.2.eb b/easybuild/easyconfigs/s/Spyder/Spyder-6.0.1-gfbf-2023b.eb
index 821d5fbb4f..779cc908ec 100644
--- a/easybuild/easyconfigs/s/Spyder/Spyder-4.1.5-foss-2019a-Python-3.7.2.eb
+++ b/easybuild/easyconfigs/s/Spyder/Spyder-6.0.1-gfbf-2023b.eb
@@ -1,328 +1,111 @@
 easyblock = 'PythonBundle'
 
 name = 'Spyder'
-version = '4.1.5'
-versionsuffix = '-Python-%(pyver)s'
+version = '6.0.1'
 
 homepage = 'https://github.com/spyder-ide/spyder'
 description = """Spyder is an interactive Python development environment providing MATLAB-like features in a simple
  and light-weighted software."""
 
-toolchain = {'name': 'foss', 'version': '2019a'}
-toolchainopts = {'cstd': 'c++11'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
 builddependencies = [
-    ('CMake', '3.13.3'),
+    ('binutils', '2.40'),
+    ('poetry', '1.6.1'),
+    ('maturin', '1.3.1'),
 ]
 dependencies = [
-    ('Python', '3.7.2'),
-    ('ZeroMQ', '4.3.2'),
-    ('PyQt5', '5.12.1', versionsuffix),
-    ('IPython', '7.7.0', versionsuffix),
-    ('geopandas', '0.8.0', versionsuffix),
+    ('Python', '3.11.5'),
+    ('Python-bundle-PyPI', '2023.10'),
+    ('aiohttp', '3.9.5'),
+    ('IPython', '8.17.2'),
+    ('jupyter-server', '2.14.0'),
+    ('Pylint', '3.2.5'),
+    ('PyZMQ', '25.1.2'),
+    ('PyQt5', '5.15.10'),
+    ('Qtconsole', '5.6.0'),
+    ('Rtree', '1.2.0'),
+    ('Deprecated', '1.2.14'),
+    ('tornado', '6.4'),
+    ('numpydoc', '1.8.0'),
+    ('cookiecutter', '2.6.0'),
+    ('wurlitzer', '3.1.1'),
+    ('python-lsp-server', '1.12.0'),
 ]
 
 use_pip = True
 
-local_spyder_preinstallopts = (
-    "sed -i \"s/'pyqt5<5.13;python_version>=\\\"3\\\"',//g\" setup.py && "
-    "sed -i \"s/'pyqtwebengine<5.13;python_version>=\\\"3\\\"',//g\" setup.py && "
-    "sed -i 's/jedi==0.17.1/jedi==0.17.2/g' setup.py && "
-    "sed -i \"s/JEDI_REQVER = '=0.17.1'/JEDI_REQVER = '=0.17.2'/g\" spyder/dependencies.py && "
-)
+# fix deleting of PYTHONPATH
+local_preinstallopts = "sed -i '13,19d' spyder/app/start.py && "
+local_preinstallopts += "sed -i '171,173d' spyder/plugins/ipythonconsole/utils/kernelspec.py && "
 
 exts_list = [
-    ('alabaster', '0.7.12', {
-        'checksums': ['a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02'],
+    ('asyncssh', '2.17.0', {
+        'checksums': ['3b159c105aa388c1e2245c4faf483f540ada8cad99402281119100166e5edb3c'],
     }),
-    ('arrow', '0.16.0', {
-        'checksums': ['92aac856ea5175c804f7ccb96aca4d714d936f1c867ba59d747a8096ec30e90a'],
+    ('diff-match-patch', '20230430', {
+        'checksums': ['953019cdb9c9d2c9e47b5b12bcff3cf4746fc4598eb406076fa1fc27e6a1f15c'],
     }),
-    ('astroid', '2.4.2', {
-        'checksums': ['2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703'],
+    ('PyGithub', '2.4.0', {
+        'source_tmpl': SOURCELOWER_TAR_GZ,
+        'modulename': 'github',
+        'checksums': ['6601e22627e87bac192f1e2e39c6e6f69a43152cfb8f307cee575879320b3051'],
     }),
-    ('async_generator', '1.10', {
-        'checksums': ['6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144'],
+    ('pylint_venv', '3.0.3', {
+        'checksums': ['df12a17fca39a94acc1c9a0f1dcf68141e90fe685569d78c046695c67c4e55fa'],
     }),
-    ('autopep8', '1.5.4', {
-        'checksums': ['d21d3901cb0da6ebd1e83fc9b0dfbde8b46afc2ede4fe32fbda0c7c6118ca094'],
+    ('pyls-spyder', '0.4.0', {
+        'checksums': ['45a321c83f64267d82907492c55199fccabda45bc872dd23bf1efd08edac1b0b'],
     }),
-    ('Babel', '2.8.0', {
-        'checksums': ['1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38'],
+    ('pyuca', '1.2', {
+        'checksums': ['8a382fe74627f08c0d18908c0713ca4a20aad5385f077579e56208beea2893b2'],
     }),
-    ('backcall', '0.2.0', {
-        'use_pip': False,
-        'checksums': ['5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e'],
-    }),
-    ('binaryornot', '0.4.4', {
-        'checksums': ['359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061'],
-    }),
-    ('bleach', '3.1.5', {
-        'checksums': ['3c4c520fdb9db59ef139915a5db79f8b51bc2a7257ea0389f30c846883430a4b'],
-    }),
-    ('certifi', '2020.6.20', {
-        'checksums': ['5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3'],
-    }),
-    ('cloudpickle', '1.6.0', {
-        'checksums': ['9bc994f9e9447593bd0a45371f0e7ac7333710fcf64a4eb9834bf149f4ef2f32'],
-    }),
-    ('cookiecutter', '1.7.2', {
-        'checksums': ['efb6b2d4780feda8908a873e38f0e61778c23f6a2ea58215723bcceb5b515dac'],
-    }),
-    ('decorator', '4.4.2', {
-        'checksums': ['e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7'],
-    }),
-    ('defusedxml', '0.6.0', {
-        'checksums': ['f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5'],
-    }),
-    ('diff-match-patch', '20200713', {
-        'checksums': ['da6f5a01aa586df23dfc89f3827e1cafbb5420be9d87769eeb079ddfd9477a18'],
-    }),
-    ('docutils', '0.16', {
-        'checksums': ['c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc'],
-    }),
-    ('entrypoints', '0.3', {
-        'use_pip': False,
-        'checksums': ['c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451'],
-    }),
-    ('flake8', '3.8.3', {
-        'checksums': ['f04b9fcbac03b0a3e58c0ab3a0ecc462e023a9faf046d57794184028123aa208'],
-    }),
-    ('helpdev', '0.7.1', {
-        'checksums': ['bb62a79acbac141dadf42cadeb92bb7450dd18b9824a62043b6a0b149190db3d'],
-    }),
-    ('importlib_metadata', '1.7.0', {
-        'checksums': ['90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83'],
-    }),
-    ('imagesize', '1.2.0', {
-        'checksums': ['b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1'],
-    }),
-    ('intervaltree', '3.1.0', {
-        'checksums': ['902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d'],
-    }),
-    ('ipykernel', '5.3.4', {
-        'checksums': ['9b2652af1607986a1b231c62302d070bc0534f564c393a5d9d130db9abbbe89d'],
-    }),
-    ('isort', '5.5.2', {
-        'use_pip': False,
-        'checksums': ['171c5f365791073426b5ed3a156c2081a47f88c329161fd28228ff2da4c97ddb'],
-    }),
-    ('jedi', '0.17.2', {
-        'checksums': ['86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20'],
-    }),
-    ('jeepney', '0.4.3', {
-        'use_pip': False,
-        'checksums': ['3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e'],
-    }),
-    ('Jinja2', '2.10', {
-        'checksums': ['f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4'],
-    }),
-    ('jinja2-time', '0.2.0', {
-        'checksums': ['d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40'],
-    }),
-    ('jsonschema', '3.2.0', {
-        'checksums': ['c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a'],
-    }),
-    ('jupyter_client', '6.1.7', {
-        'checksums': ['49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1'],
-    }),
-    ('jupyter_core', '4.6.3', {
-        'checksums': ['394fd5dd787e7c8861741880bdf8a00ce39f95de5d18e579c74b882522219e7e'],
-    }),
-    ('jupyter_contrib_core', '0.3.3', {
-        'checksums': ['e65bc0e932ff31801003cef160a4665f2812efe26a53801925a634735e9a5794'],
-    }),
-    ('jupyterlab_pygments', '0.1.1', {
-        'checksums': ['19a0ccde7daddec638363cd3d60b63a4f6544c9181d65253317b2fb492a797b9'],
-    }),
-    ('keyring', '21.4.0', {
-        'checksums': ['9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466'],
-        'preinstallopts': """sed -i 's/setup()/setup(version="%(version)s")/g' setup.py && """
-    }),
-    ('keyrings.alt', '3.1', {
-        'checksums': ['b59c86b67b9027a86e841a49efc41025bcc3b1b0308629617b66b7011e52db5a'],
-        'preinstallopts': """sed -i 's/setup()/setup(version="%(version)s")/g' setup.py && """
-    }),
-    ('lazy-object-proxy', '1.4.3', {
-        'checksums': ['f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0'],
-    }),
-    ('MarkupSafe', '1.1.1', {
-        'checksums': ['29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b'],
-    }),
-    ('mccabe', '0.6.1', {
-        'checksums': ['dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f'],
-    }),
-    ('mistune', '0.8.4', {
-        'checksums': ['59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e'],
-    }),
-    ('nbclient', '0.5.0', {
-        'checksums': ['8ad52d27ba144fca1402db014857e53c5a864a2f407be66ca9d74c3a56d6591d'],
-    }),
-    ('nbconvert', '6.0.2', {
-        'checksums': ['4cb5c66d04737a42076536fa64fa951e97cddbf4c517c418591314a3d14013dc'],
-    }),
-    ('nbformat', '5.0.7', {
-        'checksums': ['54d4d6354835a936bad7e8182dcd003ca3dc0cedfee5a306090e04854343b340'],
-    }),
-    ('nest_asyncio', '1.4.0', {
-        'checksums': ['5773054bbc14579b000236f85bc01ecced7ffd045ec8ca4a9809371ec65a59c8'],
-    }),
-    ('numpydoc', '1.1.0', {
-        'checksums': ['c36fd6cb7ffdc9b4e165a43f67bf6271a7b024d0bb6b00ac468c9e2bfc76448e'],
-    }),
-    ('packaging', '20.4', {
-        'checksums': ['4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8'],
-    }),
-    ('parso', '0.7.0', {
-        'checksums': ['908e9fae2144a076d72ae4e25539143d40b8e3eafbaeae03c1bfe226f4cdf12c'],
-    }),
-    ('pathtools', '0.1.2', {
-        'checksums': ['7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0'],
-    }),
-    ('poyo', '0.5.0', {
-        'checksums': ['e26956aa780c45f011ca9886f044590e2d8fd8b61db7b1c1cf4e0869f48ed4dd'],
-    }),
-    ('psutil', '5.4.8', {
-        'checksums': ['6e265c8f3da00b015d24b842bfeb111f856b13d24f2c57036582568dc650d6c3'],
-    }),
-    ('pycodestyle', '2.6.0', {
-        'checksums': ['c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e'],
-    }),
-    ('pydocstyle', '5.1.1', {
-        'checksums': ['19b86fa8617ed916776a11cd8bc0197e5b9856d5433b777f51a3defe13075325'],
-    }),
-    ('pyflakes', '2.2.0', {
-        'checksums': ['35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8'],
-    }),
-    ('Pygments', '2.7.0', {
-        'checksums': ['2594e8fdb06fef91552f86f4fd3a244d148ab24b66042036e64f29a291515048'],
-    }),
-    ('pylint', '2.6.0', {
-        'checksums': ['bb4a908c9dadbc3aac18860550e870f58e1a02c9f2c204fdf5693d73be061210'],
-    }),
-    ('python-language-server', '0.35.0', {
-        'modulename': 'pyls',
-        'checksums': ['ac0bbc549b38565aa945b6335cc65c5e7230b8b60417af3bf9df5d1aacb03f90'],
-    }),
-    ('PyQt5_sip', '12.8.1', {
-        'modulename': False,
-        'checksums': ['30e944db9abee9cc757aea16906d4198129558533eb7fadbe48c5da2bd18e0bd'],
-    }),
-    ('pyrsistent', '0.17.3', {
-        'checksums': ['2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e'],
-    }),
-    ('python-jsonrpc-server', '0.4.0', {
-        'modulename': 'pyls_jsonrpc',
-        'checksums': ['62c543e541f101ec5b57dc654efc212d2c2e3ea47ff6f54b2e7dcb36ecf20595'],
-    }),
-    ('python-slugify', '4.0.1', {
-        'modulename': 'slugify',
-        'checksums': ['69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270'],
-    }),
-    ('pyxdg', '0.26', {
+    ('pyxdg', '0.28', {
         'modulename': 'xdg',
-        'checksums': ['fe2928d3f532ed32b39c32a482b54136fe766d19936afc96c8f00645f9da1a06'],
-    }),
-    ('requests', '2.23.0', {
-        'checksums': ['b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6'],
+        'checksums': ['3267bb3074e934df202af2ee0868575484108581e6f3cb006af1da35395e88b4'],
     }),
-    ('rope', '0.17.0', {
-        'checksums': ['658ad6705f43dcf3d6df379da9486529cf30e02d9ea14c5682aa80eb33b649e1'],
+    ('QDarkStyle', '3.2.3', {
+        'checksums': ['0c0b7f74a6e92121008992b369bab60468157db1c02cd30d64a5e9a3b402f1ae'],
     }),
-    ('QDarkStyle', '2.8.1', {
-        'checksums': ['d53b0120bddd9e3efba9801731e22ef86ed798bb5fc6a802f5f7bb32dedf0321'],
+    ('inflection', '0.5.1', {
+        'checksums': ['1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417'],
     }),
-    ('QtAwesome', '0.7.2', {
-        'checksums': ['ca9719c82d41707f62c340811b23bcab95336e73edd88b7eab7fd951d2e27fab'],
+    ('qstylizer', '0.2.3', {
+        'checksums': ['5f2f5eb2c65c6c45e950462b565fcaa5107a91d1cfc1a85b8e0d831d727ee8f6'],
     }),
-    ('qtconsole', '4.7.7', {
-        'checksums': ['f236ead8711dba0702507dd8fad473c7216a86eefa6098eff8ec4b54f57d7804'],
+    ('QtAwesome', '1.3.1', {
+        'checksums': ['075b2c9ee01cbaf5e3a4bebed0e5529ee8605981355f21dea051b15c1b869e1b'],
     }),
-    ('QtPy', '1.9.0', {
-        'checksums': ['2db72c44b55d0fe1407be8fba35c838ad0d6d3bb81f23007886dc1fc0f459c8d'],
+    ('spyder_kernels', '3.0.0', {
+        'checksums': ['3d316ea04802ed1feb366405cca03df2349dc9e35ad8653538d2fe48c0e9417f'],
     }),
-    ('SecretStorage', '3.1.2', {
-        'modulename': 'secretstorage',
-        'checksums': ['15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6'],
+    ('superqt', '0.6.6', {
+        'checksums': ['792e09165c8a788ee245bdb784e018f9077fb309253354d86793cdf1d092f99f'],
     }),
-    ('snowballstemmer', '2.0.0', {
-        'checksums': ['df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52'],
+    ('textdistance', '4.6.3', {
+        'checksums': ['d6dabc50b4ea832cdcf0e1e6021bd0c7fcd9ade155888d79bb6a3c31fce2dc6f'],
     }),
-    ('sortedcontainers', '2.2.2', {
-        'checksums': ['4e73a757831fc3ca4de2859c422564239a31d8213d09a2a666e375807034d2ba'],
+    ('three-merge', '0.1.1', {
+        'checksums': ['60f6afe144595560d63ae32625351bcef3b94733b54eb97800a9feb0f3d9d970'],
     }),
-    ('Sphinx', '3.2.1', {
-        'checksums': ['321d6d9b16fa381a5306e5a0b76cd48ffbc588e6340059a729c6fdd66087e0e8'],
+    ('watchdog', '5.0.3', {
+        'checksums': ['108f42a7f0345042a854d4d0ad0834b741d421330d5f575b81cb27b883500176'],
     }),
-    ('sphinxcontrib-applehelp', '1.0.2', {
-        'modulename': 'sphinxcontrib.applehelp',
-        'checksums': ['a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58'],
+    ('jellyfish', '1.1.0', {
+        'checksums': ['2a2eec494c81dc1eb23dfef543110dad1873538eccaffabea8520bdac8aecbc1'],
     }),
-    ('sphinxcontrib-devhelp', '1.0.2', {
-        'modulename': 'sphinxcontrib.devhelp',
-        'checksums': ['ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4'],
-    }),
-    ('sphinxcontrib-htmlhelp', '1.0.3', {
-        'modulename': 'sphinxcontrib.htmlhelp',
-        'checksums': ['e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b'],
-    }),
-    ('sphinxcontrib-jsmath', '1.0.1', {
-        'modulename': 'sphinxcontrib.jsmath',
-        'checksums': ['a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8'],
-    }),
-    ('sphinxcontrib-qthelp', '1.0.3', {
-        'modulename': 'sphinxcontrib.qthelp',
-        'checksums': ['4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72'],
-    }),
-    ('sphinxcontrib-serializinghtml', '1.1.4', {
-        'modulename': 'sphinxcontrib.serializinghtml',
-        'checksums': ['eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc'],
-    }),
-    ('spyder', version, {
-        'preinstallopts': local_spyder_preinstallopts,
-        'checksums': ['d467f020b694193873a237ce6744ae36bd5a59f4d2b7ffbeb15dda68b03f5aa1'],
-    }),
-    ('spyder-kernels', '1.9.4', {
-        'modulename': 'spyder_kernels',
-        'checksums': ['ca9d997c475b714b54d2fd67aa140837ec3630e91cbbc2e0cd190f1b0bd9fe9d'],
-    }),
-    ('text-unidecode', '1.3', {
-        'checksums': ['bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93'],
-    }),
-    ('toml', '0.10.1', {
-        'checksums': ['926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f'],
-    }),
-    ('traitlets', '5.0.4', {
-        'checksums': ['86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b'],
-    }),
-    ('typed_ast', '1.4.1', {
-        'checksums': ['8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b'],
-    }),
-    ('ujson', '3.2.0', {
-        'checksums': ['abb1996ba1c1d2faf5b1e38efa97da7f64e5373a31f705b96fe0587f5f778db4'],
-    }),
-    ('watchdog', '0.10.3', {
-        'checksums': ['4214e1379d128b0588021880ccaf40317ee156d4603ac388b9adcf29165e0c04'],
-    }),
-    ('wurlitzer', '2.0.1', {
-        'checksums': ['d08f0728a998441aac3d7a0f8cd6dfed2ba2525144878fb49599b719085b7543'],
-    }),
-    ('wrapt', '1.12.1', {
-        'checksums': ['b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7'],
-    }),
-    ('yapf', '0.30.0', {
-        'checksums': ['3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427'],
-    }),
-    ('zipp', '1.2.0', {
-        'checksums': ['c70410551488251b0fee67b460fb9a536af8d6f9f008ad10ac51f615b6a521b1'],
+    (name, version, {
+        'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
+        'preinstallopts': local_preinstallopts,
+        'checksums': ['709782e88091588bbe614de6ebbde7b47544a4d6c225e199de5ad22b77d8b130'],
     }),
 ]
 
+enhance_sanity_check = True
+sanity_check_paths = {'files': ['bin/spyder']}
+
+sanity_check_commands = ["spyder --help"]
+
 sanity_pip_check = True
-sanity_check_paths = {
-    'files': ['bin/spyder3'],
-    'dirs': ['lib/python%(pyshortver)s/site-packages'],
-}
-sanity_check_commands = ["spyder3 --help"]
 
 moduleclass = 'tools'

Updated software wrapt-1.16.0-gfbf-2023b.eb

Diff against wrapt-1.16.0-gfbf-2024a.eb

easybuild/easyconfigs/w/wrapt/wrapt-1.16.0-gfbf-2024a.eb

diff --git a/easybuild/easyconfigs/w/wrapt/wrapt-1.16.0-gfbf-2024a.eb b/easybuild/easyconfigs/w/wrapt/wrapt-1.16.0-gfbf-2023b.eb
index 10f6d8cf5c..8e5cb585bd 100644
--- a/easybuild/easyconfigs/w/wrapt/wrapt-1.16.0-gfbf-2024a.eb
+++ b/easybuild/easyconfigs/w/wrapt/wrapt-1.16.0-gfbf-2023b.eb
@@ -1,4 +1,4 @@
-easyblock = 'PythonBundle'
+easyblock = 'PythonPackage'
 
 name = 'wrapt'
 version = '1.16.0'
@@ -8,20 +8,16 @@ description = """The aim of the wrapt module is to provide a transparent object
 proxy for Python, which can be used as the basis for the construction of
 function wrappers and decorator functions."""
 
-toolchain = {'name': 'gfbf', 'version': '2024a'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
-dependencies = [
-    ('Python', '3.12.3'),
-    ('SciPy-bundle', '2024.05'),
-]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d']
+
+dependencies = [('Python', '3.11.5')]
+builddependencies = [('binutils', '2.40')]
 
 use_pip = True
+download_dep_fail = True
 sanity_pip_check = True
 
-exts_list = [
-    (name, version, {
-        'checksums': ['5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d'],
-    }),
-]
-
 moduleclass = 'tools'
Diff against wrapt-1.15.0-gfbf-2023a.eb

easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-gfbf-2023a.eb

diff --git a/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-gfbf-2023a.eb b/easybuild/easyconfigs/w/wrapt/wrapt-1.16.0-gfbf-2023b.eb
index d623ccbd56..8e5cb585bd 100644
--- a/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-gfbf-2023a.eb
+++ b/easybuild/easyconfigs/w/wrapt/wrapt-1.16.0-gfbf-2023b.eb
@@ -1,27 +1,23 @@
-easyblock = 'PythonBundle'
+easyblock = 'PythonPackage'
 
 name = 'wrapt'
-version = '1.15.0'
+version = '1.16.0'
 
 homepage = 'https://pypi.org/project/wrapt/'
 description = """The aim of the wrapt module is to provide a transparent object
 proxy for Python, which can be used as the basis for the construction of
 function wrappers and decorator functions."""
 
-toolchain = {'name': 'gfbf', 'version': '2023a'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
-dependencies = [
-    ('Python', '3.11.3'),
-    ('SciPy-bundle', '2023.07'),
-]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d']
+
+dependencies = [('Python', '3.11.5')]
+builddependencies = [('binutils', '2.40')]
 
 use_pip = True
+download_dep_fail = True
 sanity_pip_check = True
 
-exts_list = [
-    (name, version, {
-        'checksums': ['d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a'],
-    }),
-]
-
 moduleclass = 'tools'

@pavelToman
Copy link
Contributor Author

Thank you @Flamefire for a review and commit suggestions!

@pavelToman
Copy link
Contributor Author

@boegelbot please test @ generoso

@boegelbot
Copy link
Collaborator

@pavelToman: Request for testing this PR well received on login1

PR test command 'EB_PR=21684 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_21684 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 14739

Test results coming soon (I hope)...

- notification for comment with ID 2485289988 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
FAILED
Build succeeded for 14 out of 15 (15 easyconfigs in total)
cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/e2f23c862938c58903f055883a122422 for a full test report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Spyder
4 participants