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.",
+ },
+ }