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 2021-09-02 23:20:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-python-lsp-server (Old) and /work/SRC/openSUSE:Factory/.python-python-lsp-server.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-lsp-server" Thu Sep 2 23:20:23 2021 rev:3 rq:915773 version:1.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-python-lsp-server/python-python-lsp-server.changes 2021-08-06 22:45:25.146002662 +0200 +++ /work/SRC/openSUSE:Factory/.python-python-lsp-server.new.1899/python-python-lsp-server.changes 2021-09-02 23:20:44.180585013 +0200 @@ -1,0 +2,11 @@ +Thu Sep 2 12:24:11 UTC 2021 - Ben Greiner <c...@bnavigator.de> + +- Update to version 1.2.2 + * Improves the way we skip symbols imported from other libraries. + * Add a constrain on Pylint (< 2.10) until we figure out how to + support it. +- Reflect the above upper pinning for python-pylint in Suggests + and Conflicts in order to prevent updates on live systems as soon + as pylint is updated in Factory + +------------------------------------------------------------------- Old: ---- python-lsp-server-1.2.1.tar.gz New: ---- python-lsp-server-1.2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-python-lsp-server.spec ++++++ --- /var/tmp/diff_new_pack.1ozkiw/_old 2021-09-02 23:20:44.680585637 +0200 +++ /var/tmp/diff_new_pack.1ozkiw/_new 2021-09-02 23:20:44.684585642 +0200 @@ -19,14 +19,14 @@ %{?!python_module:%define python_module() python3-%{**}} %define skip_python2 1 Name: python-python-lsp-server -Version: 1.2.1 +Version: 1.2.2 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 BuildRequires: %{python_module setuptools >= 39.0.0} -BuildRequires: python-rpm-macros +BuildRequires: python-rpm-macros >= 20210628 # SECTION test requirements BuildRequires: %{python_module jedi >= 0.17.2} BuildRequires: %{python_module PyQt5} @@ -38,7 +38,7 @@ BuildRequires: %{python_module pycodestyle >= 2.7.0} BuildRequires: %{python_module pydocstyle >= 2.0.0} BuildRequires: %{python_module pyflakes >= 2.3.0} -BuildRequires: %{python_module pylint >= 2.5.0} +BuildRequires: %{python_module pylint >= 2.5.0 with %python-pylint < 2.10} BuildRequires: %{python_module pytest} BuildRequires: %{python_module python-lsp-jsonrpc >= 1.0.0} BuildRequires: %{python_module rope >= 0.10.5} @@ -60,9 +60,10 @@ Suggests: python-pycodestyle >= 2.7.0 Suggests: python-pydocstyle >= 2.0.0 Suggests: python-pyflakes >= 2.3.0 -Suggests: python-pylint >= 2.5.0 +Suggests: (python-pylint >= 2.5.0 with python-pylint < 2.10) Suggests: python-rope >= 0.10.5 Suggests: python-yapf +Conflicts: python-pylint >= 2.10 BuildArch: noarch Requires(post): update-alternatives Requires(postun):update-alternatives ++++++ python-lsp-server-1.2.1.tar.gz -> python-lsp-server-1.2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/PKG-INFO new/python-lsp-server-1.2.2/PKG-INFO --- old/python-lsp-server-1.2.1/PKG-INFO 2021-08-04 19:11:45.349771700 +0200 +++ new/python-lsp-server-1.2.2/PKG-INFO 2021-09-02 00:43:26.718820300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: python-lsp-server -Version: 1.2.1 +Version: 1.2.2 Summary: Python Language Server for the Language Server Protocol Home-page: https://github.com/python-lsp/python-lsp-server Author: Python Language Server Contributors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/pylsp/_version.py new/python-lsp-server-1.2.2/pylsp/_version.py --- old/python-lsp-server-1.2.1/pylsp/_version.py 2021-08-04 19:10:52.000000000 +0200 +++ new/python-lsp-server-1.2.2/pylsp/_version.py 2021-09-02 00:42:19.000000000 +0200 @@ -4,5 +4,5 @@ """PyLSP versioning information.""" -VERSION_INFO = (1, 2, 1) +VERSION_INFO = (1, 2, 2) __version__ = '.'.join(map(str, VERSION_INFO)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/pylsp/plugins/pylint_lint.py new/python-lsp-server-1.2.2/pylsp/plugins/pylint_lint.py --- old/python-lsp-server-1.2.1/pylsp/plugins/pylint_lint.py 2021-06-25 23:26:52.000000000 +0200 +++ new/python-lsp-server-1.2.2/pylsp/plugins/pylint_lint.py 2021-08-20 01:36:01.000000000 +0200 @@ -280,6 +280,7 @@ 'C': lsp.DiagnosticSeverity.Information, 'E': lsp.DiagnosticSeverity.Error, 'F': lsp.DiagnosticSeverity.Error, + 'I': lsp.DiagnosticSeverity.Information, 'R': lsp.DiagnosticSeverity.Hint, 'W': lsp.DiagnosticSeverity.Warning, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/pylsp/plugins/symbols.py new/python-lsp-server-1.2.2/pylsp/plugins/symbols.py --- old/python-lsp-server-1.2.1/pylsp/plugins/symbols.py 2021-08-01 21:49:22.000000000 +0200 +++ new/python-lsp-server-1.2.2/pylsp/plugins/symbols.py 2021-08-21 09:25:35.000000000 +0200 @@ -16,6 +16,8 @@ # pylint: disable=too-many-nested-blocks # pylint: disable=too-many-locals # pylint: disable=too-many-branches + # pylint: disable=too-many-statements + symbols_settings = config.plugin_settings('jedi_symbols') all_scopes = symbols_settings.get('all_scopes', True) add_import_symbols = symbols_settings.get('include_import_symbols', True) @@ -23,6 +25,7 @@ symbols = [] exclude = set({}) redefinitions = {} + while definitions != []: d = definitions.pop(0) @@ -33,27 +36,47 @@ if ' import ' in code or 'import ' in code: continue - # Skip comparing module names. + # Skip imported symbols comparing module names. sym_full_name = d.full_name - module_name = document.dot_path + document_dot_path = document.dot_path if sym_full_name is not None: - # module_name returns where the symbol is imported, whereas - # full_name says where it really comes from. So if the parent - # modules in full_name are not in module_name, it means the - # symbol was not defined there. - # Note: The last element of sym_full_name is the symbol itself, - # so we don't need to use it below. + # We assume a symbol is imported from another module to start + # with. imported_symbol = True - for mod in sym_full_name.split('.')[:-1]: - if mod in module_name: - imported_symbol = False + + # The last element of sym_full_name is the symbol itself, so + # we need to discard it to do module comparisons below. + if '.' in sym_full_name: + sym_module_name = sym_full_name.rpartition('.')[0] + + # This is necessary to display symbols in init files (the checks + # below fail without it). + if document_dot_path.endswith('__init__'): + document_dot_path = document_dot_path.rpartition('.')[0] + + # document_dot_path is the module where the symbol is imported, + # whereas sym_module_name is the one where it was declared. + if sym_module_name.startswith(document_dot_path): + # If sym_module_name starts with the same string as document_dot_path, + # we can safely assume it was declared in the document. + imported_symbol = False + elif sym_module_name.split('.')[0] in document_dot_path.split('.'): + # If the first module in sym_module_name is one of the modules in + # document_dot_path, we need to check if sym_module_name starts + # with the modules in document_dot_path. + document_mods = document_dot_path.split('.') + for i in range(1, len(document_mods) + 1): + submod = '.'.join(document_mods[-i:]) + if sym_module_name.startswith(submod): + imported_symbol = False + break # When there's no __init__.py next to a file or in one of its - # parents, the check above fails. However, Jedi has a nice way + # parents, the checks above fail. However, Jedi has a nice way # to tell if the symbol was declared in the same file: if # full_name starts by __main__. if imported_symbol: - if not sym_full_name.startswith('__main__'): + if not sym_module_name.startswith('__main__'): continue try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/python_lsp_server.egg-info/PKG-INFO new/python-lsp-server-1.2.2/python_lsp_server.egg-info/PKG-INFO --- old/python-lsp-server-1.2.1/python_lsp_server.egg-info/PKG-INFO 2021-08-04 19:11:44.000000000 +0200 +++ new/python-lsp-server-1.2.2/python_lsp_server.egg-info/PKG-INFO 2021-09-02 00:43:25.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: python-lsp-server -Version: 1.2.1 +Version: 1.2.2 Summary: Python Language Server for the Language Server Protocol Home-page: https://github.com/python-lsp/python-lsp-server Author: Python Language Server Contributors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/python_lsp_server.egg-info/requires.txt new/python-lsp-server-1.2.2/python_lsp_server.egg-info/requires.txt --- old/python-lsp-server-1.2.1/python_lsp_server.egg-info/requires.txt 2021-08-04 19:11:44.000000000 +0200 +++ new/python-lsp-server-1.2.2/python_lsp_server.egg-info/requires.txt 2021-09-02 00:43:25.000000000 +0200 @@ -11,7 +11,7 @@ pycodestyle>=2.7.0 pydocstyle>=2.0.0 pyflakes<2.4.0,>=2.3.0 -pylint>=2.5.0 +pylint<2.10.0,>=2.5.0 rope>=0.10.5 yapf @@ -34,13 +34,13 @@ pyflakes<2.4.0,>=2.3.0 [pylint] -pylint>=2.5.0 +pylint<2.10.0,>=2.5.0 [rope] rope>0.10.5 [test] -pylint>=2.5.0 +pylint<2.10.0,>=2.5.0 pytest pytest-cov coverage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/setup.py new/python-lsp-server-1.2.2/setup.py --- old/python-lsp-server-1.2.1/setup.py 2021-04-22 23:56:35.000000000 +0200 +++ new/python-lsp-server-1.2.2/setup.py 2021-09-01 18:07:04.000000000 +0200 @@ -52,7 +52,7 @@ 'pycodestyle>=2.7.0', 'pydocstyle>=2.0.0', 'pyflakes>=2.3.0,<2.4.0', - 'pylint>=2.5.0', + 'pylint>=2.5.0,<2.10.0', 'rope>=0.10.5', 'yapf', ], @@ -62,11 +62,11 @@ 'pycodestyle': ['pycodestyle>=2.7.0'], 'pydocstyle': ['pydocstyle>=2.0.0'], 'pyflakes': ['pyflakes>=2.3.0,<2.4.0'], - 'pylint': ['pylint>=2.5.0'], + 'pylint': ['pylint>=2.5.0,<2.10.0'], 'rope': ['rope>0.10.5'], 'yapf': ['yapf'], - 'test': ['pylint>=2.5.0', 'pytest', 'pytest-cov', 'coverage', 'numpy', - 'pandas', 'matplotlib', 'pyqt5', 'flaky'], + 'test': ['pylint>=2.5.0,<2.10.0', 'pytest', 'pytest-cov', 'coverage', + 'numpy', 'pandas', 'matplotlib', 'pyqt5', 'flaky'], }, entry_points={ 'console_scripts': [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-lsp-server-1.2.1/test/test_language_server.py new/python-lsp-server-1.2.2/test/test_language_server.py --- old/python-lsp-server-1.2.1/test/test_language_server.py 2021-08-04 19:08:14.000000000 +0200 +++ new/python-lsp-server-1.2.2/test/test_language_server.py 2021-08-21 09:25:35.000000000 +0200 @@ -14,8 +14,7 @@ from pylsp.python_lsp import start_io_lang_server, PythonLSPServer CALL_TIMEOUT = 10 -PY2 = sys.version_info[0] == 2 -PY3 = sys.version_info[0] == 3 +RUNNING_IN_CI = bool(os.environ.get('CI')) def start_client(client): @@ -87,8 +86,7 @@ @flaky(max_runs=10, min_passes=1) -@pytest.mark.skipif(os.name == 'nt' or (sys.platform.startswith('linux') and PY3), - reason='Skipped on win and fails on linux >=3.6') +@pytest.mark.skipif(not sys.platform.startswith('Linux'), reason='Skipped on win and flaky on mac') def test_exit_with_parent_process_died(client_exited_server): # pylint: disable=redefined-outer-name # language server should have already exited before responding lsp_server, mock_process = client_exited_server.client, client_exited_server.process @@ -104,8 +102,8 @@ assert not client_exited_server.client_thread.is_alive() -@pytest.mark.skipif(sys.platform.startswith('linux') and PY3, - reason='Fails on linux and py3') +@flaky(max_runs=10, min_passes=1) +@pytest.mark.skipif(sys.platform.startswith('linux'), reason='Fails on linux') def test_not_exit_without_check_parent_process_flag(client_server): # pylint: disable=redefined-outer-name response = client_server._endpoint.request('initialize', { 'processId': 1234, @@ -115,7 +113,8 @@ assert 'capabilities' in response -@pytest.mark.skipif(bool(os.environ.get('CI')), reason='This test is hanging on CI') +@flaky(max_runs=10, min_passes=1) +@pytest.mark.skipif(RUNNING_IN_CI, reason='This test is hanging on CI') def test_missing_message(client_server): # pylint: disable=redefined-outer-name with pytest.raises(JsonRpcMethodNotFound): client_server._endpoint.request('unknown_method').result(timeout=CALL_TIMEOUT)