Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-python-lsp-server for 
openSUSE:Factory checked in at 2025-11-18 15:41:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-lsp-server (Old)
 and      /work/SRC/openSUSE:Factory/.python-python-lsp-server.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-python-lsp-server"

Tue Nov 18 15:41:17 2025 rev:43 rq:1318437 version:1.13.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-python-lsp-server/python-python-lsp-server.changes
        2025-07-23 16:39:34.254514926 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-python-lsp-server.new.2061/python-python-lsp-server.changes
      2025-11-18 15:43:31.308760675 +0100
@@ -1,0 +2,14 @@
+Mon Nov 17 09:32:52 UTC 2025 - Nico Krapp <[email protected]>
+
+- Update to 1.13.1
+  * Use PyQt6 for testing
+  * Expose a shutdown hook
+  * Copy LAST_JEDI_COMPLETIONS to cell document so that completionItem/resolve
+    will work
+- add allow-pylint4.patch to allow new pylint version
+- enable PyQt test again as upstream moved to PyQt6
+- disable test that hangs
+  (see: https://github.com/python-lsp/python-lsp-server/issues/679)
+- use libalternatives on newer releases
+
+-------------------------------------------------------------------

Old:
----
  python_lsp_server-1.13.0.tar.gz

New:
----
  allow-pylint4.patch
  python_lsp_server-1.13.1.tar.gz

----------(New B)----------
  New:    will work
- add allow-pylint4.patch to allow new pylint version
- enable PyQt test again as upstream moved to PyQt6
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-python-lsp-server.spec ++++++
--- /var/tmp/diff_new_pack.VPPTha/_old  2025-11-18 15:43:31.900785614 +0100
+++ /var/tmp/diff_new_pack.VPPTha/_new  2025-11-18 15:43:31.904785782 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-python-lsp-server
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,15 +16,23 @@
 #
 
 
+%if 0%{?suse_version} > 1500
+%bcond_without libalternatives
+%else
+%bcond_with libalternatives
+%endif
+
 %{?sle15_python_module_pythons}
 Name:           python-python-lsp-server
-Version:        1.13.0
+Version:        1.13.1
 Release:        0
 Summary:        Python Language Server for the Language Server Protocol
 License:        MIT
 URL:            https://github.com/python-lsp/python-lsp-server
 Source:         
https://files.pythonhosted.org/packages/source/p/python-lsp-server/python_lsp_server-%{version}.tar.gz
 Patch1:         unpin-autopep8.patch
+# PATCH-FIX-UPSTREAM allow-pylint4.patch 
https://github.com/python-lsp/python-lsp-server/pull/687
+Patch2:         allow-pylint4.patch
 BuildRequires:  %{python_module base >= 3.9}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module setuptools >= 61.2}
@@ -33,6 +41,7 @@
 BuildRequires:  python-rpm-macros >= 20210628
 # SECTION test requirements
 BuildRequires:  %{python_module autopep8 >= 2.0.4}
+BuildRequires:  %{python_module PyQt6}
 BuildRequires:  %{python_module black}
 BuildRequires:  %{python_module docstring-to-markdown}
 BuildRequires:  %{python_module flaky}
@@ -43,7 +52,7 @@
 BuildRequires:  %{python_module pandas}
 BuildRequires:  %{python_module pluggy}
 BuildRequires:  %{python_module pydocstyle >= 6.3.0 with %python-pydocstyle < 
6.4.0}
-BuildRequires:  %{python_module pylint >= 3.1 with %python-pylint < 4}
+BuildRequires:  %{python_module pylint >= 3.1 with %python-pylint < 4.1}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module python-lsp-jsonrpc >= 1.1.0 with 
%python-python-lsp-jsonrpc < 2}
 BuildRequires:  %{python_module rope >= 1.2.0}
@@ -68,8 +77,13 @@
 Requires:       python-importlib_metadata >= 4.8.3
 %endif
 BuildArch:      noarch
+%if %{with libalternatives}
+Requires:       alts
+BuildRequires:  alts
+%else
 Requires(post): update-alternatives
 Requires(postun): update-alternatives
+%endif
 %python_subpackages
 
 %description
@@ -95,7 +109,7 @@
 Requires:       python-rope >= 1.2.0
 Requires:       python-yapf >= 0.33
 Requires:       (python-pydocstyle >= 6.3.0 with python-pydocstyle < 6.4.0)
-Requires:       (python-pylint >= 3.1 with python-pylint < 4)
+Requires:       (python-pylint >= 3.1 with python-pylint < 4.1)
 Requires:       (python-whatthepatch >= 1.0.2 with python-whatthepatch < 2)
 # Let's bump this in sync with flake8 and ignore pylsp upstream being still 
behind
 # 
https://flake8.pycqa.org/en/latest/faq.html#why-does-flake8-use-ranges-for-its-dependencies
@@ -130,8 +144,12 @@
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
-# PyQt5 not maintained anymore. Reenable when upstream moves to PyQt6
-%pytest -k "not test_pyqt_completion"
+# test_missing_message is hanging 
https://github.com/python-lsp/python-lsp-server/issues/679
+%pytest -k "not test_missing_message"
+
+%pre
+# If libalternatives is used: Removing old update-alternatives entries.
+%python_libalternatives_reset_alternative pylsp
 
 %post
 %python_install_alternative pylsp

++++++ allow-pylint4.patch ++++++
>From d20ec4adb5f2ebe9eb8075b5933ea3190f6e6665 Mon Sep 17 00:00:00 2001
From: nkrapp <[email protected]>
Date: Tue, 18 Nov 2025 11:09:38 +0100
Subject: [PATCH] bump allowed pylint to <4.1

---
 pyproject.toml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index 0be4035c..8fe9c574 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -35,7 +35,7 @@ all = [
     "pycodestyle>=2.12.0,<2.13.0",
     "pydocstyle>=6.3.0,<6.4.0",
     "pyflakes>=3.2.0,<3.3.0",
-    "pylint>=3.1,<4",
+    "pylint>=3.1,<4.1.0",
     "rope>=1.11.0",
     "yapf>=0.33.0",
     "whatthepatch>=1.0.2,<2.0.0"
@@ -46,12 +46,12 @@ mccabe = ["mccabe>=0.7.0,<0.8.0"]
 pycodestyle = ["pycodestyle>=2.12.0,<2.13.0"]
 pydocstyle = ["pydocstyle>=6.3.0,<6.4.0"]
 pyflakes = ["pyflakes>=3.2.0,<3.3.0"]
-pylint = ["pylint>=3.1,<4"]
+pylint = ["pylint>=3.1,<4.1.0"]
 rope = ["rope>=1.11.0"]
 yapf = ["yapf>=0.33.0", "whatthepatch>=1.0.2,<2.0.0"]
 websockets = ["websockets>=10.3"]
 test = [
-    "pylint>=3.1,<4",
+    "pylint>=3.1,<4.1.0",
     "pytest",
     "pytest-cov",
     "coverage",

++++++ python_lsp_server-1.13.0.tar.gz -> python_lsp_server-1.13.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python_lsp_server-1.13.0/CHANGELOG.md 
new/python_lsp_server-1.13.1/CHANGELOG.md
--- old/python_lsp_server-1.13.0/CHANGELOG.md   2025-07-08 18:18:00.000000000 
+0200
+++ new/python_lsp_server-1.13.1/CHANGELOG.md   2025-08-26 18:45:44.000000000 
+0200
@@ -1,5 +1,17 @@
 # History of changes
 
+## Version 1.13.1 (2025/08/26)
+
+### Pull Requests Merged
+
+* [PR 667](https://github.com/python-lsp/python-lsp-server/pull/667) - Use 
PyQt6 for testing, by [@WhyNotHugo](https://github.com/WhyNotHugo)
+* [PR 666](https://github.com/python-lsp/python-lsp-server/pull/666) - Expose 
a shutdown hook, by [@dlax](https://github.com/dlax)
+* [PR 663](https://github.com/python-lsp/python-lsp-server/pull/663) - Copy 
`LAST_JEDI_COMPLETIONS` to cell document so that `completionItem/resolve` will 
work, by [@hjr265](https://github.com/hjr265)
+
+In this release 3 pull requests were closed.
+
+----
+
 ## Version 1.13.0 (2025/07/07)
 
 ### New features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python_lsp_server-1.13.0/PKG-INFO 
new/python_lsp_server-1.13.1/PKG-INFO
--- old/python_lsp_server-1.13.0/PKG-INFO       2025-07-08 18:22:01.430431000 
+0200
+++ new/python_lsp_server-1.13.1/PKG-INFO       2025-08-26 18:49:15.944186700 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: python-lsp-server
-Version: 1.13.0
+Version: 1.13.1
 Summary: Python Language Server for the Language Server Protocol
 Author: Python Language Server Contributors
 License: MIT
@@ -55,7 +55,7 @@
 Requires-Dist: numpy; extra == "test"
 Requires-Dist: pandas; extra == "test"
 Requires-Dist: matplotlib; extra == "test"
-Requires-Dist: pyqt5; extra == "test"
+Requires-Dist: pyqt6; extra == "test"
 Requires-Dist: flaky; extra == "test"
 Requires-Dist: websockets>=10.3; extra == "test"
 Dynamic: license-file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python_lsp_server-1.13.0/pylsp/_version.py 
new/python_lsp_server-1.13.1/pylsp/_version.py
--- old/python_lsp_server-1.13.0/pylsp/_version.py      2025-07-08 
18:22:00.000000000 +0200
+++ new/python_lsp_server-1.13.1/pylsp/_version.py      2025-08-26 
18:49:15.000000000 +0200
@@ -1 +1 @@
-__version__ = "1.13.0"
+__version__ = "1.13.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python_lsp_server-1.13.0/pylsp/hookspecs.py 
new/python_lsp_server-1.13.1/pylsp/hookspecs.py
--- old/python_lsp_server-1.13.0/pylsp/hookspecs.py     2025-07-08 
17:49:48.000000000 +0200
+++ new/python_lsp_server-1.13.1/pylsp/hookspecs.py     2025-08-26 
18:34:02.000000000 +0200
@@ -138,3 +138,8 @@
 @hookspec
 def pylsp_workspace_configuration_changed(config, workspace) -> None:
     pass
+
+
+@hookspec
+def pylsp_shutdown(config, workspace) -> None:
+    pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python_lsp_server-1.13.0/pylsp/python_lsp.py 
new/python_lsp_server-1.13.1/pylsp/python_lsp.py
--- old/python_lsp_server-1.13.0/pylsp/python_lsp.py    2025-07-08 
17:49:48.000000000 +0200
+++ new/python_lsp_server-1.13.1/pylsp/python_lsp.py    2025-08-26 
18:34:02.000000000 +0200
@@ -237,6 +237,7 @@
     def m_shutdown(self, **_kwargs) -> None:
         for workspace in self.workspaces.values():
             workspace.close()
+        self._hook("pylsp_shutdown")
         self._shutdown = True
 
     def m_invalid_request_after_shutdown(self, **_kwargs):
@@ -722,6 +723,12 @@
                 if item.get("data", {}).get("doc_uri") == temp_uri:
                     item["data"]["doc_uri"] = cellDocument.uri
 
+            # Copy LAST_JEDI_COMPLETIONS to cell document so that 
completionItem/resolve will work
+            tempDocument = workspace.get_document(temp_uri)
+            cellDocument.shared_data["LAST_JEDI_COMPLETIONS"] = (
+                tempDocument.shared_data.get("LAST_JEDI_COMPLETIONS", None)
+            )
+
             return completions
 
     def m_text_document__completion(self, textDocument=None, position=None, 
**_kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python_lsp_server-1.13.0/pyproject.toml 
new/python_lsp_server-1.13.1/pyproject.toml
--- old/python_lsp_server-1.13.0/pyproject.toml 2025-07-08 17:49:48.000000000 
+0200
+++ new/python_lsp_server-1.13.1/pyproject.toml 2025-08-26 18:34:02.000000000 
+0200
@@ -57,7 +57,7 @@
     "numpy",
     "pandas",
     "matplotlib",
-    "pyqt5",
+    "pyqt6",
     "flaky",
     "websockets>=10.3",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python_lsp_server-1.13.0/python_lsp_server.egg-info/PKG-INFO 
new/python_lsp_server-1.13.1/python_lsp_server.egg-info/PKG-INFO
--- old/python_lsp_server-1.13.0/python_lsp_server.egg-info/PKG-INFO    
2025-07-08 18:22:01.000000000 +0200
+++ new/python_lsp_server-1.13.1/python_lsp_server.egg-info/PKG-INFO    
2025-08-26 18:49:15.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: python-lsp-server
-Version: 1.13.0
+Version: 1.13.1
 Summary: Python Language Server for the Language Server Protocol
 Author: Python Language Server Contributors
 License: MIT
@@ -55,7 +55,7 @@
 Requires-Dist: numpy; extra == "test"
 Requires-Dist: pandas; extra == "test"
 Requires-Dist: matplotlib; extra == "test"
-Requires-Dist: pyqt5; extra == "test"
+Requires-Dist: pyqt6; extra == "test"
 Requires-Dist: flaky; extra == "test"
 Requires-Dist: websockets>=10.3; extra == "test"
 Dynamic: license-file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python_lsp_server-1.13.0/python_lsp_server.egg-info/requires.txt 
new/python_lsp_server-1.13.1/python_lsp_server.egg-info/requires.txt
--- old/python_lsp_server-1.13.0/python_lsp_server.egg-info/requires.txt        
2025-07-08 18:22:01.000000000 +0200
+++ new/python_lsp_server-1.13.1/python_lsp_server.egg-info/requires.txt        
2025-08-26 18:49:15.000000000 +0200
@@ -52,7 +52,7 @@
 numpy
 pandas
 matplotlib
-pyqt5
+pyqt6
 flaky
 websockets>=10.3
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python_lsp_server-1.13.0/test/plugins/test_completion.py 
new/python_lsp_server-1.13.1/test/plugins/test_completion.py
--- old/python_lsp_server-1.13.0/test/plugins/test_completion.py        
2025-07-08 17:49:48.000000000 +0200
+++ new/python_lsp_server-1.13.1/test/plugins/test_completion.py        
2025-08-26 18:34:02.000000000 +0200
@@ -282,8 +282,8 @@
     reason="Test in Python 3 and not on CIs on Linux because wheels don't work 
on them.",
 )
 def test_pyqt_completion(config, workspace) -> None:
-    # Over 'QA' in 'from PyQt5.QtWidgets import QApplication'
-    doc_pyqt = "from PyQt5.QtWidgets import QA"
+    # Over 'QA' in 'from PyQt6.QtWidgets import QApplication'
+    doc_pyqt = "from PyQt6.QtWidgets import QA"
     com_position = {"line": 0, "character": len(doc_pyqt)}
     doc = Document(DOC_URI, workspace, doc_pyqt)
     completions = pylsp_jedi_completions(config, doc, com_position)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python_lsp_server-1.13.0/test/test_notebook_document.py 
new/python_lsp_server-1.13.1/test/test_notebook_document.py
--- old/python_lsp_server-1.13.0/test/test_notebook_document.py 2025-07-08 
17:49:48.000000000 +0200
+++ new/python_lsp_server-1.13.1/test/test_notebook_document.py 2025-08-26 
18:34:02.000000000 +0200
@@ -530,3 +530,71 @@
             },
         ],
     }
+
+
[email protected](IS_WIN, reason="Flaky on Windows")
+def test_notebook_completion_resolve(client_server_pair) -> None:
+    """
+    Tests that completion item resolve works correctly
+    """
+    client, server = client_server_pair
+    send_initialize_request(client)
+
+    # Open notebook
+    with patch.object(server._endpoint, "notify") as mock_notify:
+        send_notebook_did_open(
+            client,
+            [
+                "def answer():\n\t'''Returns an important number.'''\n\treturn 
42",
+                "ans",
+            ],
+        )
+        # wait for expected diagnostics messages
+        wait_for_condition(lambda: mock_notify.call_count >= 2)
+        assert len(server.workspace.documents) == 3
+        for uri in ["cell_1_uri", "cell_2_uri", "notebook_uri"]:
+            assert uri in server.workspace.documents
+
+    future = client._endpoint.request(
+        "textDocument/completion",
+        {
+            "textDocument": {
+                "uri": "cell_2_uri",
+            },
+            "position": {"line": 0, "character": 3},
+        },
+    )
+    result = future.result(CALL_TIMEOUT_IN_SECONDS)
+    assert result == {
+        "isIncomplete": False,
+        "items": [
+            {
+                "data": {"doc_uri": "cell_2_uri"},
+                "insertText": "answer",
+                "kind": 3,
+                "label": "answer()",
+                "sortText": "aanswer",
+            },
+        ],
+    }
+
+    future = client._endpoint.request(
+        "completionItem/resolve",
+        {
+            "data": {"doc_uri": "cell_2_uri"},
+            "label": "answer()",
+        },
+    )
+    result = future.result(CALL_TIMEOUT_IN_SECONDS)
+    del result["detail"]  # The value of this is unpredictable.
+    assert result == {
+        "data": {"doc_uri": "cell_2_uri"},
+        "insertText": "answer",
+        "kind": 3,
+        "label": "answer()",
+        "sortText": "aanswer",
+        "documentation": {
+            "kind": "markdown",
+            "value": "```python\nanswer()\n```\n\n\nReturns an important 
number.",
+        },
+    }

Reply via email to