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 2023-07-01 23:18:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-lsp-server (Old)
and /work/SRC/openSUSE:Factory/.python-python-lsp-server.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-lsp-server"
Sat Jul 1 23:18:31 2023 rev:23 rq:1096293 version:1.7.4
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-python-lsp-server/python-python-lsp-server.changes
2023-05-10 16:18:14.898876685 +0200
+++
/work/SRC/openSUSE:Factory/.python-python-lsp-server.new.13546/python-python-lsp-server.changes
2023-07-01 23:18:37.162464639 +0200
@@ -1,0 +2,12 @@
+Sat Jul 1 13:38:40 UTC 2023 - Ben Greiner <[email protected]>
+
+- Update to 1.7.4
+ * Fixes token initialization when reporting progress.
+ * Resolves home dir references in Jedi environment path.
+ * Fixes Pylint hanging on files with many errors.
+- Release 1.7.3
+ * Adds support for Yapf 0.33
+ (upstreamed python-lsp-server-pr377-unpin-yapf.patch)
+ * Fix an empty current working directory value for Pylint
+
+-------------------------------------------------------------------
Old:
----
python-lsp-server-1.7.2.tar.gz
python-lsp-server-pr377-unpin-yapf.patch
New:
----
python-lsp-server-1.7.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python-lsp-server.spec ++++++
--- /var/tmp/diff_new_pack.l2owbz/_old 2023-07-01 23:18:37.974469506 +0200
+++ /var/tmp/diff_new_pack.l2owbz/_new 2023-07-01 23:18:37.978469530 +0200
@@ -17,14 +17,12 @@
Name: python-python-lsp-server
-Version: 1.7.2
+Version: 1.7.4
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
-# PATCH-FIX-UPSTREAM python-lsp-server-pr377-unpin-yapf.patch
gh#python-lsp/python-lsp-server#377
-Patch0: python-lsp-server-pr377-unpin-yapf.patch
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 61.2}
++++++ python-lsp-server-1.7.2.tar.gz -> python-lsp-server-1.7.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/CHANGELOG.md
new/python-lsp-server-1.7.4/CHANGELOG.md
--- old/python-lsp-server-1.7.2/CHANGELOG.md 2023-04-03 03:18:18.000000000
+0200
+++ new/python-lsp-server-1.7.4/CHANGELOG.md 2023-06-29 19:09:22.000000000
+0200
@@ -1,5 +1,41 @@
# History of changes
+## Version 1.7.4 (2023/06/29)
+
+### Issues Closed
+
+* [Issue 393](https://github.com/python-lsp/python-lsp-server/issues/393) -
Environment path doesn't expand user directory
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+* [PR 394](https://github.com/python-lsp/python-lsp-server/pull/394) - Resolve
homedir references in Jedi environment path, by
[@odiroot](https://github.com/odiroot)
+* [PR 381](https://github.com/python-lsp/python-lsp-server/pull/381) - Report
progress even when initialization fails, by [@syphar](https://github.com/syphar)
+* [PR 380](https://github.com/python-lsp/python-lsp-server/pull/380) - Fix
pylint hang on file with many errors, by
[@hetmankp](https://github.com/hetmankp)
+
+In this release 3 pull requests were closed.
+
+----
+
+## Version 1.7.3 (2023/05/15)
+
+### Issues Closed
+
+* [Issue 369](https://github.com/python-lsp/python-lsp-server/issues/369) -
Failed to load hook pylsp_lint: [Errno 2] No such file or directory: '' ([PR
371](https://github.com/python-lsp/python-lsp-server/pull/371) by
[@Ultimator14](https://github.com/Ultimator14))
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+* [PR 377](https://github.com/python-lsp/python-lsp-server/pull/377) - Update
yapf requirement to 0.33+, by [@bnavigator](https://github.com/bnavigator)
+* [PR 371](https://github.com/python-lsp/python-lsp-server/pull/371) - Fix
empty cwd value for pylint, by [@Ultimator14](https://github.com/Ultimator14)
([369](https://github.com/python-lsp/python-lsp-server/issues/369))
+* [PR 364](https://github.com/python-lsp/python-lsp-server/pull/364) - Add
Arch Linux installation command to Readme, by
[@GNVageesh](https://github.com/GNVageesh)
+
+In this release 3 pull requests were closed.
+
+----
+
## Version 1.7.2 (2023/04/02)
### Issues Closed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/PKG-INFO
new/python-lsp-server-1.7.4/PKG-INFO
--- old/python-lsp-server-1.7.2/PKG-INFO 2023-04-03 03:21:16.750254000
+0200
+++ new/python-lsp-server-1.7.4/PKG-INFO 2023-06-29 19:12:25.935712300
+0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: python-lsp-server
-Version: 1.7.2
+Version: 1.7.4
Summary: Python Language Server for the Language Server Protocol
Author: Python Language Server Contributors
License: MIT
@@ -88,6 +88,12 @@
sudo dnf install python-lsp-server
```
+or Arch Linux
+
+```
+sudo pacman -S python-lsp-server
+````
+
Only on Alpine Linux the package is named differently. You can install it
there by typing this command in your terminal:
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/README.md
new/python-lsp-server-1.7.4/README.md
--- old/python-lsp-server-1.7.2/README.md 2022-12-18 04:24:12.000000000
+0100
+++ new/python-lsp-server-1.7.4/README.md 2023-05-15 13:24:53.000000000
+0200
@@ -65,6 +65,12 @@
sudo dnf install python-lsp-server
```
+or Arch Linux
+
+```
+sudo pacman -S python-lsp-server
+````
+
Only on Alpine Linux the package is named differently. You can install it
there by typing this command in your terminal:
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/pylsp/_version.py
new/python-lsp-server-1.7.4/pylsp/_version.py
--- old/python-lsp-server-1.7.2/pylsp/_version.py 2023-04-03
03:21:16.000000000 +0200
+++ new/python-lsp-server-1.7.4/pylsp/_version.py 2023-06-29
19:12:25.000000000 +0200
@@ -1 +1 @@
-__version__ = "1.7.2"
+__version__ = "1.7.4"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-lsp-server-1.7.2/pylsp/plugins/_rope_task_handle.py
new/python-lsp-server-1.7.4/pylsp/plugins/_rope_task_handle.py
--- old/python-lsp-server-1.7.2/pylsp/plugins/_rope_task_handle.py
2022-12-11 18:32:03.000000000 +0100
+++ new/python-lsp-server-1.7.4/pylsp/plugins/_rope_task_handle.py
2023-06-29 18:58:38.000000000 +0200
@@ -76,7 +76,9 @@
self.observers = []
def create_jobset(self, name="JobSet", count: Optional[int] = None):
- report_iter = self.workspace.report_progress(name, None, None)
+ report_iter = self.workspace.report_progress(
+ name, None, None, skip_token_initialization=True
+ )
result = PylspJobSet(count, report_iter)
self.job_sets.append(result)
self._inform_observers()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/pylsp/plugins/pylint_lint.py
new/python-lsp-server-1.7.4/pylsp/plugins/pylint_lint.py
--- old/python-lsp-server-1.7.2/pylsp/plugins/pylint_lint.py 2023-03-18
19:10:05.000000000 +0100
+++ new/python-lsp-server-1.7.4/pylsp/plugins/pylint_lint.py 2023-06-29
18:58:38.000000000 +0200
@@ -48,7 +48,7 @@
last_diags = collections.defaultdict(list)
@classmethod
- def lint(cls, document, is_saved, flags=''):
+ def lint(cls, document, is_saved, flags=''): # pylint:
disable=too-many-locals,too-many-branches
"""Plugin interface to pylsp linter.
Args:
@@ -95,11 +95,13 @@
] + (shlex.split(str(flags)) if flags else [])
log.debug("Calling pylint with '%s'", ' '.join(cmd))
+ cwd = document._workspace.root_path
+ if not cwd:
+ cwd = os.path.dirname(__file__)
+
with Popen(cmd, stdout=PIPE, stderr=PIPE,
- cwd=document._workspace.root_path, universal_newlines=True)
as process:
- process.wait()
- json_out = process.stdout.read()
- err = process.stderr.read()
+ cwd=cwd, universal_newlines=True) as process:
+ json_out, err = process.communicate()
if err != '':
log.error("Error calling pylint: '%s'", err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/pylsp/workspace.py
new/python-lsp-server-1.7.4/pylsp/workspace.py
--- old/python-lsp-server-1.7.2/pylsp/workspace.py 2023-04-03
03:06:12.000000000 +0200
+++ new/python-lsp-server-1.7.4/pylsp/workspace.py 2023-06-29
18:58:38.000000000 +0200
@@ -135,7 +135,20 @@
title: str,
message: Optional[str] = None,
percentage: Optional[int] = None,
+ skip_token_initialization: bool = False,
) -> Generator[Callable[[str, Optional[int]], None], None, None]:
+ """
+ Report progress to the editor / client.
+
+ ``skip_token_initialization` is necessary due to some current
+ limitations of our LSP implementation. When `report_progress`
+ is used from a synchronous LSP handler, the token initialization
+ will time out because we can't receive the response.
+
+ Many editors will still correctly show the progress messages though,
which
+ is why we are giving progress users the option to skip the
initialization
+ of the progress token.
+ """
if self._config:
client_supports_progress_reporting = (
self._config.capabilities.get("window",
{}).get("workDoneProgress", False)
@@ -144,30 +157,21 @@
client_supports_progress_reporting = False
if client_supports_progress_reporting:
- try:
- token = self._progress_begin(title, message, percentage)
- except Exception: # pylint: disable=broad-exception-caught
- log.warning(
- "There was an error while trying to initialize progress
reporting."
- "Likely progress reporting was used in a synchronous LSP
handler, "
- "which is not supported by progress reporting yet.",
- exc_info=True
- )
+ token = self._progress_begin(title, message, percentage,
skip_token_initialization)
- else:
- def progress_message(message: str, percentage: Optional[int] =
None) -> None:
- self._progress_report(token, message, percentage)
-
- try:
- yield progress_message
- finally:
- self._progress_end(token)
+ def progress_message(message: str, percentage: Optional[int] =
None) -> None:
+ self._progress_report(token, message, percentage)
- return
+ try:
+ yield progress_message
+ finally:
+ self._progress_end(token)
+
+ return
# FALLBACK:
- # If the client doesn't support progress reporting, or if we failed to
- # initialize it, we have a dummy method for the caller to use.
+ # If the client doesn't support progress reporting, we have a dummy
method
+ # for the caller to use.
def dummy_progress_message(message: str, percentage: Optional[int] =
None) -> None:
# pylint: disable=unused-argument
pass
@@ -179,10 +183,23 @@
title: str,
message: Optional[str] = None,
percentage: Optional[int] = None,
+ skip_token_initialization: bool = False,
) -> str:
token = str(uuid.uuid4())
- self._endpoint.request(self.M_INITIALIZE_PROGRESS, {'token':
token}).result(timeout=1.0)
+ if not skip_token_initialization:
+ try:
+ self._endpoint.request(self.M_INITIALIZE_PROGRESS, {'token':
token}).result(timeout=1.0)
+ except Exception: # pylint: disable=broad-exception-caught
+ log.warning(
+ "There was an error while trying to initialize progress
reporting."
+ "Likely progress reporting was used in a synchronous LSP
handler, "
+ "which is not supported by progress reporting yet. "
+ "To prevent waiting for the timeout you can set "
+ "`skip_token_initialization=True`. "
+ "Not every editor will show progress then, but many will.",
+ exc_info=True
+ )
value = {
"kind": "begin",
@@ -389,6 +406,11 @@
jedi.settings.auto_import_modules =
jedi_settings.get('auto_import_modules',
DEFAULT_AUTO_IMPORT_MODULES)
environment_path = jedi_settings.get('environment')
+ # Jedi itself cannot deal with homedir-relative paths.
+ # On systems, where it is expected, expand the home directory.
+ if environment_path and os.name != 'nt':
+ environment_path = os.path.expanduser(environment_path)
+
extra_paths = jedi_settings.get('extra_paths') or []
env_vars = jedi_settings.get('env_vars')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/pyproject.toml
new/python-lsp-server-1.7.4/pyproject.toml
--- old/python-lsp-server-1.7.2/pyproject.toml 2023-03-18 19:10:05.000000000
+0100
+++ new/python-lsp-server-1.7.4/pyproject.toml 2023-05-15 13:24:53.000000000
+0200
@@ -35,8 +35,7 @@
"pyflakes>=2.5.0,<3.1.0",
"pylint>=2.5.0,<3",
"rope>1.2.0",
- "yapf<=0.32.0",
- "toml",
+ "yapf>=0.33.0",
"whatthepatch>=1.0.2,<2.0.0"
]
autopep8 = ["autopep8>=1.6.0,<2.1.0"]
@@ -47,7 +46,7 @@
pyflakes = ["pyflakes>=2.5.0,<3.1.0"]
pylint = ["pylint>=2.5.0,<3"]
rope = ["rope>1.2.0"]
-yapf = ["yapf<=0.32.0", "whatthepatch>=1.0.2,<2.0.0", "toml"]
+yapf = ["yapf>=0.33.0", "whatthepatch>=1.0.2,<2.0.0"]
websockets = ["websockets>=10.3"]
test = [
"pylint>=2.5.0,<3",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-lsp-server-1.7.2/python_lsp_server.egg-info/PKG-INFO
new/python-lsp-server-1.7.4/python_lsp_server.egg-info/PKG-INFO
--- old/python-lsp-server-1.7.2/python_lsp_server.egg-info/PKG-INFO
2023-04-03 03:21:16.000000000 +0200
+++ new/python-lsp-server-1.7.4/python_lsp_server.egg-info/PKG-INFO
2023-06-29 19:12:25.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: python-lsp-server
-Version: 1.7.2
+Version: 1.7.4
Summary: Python Language Server for the Language Server Protocol
Author: Python Language Server Contributors
License: MIT
@@ -88,6 +88,12 @@
sudo dnf install python-lsp-server
```
+or Arch Linux
+
+```
+sudo pacman -S python-lsp-server
+````
+
Only on Alpine Linux the package is named differently. You can install it
there by typing this command in your terminal:
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-lsp-server-1.7.2/python_lsp_server.egg-info/requires.txt
new/python-lsp-server-1.7.4/python_lsp_server.egg-info/requires.txt
--- old/python-lsp-server-1.7.2/python_lsp_server.egg-info/requires.txt
2023-04-03 03:21:16.000000000 +0200
+++ new/python-lsp-server-1.7.4/python_lsp_server.egg-info/requires.txt
2023-06-29 19:12:25.000000000 +0200
@@ -14,8 +14,7 @@
pyflakes<3.1.0,>=2.5.0
pylint<3,>=2.5.0
rope>1.2.0
-yapf<=0.32.0
-toml
+yapf>=0.33.0
whatthepatch<2.0.0,>=1.0.2
[autopep8]
@@ -57,6 +56,5 @@
websockets>=10.3
[yapf]
-yapf<=0.32.0
+yapf>=0.33.0
whatthepatch<2.0.0,>=1.0.2
-toml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-lsp-server-1.7.2/test/test_workspace.py
new/python-lsp-server-1.7.4/test/test_workspace.py
--- old/python-lsp-server-1.7.2/test/test_workspace.py 2023-04-03
03:06:12.000000000 +0200
+++ new/python-lsp-server-1.7.4/test/test_workspace.py 2023-06-29
18:58:38.000000000 +0200
@@ -327,19 +327,24 @@
@pytest.mark.parametrize("exc", [Exception("something"), TimeoutError()])
-def test_progress_initialization_fails(workspace, consumer, endpoint, exc):
+def test_progress_initialization_fails_but_is_skipped(workspace, consumer,
endpoint, exc):
def failing_token_initialization(self, *_args, **_kwargs):
raise exc
endpoint._dispatcher.m_window__work_done_progress__create =
failing_token_initialization
workspace._config.capabilities['window'] = {"workDoneProgress": True}
- with workspace.report_progress("some_title"):
+ with workspace.report_progress("some_title",
skip_token_initialization=True):
pass
# we only see the failing token initialization call, no other calls
- init_call, = consumer.call_args_list
- assert init_call[0][0]['method'] == 'window/workDoneProgress/create'
+ progress_calls = consumer.call_args_list
+ assert all(call[0][0]["method"] == "$/progress" for call in progress_calls)
+ assert len({call[0][0]["params"]["token"] for call in progress_calls}) == 1
+ assert [call[0][0]["params"]["value"] for call in progress_calls] == [
+ {"kind": "begin", "title": "some_title"},
+ {"kind": "end"},
+ ]
def test_progress_with_percent(workspace, consumer):