public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/spyder] rawhide: Update to 6.1.6
@ 2026-08-06 12:14 Filipe Rosset
  0 siblings, 0 replies; only message in thread
From: Filipe Rosset @ 2026-08-06 12:14 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/spyder
            Branch : rawhide
            Commit : e0cd4c1f469aa8a8005a02d058163582f5243f9e
            Author : Filipe Rosset <rosset.filipe@gmail.com>
            Date   : 2026-08-06T09:12:31-03:00
            Stats  : +26/-295 in 4 file(s)
            URL    : https://src.fedoraproject.org/rpms/spyder/c/e0cd4c1f469aa8a8005a02d058163582f5243f9e?branch=rawhide

            Log:
            Update to 6.1.6

Resolves: rhbz#2414008 - Spyder debugger doesn't run with python 3.14
Resolves: rhbz#2416898 - spyder-6.1.5 is available
Resolves: rhbz#2477818 - F45FailsToInstall: python3-spyder
Resolves: rhbz#2504686 - spyder: FTBFS in Fedora rawhide/f45

---
diff --git a/.gitignore b/.gitignore
index 744d568..fbea604 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,55 +1 @@
-/spyder-2.1.13.zip
-/spyder-2.2.0.zip
-/spyder-2.2.1.zip
-/spyder-2.2.2.zip
-/spyder-2.2.4.zip
-/v2.3.7.tar.gz
-/v2.3.8.tar.gz
-/v2.3.9.tar.gz
-/v3.1.3.tar.gz
-/v3.1.4.tar.gz
-/v3.2.1.tar.gz
-/v3.2.2.tar.gz
-/v3.2.3.tar.gz
-/v3.2.4.tar.gz
-/v3.2.5.tar.gz
-/v3.2.6.tar.gz
-/v3.2.7.tar.gz
-/v3.2.8.tar.gz
-/v3.3.0.tar.gz
-/v3.3.1.tar.gz
-/v3.3.2.tar.gz
-/v3.3.3.tar.gz
-/v3.3.4.tar.gz
-/v3.3.6.tar.gz
-/v4.1.3.tar.gz
-/v4.1.4.tar.gz
-/spyder-4.1.5-1.fc32.src.rpm
-/v4.1.5.tar.gz
-/v4.2.1.tar.gz
-/v4.2.5.tar.gz
-/v5.1.1.tar.gz
-/v5.1.3.tar.gz
-/v5.1.4.tar.gz
-/v5.1.5.tar.gz
-/v5.2.1.tar.gz
-/v5.3.0.tar.gz
-/v5.3.1.tar.gz
-/spyder-5.3.1.tar.gz
-/spyder-5.4.5.tar.gz
-/spyder-6.0.0a1.tar.gz
-/spyder-6.0.0a4.tar.gz
-/spyder-6.0.0a5.tar.gz
-/spyder-6.0.0b1.tar.gz
-/spyder-6.0.0b3.tar.gz
-/spyder-6.0.0rc1.tar.gz
-/spyder-6.0.0rc2.tar.gz
-/spyder-6.0.0.tar.gz
-/spyder-6.0.1.tar.gz
-/spyder-6.0.2.tar.gz
-/spyder-6.0.3.tar.gz
-/spyder-6.0.4.tar.gz
-/spyder-6.0.5.tar.gz
-/spyder-6.0.7.tar.gz
-/spyder-6.0.8.tar.gz
-/spyder-6.1.0.tar.gz
+/spyder-*.tar.gz

diff --git a/24698.patch b/24698.patch
deleted file mode 100644
index 4e1be5c..0000000
--- a/24698.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-From e3d0d5afad6c6c2b04cf889c5b2087c63923e777 Mon Sep 17 00:00:00 2001
-From: Ben Boeckel <mathstuf@gmail.com>
-Date: Wed, 9 Jul 2025 22:39:00 -0400
-Subject: [PATCH] atomicwrites: remove dependency
-
-The package has been deprecated. Replace usage with open-coded
-replacement. Also copy the test suite for the function.
-
-Lifted from pimutils/khal#1393 (which I also authored).
-
-Fixes: #24689
-
-diff --git a/binder/environment.yml b/binder/environment.yml
-index 08af5a71a..ad87c8a29 100644
---- a/binder/environment.yml
-+++ b/binder/environment.yml
-@@ -11,7 +11,6 @@ dependencies:
- # to requirements/main.yml, and copy it here.
- - aiohttp >=3.11.2
- - asyncssh >=2.14.0,<3.0.0
--- atomicwrites >=1.2.0
- - bcrypt >=4.3.0
- - chardet >=2.0.0
- - cloudpickle >=0.5.0
-diff --git a/requirements/main.yml b/requirements/main.yml
-index 0331a7b12..559e71e61 100644
---- a/requirements/main.yml
-+++ b/requirements/main.yml
-@@ -9,7 +9,6 @@ channels:
- dependencies:
-   - aiohttp >=3.11.2
-   - asyncssh >=2.14.0,<3.0.0
--  - atomicwrites >=1.2.0
-   - bcrypt >=4.3.0
-   - chardet >=2.0.0
-   - cloudpickle >=0.5.0
-diff --git a/setup.py b/setup.py
-index 687f27237..4dbb888c5 100644
---- a/setup.py
-+++ b/setup.py
-@@ -270,7 +270,6 @@ def run(self):
-     'aiohttp>=3.11.2',
-     'applaunchservices>=0.3.0;platform_system=="Darwin"',
-     'asyncssh>=2.14.0,<3.0.0',
--    'atomicwrites>=1.2.0',
-     'bcrypt>=4.3.0',
-     'chardet>=2.0.0',
-     'cloudpickle>=0.5.0',
-diff --git a/spyder/dependencies.py b/spyder/dependencies.py
-index a44c78354..745362008 100644
---- a/spyder/dependencies.py
-+++ b/spyder/dependencies.py
-@@ -33,7 +33,6 @@
- AIOHTTP_REQVER = '>=3.11.2'
- APPLAUNCHSERVICES_REQVER = '>=0.3.0'
- ASYNCSSH_REQVER = '>=2.14.0,<3.0.0'
--ATOMICWRITES_REQVER = '>=1.2.0'
- BCRYPT_REQVER = ">=4.3.0"
- CHARDET_REQVER = '>=2.0.0'
- CLOUDPICKLE_REQVER = '>=0.5.0'
-@@ -109,10 +108,6 @@
-      'package_name': 'asyncssh',
-      'features': _('Connect to remote kernels through SSH'),
-      'required_version': ASYNCSSH_REQVER},
--    {'modname': "atomicwrites",
--     'package_name': "atomicwrites",
--     'features': _("Atomic file writes in the Editor"),
--     'required_version': ATOMICWRITES_REQVER},
-     {'modname': "bcrypt",
-      'package_name': "bcrypt",
-      'features': _("Decrypt passphrase of SSH key files"),
-diff --git a/spyder/tests/test_atomic_write.py b/spyder/tests/test_atomic_write.py
-new file mode 100644
-index 000000000..a1dc02d47
---- /dev/null
-+++ b/spyder/tests/test_atomic_write.py
-@@ -0,0 +1,93 @@
-+# From https://github.com/untitaker/python-atomicwrites/blob/4183999d9b7e81af85dee070d5311299bdf5164c/tests/test_atomicwrites.py
-+
-+import errno
-+import os
-+
-+from spyder.utils.encoding import atomic_write
-+
-+import pytest
-+
-+
-+def test_atomic_write(tmpdir):
-+    fname = tmpdir.join('ha')
-+    for i in range(2):
-+        with atomic_write(str(fname), overwrite=True, dir=tmpdir, mode='w') as f:
-+            f.write('hoho')
-+
-+    with pytest.raises(OSError) as excinfo:
-+        with atomic_write(str(fname), overwrite=False, dir=tmpdir, mode='w') as f:
-+            f.write('haha')
-+
-+    assert excinfo.value.errno == errno.EEXIST
-+
-+    assert fname.read() == 'hoho'
-+    assert len(tmpdir.listdir()) == 1
-+
-+
-+def test_teardown(tmpdir):
-+    fname = tmpdir.join('ha')
-+    with pytest.raises(AssertionError):
-+        with atomic_write(str(fname), overwrite=True, dir=tmpdir, mode='w'):
-+            assert False
-+
-+    assert not tmpdir.listdir()
-+
-+
-+def test_replace_simultaneously_created_file(tmpdir):
-+    fname = tmpdir.join('ha')
-+    with atomic_write(str(fname), overwrite=True, dir=tmpdir, mode='w') as f:
-+        f.write('hoho')
-+        fname.write('harhar')
-+        assert fname.read() == 'harhar'
-+    assert fname.read() == 'hoho'
-+    assert len(tmpdir.listdir()) == 1
-+
-+
-+def test_dont_remove_simultaneously_created_file(tmpdir):
-+    fname = tmpdir.join('ha')
-+    with pytest.raises(OSError) as excinfo:
-+        with atomic_write(str(fname), overwrite=False, dir=tmpdir, mode='w') as f:
-+            f.write('hoho')
-+            fname.write('harhar')
-+            assert fname.read() == 'harhar'
-+
-+    assert excinfo.value.errno == errno.EEXIST
-+    assert fname.read() == 'harhar'
-+    assert len(tmpdir.listdir()) == 1
-+
-+
-+# Verify that nested exceptions during rollback do not overwrite the initial
-+# exception that triggered a rollback.
-+def test_open_reraise(tmpdir):
-+    fname = tmpdir.join('ha')
-+    with pytest.raises(AssertionError):
-+        aw = atomic_write(str(fname), overwrite=False, dir=tmpdir, mode='w')
-+        with aw:
-+            # Mess with internals, so commit will trigger a ValueError. We're
-+            # testing that the initial AssertionError triggered below is
-+            # propagated up the stack, not the second exception triggered
-+            # during commit.
-+            aw.rollback = lambda: 1 / 0
-+            # Now trigger our own exception.
-+            assert False, "Intentional failure for testing purposes"
-+
-+
-+def test_atomic_write_in_pwd(tmpdir):
-+    orig_curdir = os.getcwd()
-+    try:
-+        os.chdir(str(tmpdir))
-+        fname = 'ha'
-+        for i in range(2):
-+            with atomic_write(str(fname), overwrite=True, dir=tmpdir, mode='w') as f:
-+                f.write('hoho')
-+
-+        with pytest.raises(OSError) as excinfo:
-+            with atomic_write(str(fname), overwrite=False, dir=tmpdir, mode='w') as f:
-+                f.write('haha')
-+
-+        assert excinfo.value.errno == errno.EEXIST
-+
-+        assert open(fname).read() == 'hoho'
-+        assert len(tmpdir.listdir()) == 1
-+    finally:
-+        os.chdir(orig_curdir)
-diff --git a/spyder/utils/encoding.py b/spyder/utils/encoding.py
-index 97ef43d24..de5a45acd 100644
---- a/spyder/utils/encoding.py
-+++ b/spyder/utils/encoding.py
-@@ -13,6 +13,7 @@
- 
- # Standard library imports
- from codecs import BOM_UTF8, BOM_UTF16, BOM_UTF32
-+import contextlib
- import tempfile
- import locale
- import re
-@@ -25,7 +26,6 @@
- 
- # Third-party imports
- from chardet.universaldetector import UniversalDetector
--from atomicwrites import atomic_write
- 
- # Local imports
- from spyder.utils.external.binaryornot.check import is_binary
-@@ -245,6 +245,28 @@ def to_unicode(string):
-     return string
- 
- 
-+@contextlib.contextmanager
-+def atomic_write(dest, overwrite, dir, mode):
-+    """Atomically write a file"""
-+    fd, src = tempfile.mkstemp(prefix=os.path.basename(dest), dir=dir)
-+    file = os.fdopen(fd, mode=mode)
-+
-+    try:
-+        yield file
-+    except Exception:
-+        os.unlink(src)
-+        raise
-+    else:
-+        file.flush()
-+        file.close()
-+
-+        if overwrite:
-+            os.rename(src, dest)
-+        else:
-+            os.link(src, dest)
-+            os.unlink(src)
-+
-+
- def write(text, filename, encoding='utf-8', mode='wb'):
-     """
-     Write 'text' to file ('filename') assuming 'encoding' in an atomic way

diff --git a/sources b/sources
index b6e4c04..05a7cbd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (spyder-6.1.0.tar.gz) = 0db05cde6968f4a9b34f20777f87884b19dd007bcd35e3b6a5255e6f77837cfea9ebeb4213afff270056120f067975ad1b3ac6f347d927d5d06ed48f3d7c698e
+SHA512 (spyder-6.1.6.tar.gz) = 0159bcd0b7ea1f4b9bbc428cd5d154d199a8ec9c71d15f431e10a5000418343fea4ece9fd65c8ba19800bde7a9861f2fef0dfa391397bca6b420a1ee2d8ac7f7

diff --git a/spyder.spec b/spyder.spec
index 4f34b63..dacd709 100644
--- a/spyder.spec
+++ b/spyder.spec
@@ -1,12 +1,12 @@
+%global forgeurl https://github.com/spyder-ide/spyder
+%global tag v%{version}
+Version:        6.1.6
+%forgemeta
+
 Name:           spyder
-Version:        6.1.0
 Release:        %autorelease
 Summary:        Scientific Python Development Environment
 
-%global forgeurl https://github.com/spyder-ide/spyder/
-%global tag v%{version_no_tilde %{quote:%nil}}
-%forgemeta
-
 # Spyder is licensed under MIT with the exception of the following
 # code, which is licensed BSD-3-Clause.
 #
@@ -19,9 +19,7 @@ Summary:        Scientific Python Development Environment
 License:        MIT AND BSD-3-Clause
 URL:            https://www.spyder-ide.org/
 Source:         %forgesource
-# Drop dependency on atomicwrites (deprecated and retired)
-# https://github.com/spyder-ide/spyder/pull/24698
-Patch:          %{forgeurl}/pull/24698.patch
+
 
 BuildArch:      noarch
 # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
@@ -32,16 +30,11 @@ ExcludeArch:    %{ix86}
 # https://docs.fedoraproject.org/en-US/packaging-guidelines/#_noarch_with_unported_dependencies
 ExclusiveArch:  %{qt5_qtwebengine_arches} noarch
 
-BuildRequires:  python3-devel
-
-BuildRequires:  dos2unix
-
+BuildRequires:  appstream
 BuildRequires:  desktop-file-utils
-# Still required by guidelines for now since Fedora uses appstream-builder
-# (https://pagure.io/packaging-committee/issue/1053):
+BuildRequires:  dos2unix
 BuildRequires:  libappstream-glib
-# Matches what gnome-software and others use:
-BuildRequires:  appstream
+BuildRequires:  python3-devel
 
 %global appname org.spyder_ide.spyder
 
@@ -64,13 +57,14 @@ components, such as the interactive console, in your own software.}
 %package -n python3-spyder
 Summary:    %{summary}
 
-# For %%{_datadir}/icons
 Requires:       hicolor-icon-theme
-# Unbundled from spyder/plugins/help/utils/js/mathjax
 Requires:       mathjax
-# Required for the plugins (but not for building Spyder)
 Requires:       python3-pylint
 Requires:       python3-pylint-venv
+Requires:       python3dist(python-lsp-black) >= 2
+Requires:       python3dist(python-lsp-ruff) >= 2.3
+Requires:       python3dist(python-lsp-server) >= 1.13
+Requires:       python3dist(spyder-kernels) >= 3.1
 
 %description -n python3-spyder %_description
 
@@ -94,6 +88,16 @@ sed -i \
 -e '/pylint>.*/d' \
 -e '/pylint-venv>.*/d' setup.py
 
+# Drop runtime requirements from setup.py to avoid build-time dependency issues
+sed -i \
+    -e '/python-lsp-black/d' \
+    -e '/python-lsp-ruff/d' \
+    -e '/python-lsp-server/d' \
+    -e '/spyder-kernels/d' setup.py
+sed -i -e "s/PYLSP_REQVER = .*/PYLSP_REQVER = '>=1.13.0'/g" spyder/dependencies.py
+sed -i -e "s/SPYDER_KERNELS_REQVER = .*/SPYDER_KERNELS_REQVER = '>=3.1.0'/g" spyder/dependencies.py
+
+
 # Don't show warning regarding newer version
 sed -r -i "s|(PYLINT_REQVER.*),<.*'|\1'|" spyder/dependencies.py
 
@@ -139,7 +143,7 @@ appstreamcli validate --no-net --explain \
 
 # A backed-up bundled mathjax directory from a previous upgrade (from Fedora 34
 # or older) may be present; if so, we should continue to own it.
-%ghost %{python3_sitelib}/spyder/plugins/help/utils/js/mathjax.rpmmoved
+%ghost %attr(0644,root,root) %{python3_sitelib}/spyder/plugins/help/utils/js/mathjax.rpmmoved
 %{python3_sitelib}/spyder/plugins/help/utils/js/mathjax
 
 %{_bindir}/spyder

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-06 12:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-06 12:14 [rpms/spyder] rawhide: Update to 6.1.6 Filipe Rosset

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox