all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
@ 2023-04-06  9:55 Michael Albinus
  2023-04-06 10:54 ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-06  9:55 UTC (permalink / raw)
  To: 62694; +Cc: João Távora

[-- Attachment #1: Type: text/plain, Size: 730 bytes --]


Hi,

I have simulated the eglot-tests from EMBA in my local
environment. Instead of using Debian bullseye (stable), I have taken
Debian sid (unstable).

Additionally, I have installed the respective Debian sid packages:

--8<---------------cut here---------------start------------->8---
# apt list clangd python3-pylsp python3-autopep8 python3-yapf
Listing... Done
clangd/now 1:14.0-55.6 amd64 [installed,local]
python3-autopep8/now 2.0.1-1 all [installed,local]
python3-pylsp/now 1.7.1-1 all [installed,local]
python3-yapf/now 0.32.0-1 all [installed,local]
--8<---------------cut here---------------end--------------->8---

However, eglot-tests still fail for pylsp, see attached eglot-tests.log
file.

Best regards, Michael.


[-- Attachment #2: eglot-tests.log --]
[-- Type: text/plain, Size: 201157 bytes --]

Loading project...
Loading eldoc...
Loading seq...
Loading flymake...
Loading xref...
Loading jsonrpc...
Loading external-completion...
Running 50 tests (2023-04-06 09:46:43+0000, selector `(not (or (tag :unstable) (tag :nativecomp)))')
[eglot-tests] [eglot-test-auto-detect-running-server]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-auto-detect-running-server]: OK
[eglot] Asking EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (cena.c coiso.c merdix.c), wiping /tmp/eglot--fixture5jKcOH, restoring nil
   passed   1/50  eglot-test-auto-detect-running-server (0.179060 sec)
[eglot-tests] [eglot-test-auto-reconnect]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `project'.
[jsonrpc] Server exited with status 9
[eglot] (warning) Reconnecting after unexpected server exit.
Warning (eglot): Reconnecting after unexpected server exit.
[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `project'.
[eglot] Reconnected!
[jsonrpc] Server exited with status 9
[eglot] (warning) Not auto-reconnecting, last one didn't last long.
Warning (eglot): Not auto-reconnecting, last one didn't last long.
[eglot-tests] [eglot-test-auto-reconnect]: OK
[eglot-tests] Killing (thingy.c), wiping /tmp/eglot--fixtureIU7wUj, restoring nil
   passed   2/50  eglot-test-auto-reconnect (1.875701 sec)
[eglot-tests] [eglot-test-auto-shutdown]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `project'.
[eglot] Asking EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-auto-shutdown]: OK
[eglot-tests] Killing nil, wiping /tmp/eglot--fixturevJw3oP, restoring nil
   passed   3/50  eglot-test-auto-shutdown (0.157424 sec)
[eglot-tests] [eglot-test-basic-completions]: test start
[eglot] Connected! Server `pylsp' now managing `(python-mode python-ts-mode)' buffers in project `project'.
No match

[eglot-tests] [eglot-test-basic-completions]: FAILED
[eglot] Asking EGLOT (project/(python-mode python-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) stderr*':

Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(python-mode python-ts-mode)) events*':
[internal] Thu Apr  6 09:46:45 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureXZJGR5/project/" :rootUri "file:///tmp/eglot--fixtureXZJGR5/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureXZJGR5/project" :name "/tmp/eglot--fixtureXZJGR5/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:46 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:47 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] Killing (something.py), wiping /tmp/eglot--fixtureXZJGR5, restoring nil
Test eglot-test-basic-completions backtrace:
  signal(ert-test-failed (((should (looking-back "sys.exit")) :form (l
  ert-fail(((should (looking-back "sys.exit")) :form (looking-back "sy
  (if (unwind-protect (setq value-160 (apply fn-158 args-159)) (setq f
  (let (form-description-162) (if (unwind-protect (setq value-160 (app
  (let ((value-160 'ert-form-evaluation-aborted-161)) (let (form-descr
  (let* ((fn-158 #'looking-back) (args-159 (condition-case err (let ((
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  funcall((closure (typescript-mode-abbrev-table typescript-mode-synta
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.py" . "import sys\n
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-basic-completions :documen
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-basic-completions condition:
    (ert-test-failed
     ((should
       (looking-back "sys.exit"))
      :form
      (looking-back "sys.exit")
      :value nil))
   FAILED   4/50  eglot-test-basic-completions (2.538679 sec) at lisp/progmodes/eglot-tests.el:554
[eglot-tests] [eglot-test-basic-diagnostics]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `diag-project'.
[eglot-tests] waiting for `(string= method textDocument/publishDiagnostics)'
\a.
[eglot-tests] detected: textDocument/publishDiagnostics

[eglot-tests] [eglot-test-basic-diagnostics]: OK
[eglot] Asking EGLOT (diag-project/(c-mode c-ts-mode c++-mode c++-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (main.c), wiping /tmp/eglot--fixtureoZti5Y, restoring nil
   passed   5/50  eglot-test-basic-diagnostics (0.355960 sec)
[eglot-tests] [eglot-test-basic-xref]: test start
[eglot] Connected! Server `pylsp' now managing `(python-mode python-ts-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-basic-xref]: FAILED
[eglot] Asking EGLOT (project/(python-mode python-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) stderr*':

Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(python-mode python-ts-mode)) events*':
[internal] Thu Apr  6 09:46:45 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureXZJGR5/project/" :rootUri "file:///tmp/eglot--fixtureXZJGR5/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureXZJGR5/project" :name "/tmp/eglot--fixtureXZJGR5/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:46 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:47 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:48 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixturevnbTgn/project/" :rootUri "file:///tmp/eglot--fixturevnbTgn/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevnbTgn/project" :name "/tmp/eglot--fixturevnbTgn/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py" :version 0 :languageId "python" :text "def foo(): pass\ndef bar(): foo()")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/definition" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py")
	   :position
	   (:line 1 :character 12)))
[server-reply] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :result
	  [])
[client-request] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:48 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] Killing (something.py), wiping /tmp/eglot--fixturevnbTgn, restoring nil
Test eglot-test-basic-xref backtrace:
  signal(user-error ("No definitions found for: LSP identifier at poin
  user-error("No %s found for: %s" "definitions" "LSP identifier at po
  xref--not-found-error(definitions "LSP identifier at point")
  #f(compiled-function () #<bytecode -0x155473e51ded9825>)()
  xref-show-definitions-buffer(#f(compiled-function () #<bytecode -0x1
  xref--show-defs(#f(compiled-function () #<bytecode -0x155473e51ded98
  xref--find-definitions("LSP identifier at point" nil)
  xref-find-definitions("LSP identifier at point")
  funcall-interactively(xref-find-definitions "LSP identifier at point
  call-interactively(xref-find-definitions)
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  funcall((closure (typescript-mode-abbrev-table typescript-mode-synta
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.py" . "def foo(): p
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-basic-xref :documentation
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-basic-xref condition:
    (user-error "No definitions found for: LSP identifier at point")
   FAILED   6/50  eglot-test-basic-xref (0.604047 sec) at lisp/progmodes/eglot-tests.el:583
   passed   7/50  eglot-test-capabilities (0.000121 sec)
   passed   8/50  eglot-test-dcase (0.000086 sec)
   passed   9/50  eglot-test-dcase-issue-452 (0.000061 sec)
[eglot-tests] [eglot-test-diagnostic-tags-unnecessary-code]: test start
[eglot] Connected! Server `clangd' now managing `(c++-mode)' buffers in project `diag-project'.
[eglot-tests] waiting for `(string= method textDocument/publishDiagnostics)'
.
[eglot-tests] detected: textDocument/publishDiagnostics

[eglot-tests] [eglot-test-diagnostic-tags-unnecessary-code]: OK
[eglot] Asking EGLOT (diag-project/(c++-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (main.cpp), wiping /tmp/eglot--fixturem37mnm, restoring nil
   passed  10/50  eglot-test-diagnostic-tags-unnecessary-code (0.401418 sec)
  skipped  11/50  eglot-test-eclipse-connect (0.000310 sec)
[eglot-tests] [eglot-test-eldoc-after-completions]: test start
[eglot] Connected! Server `pylsp' now managing `(python-mode python-ts-mode)' buffers in project `project'.
No match

[eglot-tests] [eglot-test-eldoc-after-completions]: FAILED
[eglot] Asking EGLOT (project/(python-mode python-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) stderr*':

Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(python-mode python-ts-mode)) events*':
[internal] Thu Apr  6 09:46:45 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureXZJGR5/project/" :rootUri "file:///tmp/eglot--fixtureXZJGR5/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureXZJGR5/project" :name "/tmp/eglot--fixtureXZJGR5/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:46 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:47 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:48 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixturevnbTgn/project/" :rootUri "file:///tmp/eglot--fixturevnbTgn/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevnbTgn/project" :name "/tmp/eglot--fixturevnbTgn/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py" :version 0 :languageId "python" :text "def foo(): pass\ndef bar(): foo()")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/definition" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py")
	   :position
	   (:line 1 :character 12)))
[server-reply] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :result
	  [])
[client-request] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:48 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:49 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureEcuBp7/project/" :rootUri "file:///tmp/eglot--fixtureEcuBp7/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureEcuBp7/project" :name "/tmp/eglot--fixtureEcuBp7/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:50 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:51 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] Killing (something.py), wiping /tmp/eglot--fixtureEcuBp7, restoring nil
Test eglot-test-eldoc-after-completions backtrace:
  signal(ert-test-failed (((should (looking-back "sys.exit")) :form (l
  ert-fail(((should (looking-back "sys.exit")) :form (looking-back "sy
  (if (unwind-protect (setq value-244 (apply fn-242 args-243)) (setq f
  (let (form-description-246) (if (unwind-protect (setq value-244 (app
  (let ((value-244 'ert-form-evaluation-aborted-245)) (let (form-descr
  (let* ((fn-242 #'looking-back) (args-243 (condition-case err (let ((
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.py" . "import sys\n
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-eldoc-after-completions :d
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-eldoc-after-completions condition:
    (ert-test-failed
     ((should
       (looking-back "sys.exit"))
      :form
      (looking-back "sys.exit")
      :value nil))
   FAILED  12/50  eglot-test-eldoc-after-completions (2.685387 sec) at lisp/progmodes/eglot-tests.el:648
[eglot-tests] [eglot-test-ensure]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-ensure]: OK
[eglot] Asking EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (foo.c bar.c), wiping /tmp/eglot--fixtureX4mOQG, restoring (c-mode-hook)
   passed  13/50  eglot-test-ensure (0.262838 sec)
   passed  14/50  eglot-test-glob-test (0.061973 sec)
  skipped  15/50  eglot-test-javascript-basic (0.000856 sec)
  skipped  16/50  eglot-test-json-basic (0.000273 sec)
[eglot-tests] [eglot-test-lsp-abiding-column]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode)' buffers in project `project'.
[eglot-tests] waiting for `(should (equal 71 (cadddr (cadadr (aref (cadddr params) 0)))))'
[eglot-tests] detected: textDocument/didChange
[eglot-tests] [eglot-test-lsp-abiding-column]: OK
[eglot] Asking EGLOT (project/(c-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (foo.c), wiping /tmp/eglot--fixture4GEyGl, restoring nil
   passed  17/50  eglot-test-lsp-abiding-column (0.180500 sec)
[eglot-tests] [eglot-test-multiline-eldoc]: test start
[eglot] Connected! Server `pylsp' now managing `(python-mode python-ts-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-multiline-eldoc]: FAILED
[eglot] Asking EGLOT (project/(python-mode python-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) stderr*':

Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(python-mode python-ts-mode)) events*':
[internal] Thu Apr  6 09:46:45 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureXZJGR5/project/" :rootUri "file:///tmp/eglot--fixtureXZJGR5/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureXZJGR5/project" :name "/tmp/eglot--fixtureXZJGR5/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:46 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:47 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:48 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixturevnbTgn/project/" :rootUri "file:///tmp/eglot--fixturevnbTgn/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevnbTgn/project" :name "/tmp/eglot--fixturevnbTgn/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py" :version 0 :languageId "python" :text "def foo(): pass\ndef bar(): foo()")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/definition" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py")
	   :position
	   (:line 1 :character 12)))
[server-reply] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :result
	  [])
[client-request] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:48 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:49 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureEcuBp7/project/" :rootUri "file:///tmp/eglot--fixtureEcuBp7/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureEcuBp7/project" :name "/tmp/eglot--fixtureEcuBp7/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:50 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:51 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:52 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:52 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureGz4TG4/project/" :rootUri "file:///tmp/eglot--fixtureGz4TG4/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGz4TG4/project" :name "/tmp/eglot--fixtureGz4TG4/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :version 0 :languageId "python" :text "from datetime import datetime")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/signatureHelp" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/hover" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :method "textDocument/documentHighlight" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[server-reply] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[server-reply] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :result
	  (:contents ""))
[server-reply] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :result nil)
[server-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :diagnostics
		[]))
[client-request] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :method "shutdown" :params nil)
[server-reply] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :result nil)
[client-notification] Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:58 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] Killing (hover-first.py), wiping /tmp/eglot--fixtureGz4TG4, restoring nil
Test eglot-test-multiline-eldoc backtrace:
  signal(error ("eglot--tests-force-full-eldoc didn't deliver"))
  error("eglot--tests-force-full-eldoc didn't deliver")
  (progn (error "eglot--tests-force-full-eldoc didn't deliver") nil)
  (if --cl-var-- (progn (error "eglot--tests-force-full-eldoc didn't d
  (let* ((--cl-var-- 10) (retval nil) (--cl-var-- t) (--cl-var-- t) --
  eglot--tests-force-full-eldoc()
  (let* ((eldoc-echo-area-use-multiline-p t) (captured-message (eglot-
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("hover-first.py" . "from datet
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-multiline-eldoc :documenta
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-multiline-eldoc condition:
    (error "eglot--tests-force-full-eldoc didn't deliver")
   FAILED  18/50  eglot-test-multiline-eldoc (5.822260 sec) at lisp/progmodes/eglot-tests.el:661
[eglot-tests] [eglot-test-non-unique-completions]: test start
[eglot] Connected! Server `pylsp' now managing `(python-mode python-ts-mode)' buffers in project `project'.
No match

[eglot-tests] [eglot-test-non-unique-completions]: FAILED
[eglot] Asking EGLOT (project/(python-mode python-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) stderr*':

Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(python-mode python-ts-mode)) events*':
[internal] Thu Apr  6 09:46:45 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureXZJGR5/project/" :rootUri "file:///tmp/eglot--fixtureXZJGR5/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureXZJGR5/project" :name "/tmp/eglot--fixtureXZJGR5/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:46 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:47 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:48 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixturevnbTgn/project/" :rootUri "file:///tmp/eglot--fixturevnbTgn/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevnbTgn/project" :name "/tmp/eglot--fixturevnbTgn/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py" :version 0 :languageId "python" :text "def foo(): pass\ndef bar(): foo()")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/definition" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py")
	   :position
	   (:line 1 :character 12)))
[server-reply] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :result
	  [])
[client-request] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:48 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:49 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureEcuBp7/project/" :rootUri "file:///tmp/eglot--fixtureEcuBp7/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureEcuBp7/project" :name "/tmp/eglot--fixtureEcuBp7/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:50 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:51 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:52 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:52 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureGz4TG4/project/" :rootUri "file:///tmp/eglot--fixtureGz4TG4/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGz4TG4/project" :name "/tmp/eglot--fixtureGz4TG4/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :version 0 :languageId "python" :text "from datetime import datetime")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/signatureHelp" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/hover" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :method "textDocument/documentHighlight" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[server-reply] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[server-reply] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :result
	  (:contents ""))
[server-reply] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :result nil)
[server-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :diagnostics
		[]))
[client-request] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :method "shutdown" :params nil)
[server-reply] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :result nil)
[client-notification] Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:58 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:58 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixture3KISEO/project/" :rootUri "file:///tmp/eglot--fixture3KISEO/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixture3KISEO/project" :name "/tmp/eglot--fixture3KISEO/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py" :version 0 :languageId "python" :text "foo=1\nfoobar=2\nfoo")))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py")
	   :position
	   (:line 2 :character 3)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:47:01 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] Killing (something.py), wiping /tmp/eglot--fixture3KISEO, restoring nil
Test eglot-test-non-unique-completions backtrace:
  signal(ert-test-failed (((should (looking-at "Complete, but not uniq
  ert-fail(((should (looking-at "Complete, but not unique")) :form (lo
  (if (unwind-protect (setq value-175 (apply fn-173 args-174)) (setq f
  (let (form-description-177) (if (unwind-protect (setq value-175 (app
  (let ((value-175 'ert-form-evaluation-aborted-176)) (let (form-descr
  (let* ((fn-173 #'looking-at) (args-174 (condition-case err (let ((si
  (save-excursion (goto-char (point-max)) (forward-line -1) (let* ((fn
  (save-current-buffer (set-buffer (messages-buffer)) (save-excursion
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  funcall((closure (typescript-mode-abbrev-table typescript-mode-synta
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.py" . "foo=1\nfooba
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-non-unique-completions :do
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-non-unique-completions condition:
    (ert-test-failed
     ((should
       (looking-at "Complete, but not unique"))
      :form
      (looking-at "Complete, but not unique")
      :value nil))
   FAILED  19/50  eglot-test-non-unique-completions (2.890882 sec) at lisp/progmodes/eglot-tests.el:566
  skipped  20/50  eglot-test-path-to-uri-windows (0.000118 sec)
  skipped  21/50  eglot-test-project-wide-diagnostics-rust-analyzer (0.000543 sec)
  skipped  22/50  eglot-test-project-wide-diagnostics-typescript (0.000190 sec)
[eglot-tests] [eglot-test-python-autopep-formatting]: test start
[eglot] Connected! Server `pylsp' now managing `(python-mode python-ts-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-python-autopep-formatting]: FAILED
[eglot] Asking EGLOT (project/(python-mode python-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) stderr*':

Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(python-mode python-ts-mode)) events*':
[internal] Thu Apr  6 09:46:45 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureXZJGR5/project/" :rootUri "file:///tmp/eglot--fixtureXZJGR5/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureXZJGR5/project" :name "/tmp/eglot--fixtureXZJGR5/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:46 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:47 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:48 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixturevnbTgn/project/" :rootUri "file:///tmp/eglot--fixturevnbTgn/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevnbTgn/project" :name "/tmp/eglot--fixturevnbTgn/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py" :version 0 :languageId "python" :text "def foo(): pass\ndef bar(): foo()")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/definition" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py")
	   :position
	   (:line 1 :character 12)))
[server-reply] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :result
	  [])
[client-request] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:48 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:49 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureEcuBp7/project/" :rootUri "file:///tmp/eglot--fixtureEcuBp7/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureEcuBp7/project" :name "/tmp/eglot--fixtureEcuBp7/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:50 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:51 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:52 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:52 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureGz4TG4/project/" :rootUri "file:///tmp/eglot--fixtureGz4TG4/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGz4TG4/project" :name "/tmp/eglot--fixtureGz4TG4/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :version 0 :languageId "python" :text "from datetime import datetime")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/signatureHelp" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/hover" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :method "textDocument/documentHighlight" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[server-reply] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[server-reply] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :result
	  (:contents ""))
[server-reply] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :result nil)
[server-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :diagnostics
		[]))
[client-request] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :method "shutdown" :params nil)
[server-reply] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :result nil)
[client-notification] Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:58 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:58 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixture3KISEO/project/" :rootUri "file:///tmp/eglot--fixture3KISEO/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixture3KISEO/project" :name "/tmp/eglot--fixture3KISEO/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py" :version 0 :languageId "python" :text "foo=1\nfoobar=2\nfoo")))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py")
	   :position
	   (:line 2 :character 3)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:47:01 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:47:01 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixture4AVzNo/project/" :rootUri "file:///tmp/eglot--fixture4AVzNo/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixture4AVzNo/project" :name "/tmp/eglot--fixture4AVzNo/project/")]))
[server-reply] (id:1) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture4AVzNo/project/something.py" :version 0 :languageId "python" :text "def a():pass\n\ndef b():pass")))
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/rangeFormatting" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture4AVzNo/project/something.py")
	   :options
	   (:tabSize 8 :insertSpaces t :insertFinalNewline t :trimFinalNewlines t)
	   :range
	   (:start
	    (:line 2 :character 0)
	    :end
	    (:line 2 :character 12))))
[server-reply] (id:2) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[client-request] (id:3) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:47:02 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] Killing (something.py), wiping /tmp/eglot--fixture4AVzNo, restoring nil
Test eglot-test-python-autopep-formatting backtrace:
  signal(ert-test-failed (((should (or (string= (buffer-string) "def a
  ert-fail(((should (or (string= (buffer-string) "def a():pass\n\n\nde
  (if (unwind-protect (setq value-304 (or (string= (buffer-string) "de
  (let (form-description-305) (if (unwind-protect (setq value-304 (or
  (let ((value-304 (gensym "ert-form-evaluation-aborted-"))) (let (for
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.py" . "def a():pass
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-python-autopep-formatting
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-python-autopep-formatting condition:
    (ert-test-failed
     ((should
       (or
	(string= ... "def a():pass\n\n\ndef b(): pass\n")
	(string= ... "def a():pass\n\ndef b(): pass")))
      :form
      (or
       (string=
	(buffer-string)
	"def a():pass\n\n\ndef b(): pass\n")
       (string=
	(buffer-string)
	"def a():pass\n\ndef b(): pass"))
      :value nil))
   FAILED  23/50  eglot-test-python-autopep-formatting (0.971986 sec) at lisp/progmodes/eglot-tests.el:691
  skipped  24/50  eglot-test-python-yapf-formatting (0.000201 sec)
[eglot-tests] [eglot-test-rename-a-symbol]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `rename-project'.
[eglot] applying 2 edits to `main.c'...
[eglot] applying 2 edits to `main.c'...done
[eglot] Edit successful!
[eglot-tests] [eglot-test-rename-a-symbol]: OK
[eglot] Asking EGLOT (rename-project/(c-mode c-ts-mode c++-mode c++-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (main.c), wiping /tmp/eglot--fixtureGf4xtp, restoring nil
   passed  25/50  eglot-test-rename-a-symbol (0.182435 sec)
  skipped  26/50  eglot-test-rust-analyzer-hover-after-edit (0.000279 sec)
  skipped  27/50  eglot-test-rust-analyzer-watches-files (0.000387 sec)
  skipped  28/50  eglot-test-rust-on-type-formatting (0.000243 sec)
[eglot-tests] [eglot-test-same-server-multi-mode]: test start
[eglot] Connected! Server `clangd' now managing `(c++-mode c-mode c-ts-mode c++-ts-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-same-server-multi-mode]: OK
[eglot] Asking EGLOT (project/(c++-mode c-mode c-ts-mode c++-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (foo.cpp foolib.h foolib.c), wiping /tmp/eglot--fixture1EE09G, restoring nil
   passed  29/50  eglot-test-same-server-multi-mode (0.173424 sec)
   passed  30/50  eglot-test-server-programs-class-name-and-contact-spec (0.002120 sec)
   passed  31/50  eglot-test-server-programs-class-name-and-plist (0.000314 sec)
   passed  32/50  eglot-test-server-programs-executable-multiple-major-modes (0.000312 sec)
   passed  33/50  eglot-test-server-programs-executable-with-arg (0.000323 sec)
   passed  34/50  eglot-test-server-programs-executable-with-args-and-autoport (0.000285 sec)
   passed  35/50  eglot-test-server-programs-function (0.000315 sec)
   passed  36/50  eglot-test-server-programs-guess-lang (0.000564 sec)
   passed  37/50  eglot-test-server-programs-host-and-port (0.000339 sec)
   passed  38/50  eglot-test-server-programs-host-and-port-and-tcp-args (0.000306 sec)
   passed  39/50  eglot-test-server-programs-simple-executable (0.000241 sec)
   passed  40/50  eglot-test-server-programs-simple-missing-executable (0.000250 sec)
[eglot-tests] [eglot-test-single-line-eldoc]: test start
[eglot] Connected! Server `pylsp' now managing `(python-mode python-ts-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-single-line-eldoc]: FAILED
[eglot] Asking EGLOT (project/(python-mode python-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(python-mode python-ts-mode)) stderr*':

Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(python-mode python-ts-mode)) events*':
[internal] Thu Apr  6 09:46:45 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureXZJGR5/project/" :rootUri "file:///tmp/eglot--fixtureXZJGR5/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureXZJGR5/project" :name "/tmp/eglot--fixtureXZJGR5/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:45 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:46 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureXZJGR5/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:47 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:47 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:48 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixturevnbTgn/project/" :rootUri "file:///tmp/eglot--fixturevnbTgn/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevnbTgn/project" :name "/tmp/eglot--fixturevnbTgn/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py" :version 0 :languageId "python" :text "def foo(): pass\ndef bar(): foo()")))
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/definition" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturevnbTgn/project/something.py")
	   :position
	   (:line 1 :character 12)))
[server-reply] (id:2) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 2 :result
	  [])
[client-request] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:48 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:48 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:49 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureEcuBp7/project/" :rootUri "file:///tmp/eglot--fixtureEcuBp7/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureEcuBp7/project" :name "/tmp/eglot--fixtureEcuBp7/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :version 0 :languageId "python" :text "import sys\nsys.exi")))
[client-notification] Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:49 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:50 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureEcuBp7/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:46:51 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:51 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:52 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:52 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureGz4TG4/project/" :rootUri "file:///tmp/eglot--fixtureGz4TG4/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGz4TG4/project" :name "/tmp/eglot--fixtureGz4TG4/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :version 0 :languageId "python" :text "from datetime import datetime")))
[client-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/signatureHelp" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/hover" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :method "textDocument/documentHighlight" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[server-reply] (id:2) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[server-reply] (id:3) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 3 :result
	  (:contents ""))
[server-reply] (id:4) Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :id 4 :result nil)
[server-notification] Thu Apr  6 09:46:53 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureGz4TG4/project/hover-first.py" :diagnostics
		[]))
[client-request] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :method "shutdown" :params nil)
[server-reply] (id:5) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 5 :result nil)
[client-notification] Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:46:58 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:46:58 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:46:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixture3KISEO/project/" :rootUri "file:///tmp/eglot--fixture3KISEO/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixture3KISEO/project" :name "/tmp/eglot--fixture3KISEO/project/")]))
[server-reply] (id:1) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py" :version 0 :languageId "python" :text "foo=1\nfoobar=2\nfoo")))
[client-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py")
	   :position
	   (:line 2 :character 3)
	   :context
	   (:triggerKind 1)))
[server-reply] (id:2) Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Thu Apr  6 09:46:59 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixture3KISEO/project/something.py" :diagnostics
		[]))
[client-request] (id:3) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:47:01 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:47:01 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:47:01 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixture4AVzNo/project/" :rootUri "file:///tmp/eglot--fixture4AVzNo/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixture4AVzNo/project" :name "/tmp/eglot--fixture4AVzNo/project/")]))
[server-reply] (id:1) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture4AVzNo/project/something.py" :version 0 :languageId "python" :text "def a():pass\n\ndef b():pass")))
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/rangeFormatting" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixture4AVzNo/project/something.py")
	   :options
	   (:tabSize 8 :insertSpaces t :insertFinalNewline t :trimFinalNewlines t)
	   :range
	   (:start
	    (:line 2 :character 0)
	    :end
	    (:line 2 :character 12))))
[server-reply] (id:2) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[client-request] (id:3) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 3 :method "shutdown" :params nil)
[server-reply] (id:3) Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[client-notification] Thu Apr  6 09:47:02 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:47:02 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[internal] Thu Apr  6 09:47:03 2023:
(:message "Running language server: /usr/bin/pylsp")
[client-request] (id:1) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 165 :clientInfo
		      (:name "Eglot")
		      :rootPath "/tmp/eglot--fixtureadJAIT/project/" :rootUri "file:///tmp/eglot--fixtureadJAIT/project" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																			      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :documentationFormat
					       ["plaintext"]
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
					     (:valueSet
					      [1 2])))
		       :window
		       (:workDoneProgress t)
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureadJAIT/project" :name "/tmp/eglot--fixtureadJAIT/project/")]))
[server-reply] (id:1) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
[client-notification] Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[client-notification] Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureadJAIT/project/hover-first.py" :version 0 :languageId "python" :text "from datetime import datetime")))
[client-notification] Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
				   ())))
[client-request] (id:2) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/signatureHelp" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureadJAIT/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:3) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/hover" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureadJAIT/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[client-request] (id:4) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 4 :method "textDocument/documentHighlight" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixtureadJAIT/project/hover-first.py")
	   :position
	   (:line 0 :character 29)))
[server-reply] (id:2) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[server-reply] (id:3) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 3 :result
	  (:contents ""))
[server-reply] (id:4) Thu Apr  6 09:47:03 2023:
(:jsonrpc "2.0" :id 4 :result nil)
[server-notification] Thu Apr  6 09:47:04 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixtureadJAIT/project/hover-first.py" :diagnostics
		[]))
[client-request] (id:5) Thu Apr  6 09:47:08 2023:
(:jsonrpc "2.0" :id 5 :method "shutdown" :params nil)
[server-reply] (id:5) Thu Apr  6 09:47:08 2023:
(:jsonrpc "2.0" :id 5 :result nil)
[client-notification] Thu Apr  6 09:47:08 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Thu Apr  6 09:47:08 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(python-mode python-ts-mode)) stderr finished
[eglot-tests] Killing (hover-first.py), wiping /tmp/eglot--fixtureadJAIT, restoring nil
Test eglot-test-single-line-eldoc backtrace:
  signal(error ("eglot--tests-force-full-eldoc didn't deliver"))
  error("eglot--tests-force-full-eldoc didn't deliver")
  (progn (error "eglot--tests-force-full-eldoc didn't deliver") nil)
  (if --cl-var-- (progn (error "eglot--tests-force-full-eldoc didn't d
  (let* ((--cl-var-- 10) (retval nil) (--cl-var-- t) (--cl-var-- t) --
  eglot--tests-force-full-eldoc()
  (let* ((eldoc-echo-area-use-multiline-p nil) (captured-message (eglo
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("hover-first.py" . "from datet
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-single-line-eldoc :documen
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-single-line-eldoc condition:
    (error "eglot--tests-force-full-eldoc didn't deliver")
   FAILED  41/50  eglot-test-single-line-eldoc (5.943379 sec) at lisp/progmodes/eglot-tests.el:676
[eglot-tests] [eglot-test-slow-async-connection]: test start
[eglot] Waiting in background for server `EGLOT (project/(c-mode))'
[eglot] Connected! Server `clangd' now managing `(c-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-slow-async-connection]: OK
[eglot] Asking EGLOT (project/(c-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixturewOlK9L, restoring nil
   passed  42/50  eglot-test-slow-async-connection (2.216559 sec)
[eglot-tests] [eglot-test-slow-sync-connection-intime]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-slow-sync-connection-intime]: OK
[eglot] Asking EGLOT (project/(c-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixtureaiafJY, restoring nil
   passed  43/50  eglot-test-slow-sync-connection-intime (1.153178 sec)
[eglot-tests] [eglot-test-slow-sync-connection-wait]: test start
[eglot] Connected! Server `clangd' now managing `(c-mode)' buffers in project `project'.
[eglot-tests] [eglot-test-slow-sync-connection-wait]: OK
[eglot] Asking EGLOT (project/(c-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixtureDKpyhV, restoring nil
   passed  44/50  eglot-test-slow-sync-connection-wait (1.156552 sec)
[eglot-tests] [eglot-test-slow-sync-timeout]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-slow-sync-timeout]: OK
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixtureMKYBK5, restoring nil
   passed  45/50  eglot-test-slow-sync-timeout (1.116064 sec)
  skipped  46/50  eglot-test-snippet-completions (0.000176 sec)
  skipped  47/50  eglot-test-snippet-completions-with-company (0.000141 sec)
   passed  48/50  eglot-test-strict-interfaces (0.000237 sec)
[eglot-tests] [eglot-test-tramp-test]: test start


[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode c++-ts-mode)' buffers in project `project'.




[eglot-tests] [eglot-test-tramp-test]: OK
[eglot] Asking EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (cena.c coiso.c merdix.c), wiping /mock:1aa68435eb4d:/tmp/eglot--fixtureHoTOLs, restoring nil
   passed  49/50  eglot-test-tramp-test (0.858779 sec)
[eglot-tests] [eglot-test-tramp-test-2]: test start


[eglot] Connected! Server `clangd' now managing `(c-mode)' buffers in project `project'.
[eglot-tests] waiting for `(should (equal 71 (cadddr (cadadr (aref (cadddr params) 0)))))'
[eglot-tests] detected: textDocument/didChange
[eglot-tests] [eglot-test-tramp-test-2]: OK
[eglot] Asking EGLOT (project/(c-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (foo.c), wiping /mock:1aa68435eb4d:/tmp/eglot--fixtureKKpUx3, restoring nil
   passed  50/50  eglot-test-tramp-test-2 (0.618259 sec)

Ran 50 tests, 31 results as expected, 7 unexpected, 12 skipped (2023-04-06 09:47:16+0000, 33.176236 sec)

7 unexpected results:
   FAILED  eglot-test-basic-completions
   FAILED  eglot-test-basic-xref
   FAILED  eglot-test-eldoc-after-completions
   FAILED  eglot-test-multiline-eldoc
   FAILED  eglot-test-non-unique-completions
   FAILED  eglot-test-python-autopep-formatting
   FAILED  eglot-test-single-line-eldoc

12 skipped results:
  SKIPPED  eglot-test-eclipse-connect
  SKIPPED  eglot-test-javascript-basic
  SKIPPED  eglot-test-json-basic
  SKIPPED  eglot-test-path-to-uri-windows
  SKIPPED  eglot-test-project-wide-diagnostics-rust-analyzer
  SKIPPED  eglot-test-project-wide-diagnostics-typescript
  SKIPPED  eglot-test-python-yapf-formatting
  SKIPPED  eglot-test-rust-analyzer-hover-after-edit
  SKIPPED  eglot-test-rust-analyzer-watches-files
  SKIPPED  eglot-test-rust-on-type-formatting
  SKIPPED  eglot-test-snippet-completions
  SKIPPED  eglot-test-snippet-completions-with-company

\a\a

[-- Attachment #3: Type: text/plain, Size: 12558 bytes --]



In GNU Emacs 30.0.50 (build 6, x86_64-pc-linux-gnu, GTK+ Version
 3.24.37, cairo version 1.17.6) of 2023-04-04 built on gandalf
Repository revision: 0275c54ca80124f8a6e3a9823844b9ee131443cc
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12201008
System Description: Fedora Linux 37 (Workstation Edition)

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LIBOTF LIBSELINUX LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM
XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8

Major mode: Group

Minor modes in effect:
  gnus-undo-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  delete-selection-mode: t
  icomplete-mode: t
  global-goto-address-mode: t
  goto-address-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/albinus/src/elpa/packages/tramp-theme/tramp-theme-autoloads hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme-autoloads
/home/albinus/src/elpa/packages/tramp-theme/tramp-theme hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme
/home/albinus/src/elpa/packages/tramp-theme/tramp-theme-pkg hides /home/albinus/.emacs.d/elpa/tramp-theme-0.2/tramp-theme-pkg
/home/albinus/.emacs.d/elpa/hydra-0.15.0/lv hides /home/albinus/.emacs.d/elpa/lv-0.15.0/lv
/home/albinus/src/elpa/packages/debbugs/debbugs hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs
/home/albinus/src/elpa/packages/debbugs/debbugs-org hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-org
/home/albinus/src/elpa/packages/debbugs/debbugs-gnu hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-gnu
/home/albinus/src/elpa/packages/debbugs/debbugs-guix hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-guix
/home/albinus/src/elpa/packages/debbugs/debbugs-browse hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-browse
/home/albinus/src/elpa/packages/debbugs/debbugs-pkg hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-pkg
/home/albinus/src/elpa/packages/debbugs/debbugs-autoloads hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-autoloads
/home/albinus/src/elpa/packages/debbugs/debbugs-compat hides /home/albinus/.emacs.d/elpa/debbugs-0.35/debbugs-compat
/home/albinus/src/tramp/lisp/tramp-container hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-container
/home/albinus/src/tramp/lisp/tramp-sh hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-sh
/home/albinus/src/tramp/lisp/tramp-compat hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-compat
/home/albinus/src/tramp/lisp/tramp hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp
/home/albinus/src/tramp/lisp/tramp-rclone hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-rclone
/home/albinus/src/tramp/lisp/tramp-cmds hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-cmds
/home/albinus/src/tramp/lisp/tramp-gvfs hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-gvfs
/home/albinus/src/tramp/lisp/tramp-uu hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-uu
/home/albinus/src/tramp/lisp/tramp-crypt hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-crypt
/home/albinus/src/tramp/lisp/tramp-integration hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-integration
/home/albinus/src/tramp/lisp/tramp-archive hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-archive
/home/albinus/src/tramp/lisp/tramp-fuse hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-fuse
/home/albinus/src/tramp/lisp/tramp-adb hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-adb
/home/albinus/src/tramp/lisp/trampver hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/trampver
/home/albinus/src/tramp/lisp/tramp-ftp hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-ftp
/home/albinus/src/tramp/lisp/tramp-smb hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-smb
/home/albinus/src/tramp/lisp/tramp-cache hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-cache
/home/albinus/src/tramp/lisp/tramp-sudoedit hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-sudoedit
/home/albinus/src/tramp/lisp/tramp-sshfs hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-sshfs
/home/albinus/src/tramp/lisp/tramp-loaddefs hides /home/albinus/.emacs.d/elpa/tramp-2.6.0.2/tramp-loaddefs
/home/albinus/src/tramp/lisp/tramp-sh hides /usr/local/share/emacs/site-lisp/tramp-sh
/home/albinus/src/tramp/lisp/tramp-cmds hides /usr/local/share/emacs/site-lisp/tramp-cmds
/home/albinus/src/tramp/lisp/tramp-gvfs hides /usr/local/share/emacs/site-lisp/tramp-gvfs
/home/albinus/src/tramp/lisp/tramp-ftp hides /usr/local/share/emacs/site-lisp/tramp-ftp
/home/albinus/src/tramp/lisp/tramp-crypt hides /usr/local/share/emacs/site-lisp/tramp-crypt
/home/albinus/src/tramp/lisp/tramp-adb hides /usr/local/share/emacs/site-lisp/tramp-adb
/home/albinus/src/tramp/lisp/tramp hides /usr/local/share/emacs/site-lisp/tramp
/home/albinus/src/tramp/lisp/tramp-cache hides /usr/local/share/emacs/site-lisp/tramp-cache
/home/albinus/src/tramp/lisp/tramp-rclone hides /usr/local/share/emacs/site-lisp/tramp-rclone
/home/albinus/src/tramp/lisp/tramp-compat hides /usr/local/share/emacs/site-lisp/tramp-compat
/home/albinus/src/tramp/lisp/tramp-integration hides /usr/local/share/emacs/site-lisp/tramp-integration
/home/albinus/src/tramp/lisp/tramp-archive hides /usr/local/share/emacs/site-lisp/tramp-archive
/home/albinus/src/tramp/lisp/tramp-sudoedit hides /usr/local/share/emacs/site-lisp/tramp-sudoedit
/home/albinus/src/tramp/lisp/tramp-loaddefs hides /usr/local/share/emacs/site-lisp/tramp-loaddefs
/home/albinus/src/tramp/lisp/tramp-uu hides /usr/local/share/emacs/site-lisp/tramp-uu
/home/albinus/src/tramp/lisp/tramp-smb hides /usr/local/share/emacs/site-lisp/tramp-smb
/home/albinus/src/tramp/lisp/trampver hides /usr/local/share/emacs/site-lisp/trampver
/home/albinus/.emacs.d/elpa/transient-20230315.1520/transient hides /home/albinus/src/emacs/lisp/transient
/home/albinus/src/tramp/lisp/trampver hides /home/albinus/src/emacs/lisp/net/trampver
/home/albinus/src/tramp/lisp/tramp-uu hides /home/albinus/src/emacs/lisp/net/tramp-uu
/home/albinus/src/tramp/lisp/tramp-sudoedit hides /home/albinus/src/emacs/lisp/net/tramp-sudoedit
/home/albinus/src/tramp/lisp/tramp-sshfs hides /home/albinus/src/emacs/lisp/net/tramp-sshfs
/home/albinus/src/tramp/lisp/tramp-smb hides /home/albinus/src/emacs/lisp/net/tramp-smb
/home/albinus/src/tramp/lisp/tramp-sh hides /home/albinus/src/emacs/lisp/net/tramp-sh
/home/albinus/src/tramp/lisp/tramp-rclone hides /home/albinus/src/emacs/lisp/net/tramp-rclone
/home/albinus/src/tramp/lisp/tramp-loaddefs hides /home/albinus/src/emacs/lisp/net/tramp-loaddefs
/home/albinus/src/tramp/lisp/tramp-gvfs hides /home/albinus/src/emacs/lisp/net/tramp-gvfs
/home/albinus/src/tramp/lisp/tramp-fuse hides /home/albinus/src/emacs/lisp/net/tramp-fuse
/home/albinus/src/tramp/lisp/tramp-ftp hides /home/albinus/src/emacs/lisp/net/tramp-ftp
/home/albinus/src/tramp/lisp/tramp hides /home/albinus/src/emacs/lisp/net/tramp
/home/albinus/src/tramp/lisp/tramp-crypt hides /home/albinus/src/emacs/lisp/net/tramp-crypt
/home/albinus/src/tramp/lisp/tramp-integration hides /home/albinus/src/emacs/lisp/net/tramp-integration
/home/albinus/src/tramp/lisp/tramp-compat hides /home/albinus/src/emacs/lisp/net/tramp-compat
/home/albinus/src/tramp/lisp/tramp-cmds hides /home/albinus/src/emacs/lisp/net/tramp-cmds
/home/albinus/src/tramp/lisp/tramp-cache hides /home/albinus/src/emacs/lisp/net/tramp-cache
/home/albinus/src/tramp/lisp/tramp-archive hides /home/albinus/src/emacs/lisp/net/tramp-archive
/home/albinus/src/tramp/lisp/tramp-adb hides /home/albinus/src/emacs/lisp/net/tramp-adb
/home/albinus/src/tramp/lisp/tramp-container hides /home/albinus/src/emacs/lisp/net/tramp-container
~/lisp/dbus hides /home/albinus/src/emacs/lisp/net/dbus

Features:
(shadow sort mail-extr warnings icons emacsbug pop3 utf-7 nndraft nnmh
nnml network-stream nsm gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls
dig gnus-cache gnus-sum shr pixel-fill kinsoku url-file svg dom nnnil
smtpmail gnus-demon nntp gnus-group gnus-undo gnus-start gnus-dbus dbus
xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int
gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa
derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus nnheader gnus-util text-property-search mail-utils range
mm-util mail-prsvr wid-edit face-remap ob-shell ob ob-tangle ol org-src
ob-ref ob-lob ob-table ob-exp ob-comint ob-core org-cycle org-fold
org-fold-core ob-eval org-keys oc org-compat org-version org-macs vc
vc-dispatcher time tramp-cache time-stamp tramp-sh lxd-tramp lxc-tramp
tramp tramp-loaddefs rx trampver tramp-integration files-x tramp-compat
shell pcomplete comint ansi-osc ansi-color ring parse-time iso8601
time-date ls-lisp format-spec delsel ido jka-compr icomplete dired
dired-loaddefs goto-addr thingatpt envrc-autoloads vertico-autoloads
dired-rsync-autoloads transient-dwim-autoloads orderless-autoloads
recentf-remove-sudo-tramp-prefix-autoloads auth-source-keytar-autoloads
direnv-autoloads flycheck-autoloads dockerfile-mode-autoloads
auth-source-xoauth2-autoloads yaml-mode-autoloads
counsel-tramp-autoloads auto-virtualenv-autoloads mastodon-autoloads
ts-autoloads helm-projectile-autoloads projectile-autoloads
lsp-java-autoloads relint-autoloads ibuffer-tramp-autoloads
jarchive-autoloads dap-mode-autoloads lsp-treemacs-autoloads
treemacs-autoloads cfrs-autoloads hydra-autoloads pfuture-autoloads
persist-autoloads lsp-docker-autoloads yaml-autoloads lsp-mode-autoloads
lv-autoloads markdown-mode-autoloads ht-autoloads posframe-autoloads
ace-window-autoloads alert-autoloads debbugs-autoloads request-autoloads
pythonic-autoloads keytar-autoloads auto-sudoedit-autoloads f-autoloads
ssh-deploy-autoloads lxc-tramp-autoloads xr-autoloads pylint-autoloads
clojure-mode-autoloads avy-autoloads auto-virtualenvwrapper-autoloads
s-autoloads helm-tramp-autoloads helm-autoloads helm-core-autoloads
async-autoloads auth-source-gopass-autoloads ednc-autoloads
ghub-autoloads treepy-autoloads bui-autoloads magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
transient-autoloads compat-autoloads dash-autoloads info
nlinum-autoloads package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util mailcap url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp
byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
emacs)

Memory information:
((conses 16 202844 26417)
 (symbols 48 20153 0)
 (strings 32 66719 4581)
 (string-bytes 1 2355877)
 (vectors 16 35224)
 (vector-slots 8 426080 10954)
 (floats 8 245 539)
 (intervals 56 515 0)
 (buffers 976 21))

^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06  9:55 bug#62694: 30.0.50; eglot-tests fails with recent pylsp Michael Albinus
@ 2023-04-06 10:54 ` João Távora
  2023-04-06 11:22   ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-06 10:54 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694

On Thu, Apr 6, 2023 at 10:56 AM Michael Albinus <michael.albinus@gmx.de> wrote:
>
>
> Hi,
>
> I have simulated the eglot-tests from EMBA in my local
> environment. Instead of using Debian bullseye (stable), I have taken
> Debian sid (unstable).
>
> Additionally, I have installed the respective Debian sid packages:
>
> --8<---------------cut here---------------start------------->8---
> # apt list clangd python3-pylsp python3-autopep8 python3-yapf
> Listing... Done
> clangd/now 1:14.0-55.6 amd64 [installed,local]
> python3-autopep8/now 2.0.1-1 all [installed,local]
> python3-pylsp/now 1.7.1-1 all [installed,local]
> python3-yapf/now 0.32.0-1 all [installed,local]
> --8<---------------cut here---------------end--------------->8---
>
> However, eglot-tests still fail for pylsp, see attached eglot-tests.log
> file.

Instead of using your distribution package manager, I recommend
installing pylsp via the official Python package manager, pip, and
doing it like so:

pip install "python-lsp-server[all]"

This is how I install pylsp, and tests pass on my ArchLinux machine.
They also pass on the Ubuntu machine that GitHub CI is running.  See
for example

   https://github.com/joaotavora/eglot/actions/runs/4455776174/jobs/7971096296

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 10:54 ` João Távora
@ 2023-04-06 11:22   ` Michael Albinus
  2023-04-06 12:49     ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-06 11:22 UTC (permalink / raw)
  To: João Távora; +Cc: 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> I have simulated the eglot-tests from EMBA in my local
>> environment. Instead of using Debian bullseye (stable), I have taken
>> Debian sid (unstable).
>>
>> Additionally, I have installed the respective Debian sid packages:
>>
>> --8<---------------cut here---------------start------------->8---
>> # apt list clangd python3-pylsp python3-autopep8 python3-yapf
>> Listing... Done
>> clangd/now 1:14.0-55.6 amd64 [installed,local]
>> python3-autopep8/now 2.0.1-1 all [installed,local]
>> python3-pylsp/now 1.7.1-1 all [installed,local]
>> python3-yapf/now 0.32.0-1 all [installed,local]
>> --8<---------------cut here---------------end--------------->8---
>>
>> However, eglot-tests still fail for pylsp, see attached eglot-tests.log
>> file.
>
> Instead of using your distribution package manager, I recommend
> installing pylsp via the official Python package manager, pip, and
> doing it like so:
>
> pip install "python-lsp-server[all]"

I disagree. Running regression tests towards bleeding edge development
version of pylsp is not the intention. You cannot expect, that everybody
running Emacs tests has installed pylsp like this. But she could have
installed the Debian pylsp package.

I have used the most recent pylsp package from Debian. If it doesn't
cooperate with eglot, we have a problem.

I recommend that you investigate why the tests fail. And if this sounds
too much, at least the sanity checks shall be improved. (skip-unless
(executable-find "pylsp")) doesn't seem to be sufficient then.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 11:22   ` Michael Albinus
@ 2023-04-06 12:49     ` João Távora
  2023-04-06 14:58       ` Michael Albinus
  2023-04-09 11:22       ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 61+ messages in thread
From: João Távora @ 2023-04-06 12:49 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694

On Thu, Apr 6, 2023, 12:22 Michael Albinus <michael.albinus@gmx.de> wrote:

> > Instead of using your distribution package manager, I recommend
> > installing pylsp via the official Python package manager, pip, and
> > doing it like so:
> >
> > pip install "python-lsp-server[all]"
>
> I disagree. Running regression tests towards bleeding edge development
> version of pylsp is not the intention. You cannot expect, that everybody
> running Emacs tests has installed pylsp like this. But she could have
> installed the Debian pylsp package.

Sure, or she has a 'pylsp' that prints the complete works of
Shakespeare. But these tests are designed for the number one
recommended pylsp installation method. It's AFAIK not the
"bleeding edge" (which would be a Git installation). And tests
have been running fine with that installation method for a
number of months now, maybe even years.

> I have used the most recent pylsp package from Debian. If it doesn't
> cooperate with eglot, we have a problem.

We? I'd say Debian has, right?  I don't have anything against it,
quite the contrary, but I don't have Debian, and I don't program
against it (that's also a reason why I can't debug this right now).

As I explained, eglot-tests.el, is just testing eglot.el's logic
and pylsp happens to be an easy server to install in most operating
systems that exercises some of eglot.el's functionality.

I can probably switch to tests to use some other server, maybe
one whose Debian package is more well-behaved, but this is
hardly a priority for me.

What/whose problem or scenario are you trying to solve?
Who is this hypothetical she-user and what is she trying
to do?  Develop Emacs, develop Eglot, run eglot tests, use
Eglot with python? All/some of the above?

What is preventing you or her from installing this external
tool using its recommended installation method?  Does Debian's
python not carry its 'pip' package manager? Why do you want to
install it, and why do you want to install it specifically like this?

> I recommend that you investigate why the tests fail. And if this sounds
> too much, at least the sanity checks shall be improved. (skip-unless
> (executable-find "pylsp")) doesn't seem to be sufficient then.

I don't have Debian.  We can overhaul the sanity checks, but I don't
immediately see how.  Or why.  So it's hardly a priority.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 12:49     ` João Távora
@ 2023-04-06 14:58       ` Michael Albinus
  2023-04-06 16:59         ` João Távora
  2023-04-09 11:22       ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-06 14:58 UTC (permalink / raw)
  To: João Távora; +Cc: 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> I disagree. Running regression tests towards bleeding edge development
>> version of pylsp is not the intention. You cannot expect, that everybody
>> running Emacs tests has installed pylsp like this. But she could have
>> installed the Debian pylsp package.
>
> Sure, or she has a 'pylsp' that prints the complete works of
> Shakespeare. But these tests are designed for the number one
> recommended pylsp installation method. It's AFAIK not the
> "bleeding edge" (which would be a Git installation). And tests
> have been running fine with that installation method for a
> number of months now, maybe even years.

I don't doubt. But you cannot expect that everybody uses "the number one
recommended pylsp installation method".

>> I have used the most recent pylsp package from Debian. If it doesn't
>> cooperate with eglot, we have a problem.
>
> We? I'd say Debian has, right?  I don't have anything against it,
> quite the contrary, but I don't have Debian, and I don't program
> against it (that's also a reason why I can't debug this right now).

No, "we" (as the Emacs community) have a problem. Everybody who has
installed the Debian pylsp package, and who runs Emacs' "make check",
will see the errors. And these are not counted as pylsp errors, or
eglot.el errors; they are counted as Emacs errors. We shouldn't show
such a bad performance.

If Debian's pylsp does not cooperate, add a check in eglot-tests.el that
it is skipped.

Testing Debian and/or Emba is pretty easy now. I have just pushed a
patch to master, extending the file admin/notes/emba. There is a new
section "Running Emba tests locally", which you could apply. Use the
build target emcs-eglot instead of emacs-inotify, and run finally "make
-C test eglot-tests", and you'll see what's up.

> I can probably switch to tests to use some other server, maybe
> one whose Debian package is more well-behaved, but this is
> hardly a priority for me.

A priority is that the tests shouldn't fail. That's for all us
developers.

> What/whose problem or scenario are you trying to solve?
> Who is this hypothetical she-user and what is she trying
> to do?  Develop Emacs, develop Eglot, run eglot tests, use
> Eglot with python? All/some of the above?

See above. A simple "make check" could already fail, with an improper
pylsp installed.

> What is preventing you or her from installing this external
> tool using its recommended installation method?  Does Debian's
> python not carry its 'pip' package manager? Why do you want to
> install it, and why do you want to install it specifically like this?

Again, I'm not speaking about eglot users. They shall know what to
do. But eglot-tests could fail for everybody who has installed a pylsp
package, for example from Debian, w/o even being interested in eglot.

>> I recommend that you investigate why the tests fail. And if this sounds
>> too much, at least the sanity checks shall be improved. (skip-unless
>> (executable-find "pylsp")) doesn't seem to be sufficient then.
>
> I don't have Debian.  We can overhaul the sanity checks, but I don't
> immediately see how.  Or why.  So it's hardly a priority.

See above. With the instructions I have added to admin/notes/emba, it
should be simple.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 14:58       ` Michael Albinus
@ 2023-04-06 16:59         ` João Távora
  2023-04-06 17:39           ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-06 16:59 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694

On Thu, Apr 6, 2023 at 3:58 PM Michael Albinus <michael.albinus@gmx.de> wrote:
>
> João Távora <joaotavora@gmail.com> writes:
>
> Hi João,
>
> >> I disagree. Running regression tests towards bleeding edge development
> >> version of pylsp is not the intention. You cannot expect, that everybody
> >> running Emacs tests has installed pylsp like this. But she could have
> >> installed the Debian pylsp package.
> >
> > Sure, or she has a 'pylsp' that prints the complete works of
> > Shakespeare. But these tests are designed for the number one
> > recommended pylsp installation method. It's AFAIK not the
> > "bleeding edge" (which would be a Git installation). And tests
> > have been running fine with that installation method for a
> > number of months now, maybe even years.
>
> I don't doubt. But you cannot expect that everybody uses "the number one
> recommended pylsp installation method".

I expect that. The same way I expect people to install Eglot from ELPA, and
use a normal installation of Emacs, not some "Doom" or "Spacemacs". Or the
same way I expect people not to have advice in their configurations.
Many times my expectation fails, and yet I expect these things, because
that's what I programmed against.

So if they don't use that method, then maybe they should.  More
importantly, here we're  talking about the much smaller universe of Emacs
developers, not regular users.

> Again, I'm not speaking about eglot users. They shall know what to
> do. But eglot-tests could fail for everybody who has installed a pylsp
> package, for example from Debian, w/o even being interested in eglot.

That package is faulty to some degree in that it does not work exactly
like the recommended installation of pylsp.

Even if that's a problem for some hypothetical hardcore Debian
user who happens to also be an Emacs developer and who uses pylsp
but not in Eglot, and for some reason won't install anything from anywhere
else in his development machine, we have yet to hear from the hordes of
users at the intersection of all those conditions.

In your case in particular, I'd say you have control over what you
install in your machine and what you install in EMBA.  And I've
given you the recommended way to fix this, if you really must have
pylsp there.  Again, can you answer what is preventing you from using
`pip install` in your machine or in EMBA scripts?

Also, what is moving you so resolutely to install pylsp at all in EMBA?
Are you programming Python with some other LSP client on EMBA.  Is
anyone?

Are you just trying to get the best possible coverage from eglot-tests.el?
Thanks, but then I'd focus on rust-analyzer first, or the Java jdtls server.
The latter would be really useful as the GitHub CI isn't currently
installing it and the test is being skipped there.

> >> I recommend that you investigate why the tests fail. And if this sounds
> >> too much, at least the sanity checks shall be improved. (skip-unless
> >> (executable-find "pylsp")) doesn't seem to be sufficient then.
> >
> > I don't have Debian.  We can overhaul the sanity checks, but I don't
> > immediately see how.  Or why.  So it's hardly a priority.
>
> See above. With the instructions I have added to admin/notes/emba, it
> should be simple.

Thanks, I'll have a look one of these days.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 16:59         ` João Távora
@ 2023-04-06 17:39           ` Michael Albinus
  2023-04-06 19:50             ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-06 17:39 UTC (permalink / raw)
  To: João Távora; +Cc: 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> I don't doubt. But you cannot expect that everybody uses "the number one
>> recommended pylsp installation method".
>
> I expect that. The same way I expect people to install Eglot from ELPA, and
> use a normal installation of Emacs, not some "Doom" or "Spacemacs". Or the
> same way I expect people not to have advice in their configurations.
> Many times my expectation fails, and yet I expect these things, because
> that's what I programmed against.
>
> So if they don't use that method, then maybe they should.  More
> importantly, here we're  talking about the much smaller universe of Emacs
> developers, not regular users.

I don't speak about eglot (pylsp) users. They will know what to do.

I speak about ordinary Emacs users, not interested in eglot, who could
see Emacs errors when they run "make check". Just because eglot-tests.el
doesn't check its prerequisites sufficiently. As we have seen,
(skip-unless (executable-find "pylsp")) is not sufficient. 

>> Again, I'm not speaking about eglot users. They shall know what to
>> do. But eglot-tests could fail for everybody who has installed a pylsp
>> package, for example from Debian, w/o even being interested in eglot.
>
> That package is faulty to some degree in that it does not work exactly
> like the recommended installation of pylsp.

Likely yes. But people might have it installed, because they use
Debian. Why don't you check this wrong installation of pylsp in your
skip checks? This would solve it sufficiently, I believe.

> Even if that's a problem for some hypothetical hardcore Debian
> user who happens to also be an Emacs developer and who uses pylsp
> but not in Eglot, and for some reason won't install anything from anywhere
> else in his development machine, we have yet to hear from the hordes of
> users at the intersection of all those conditions.

The don't need to be pylsp users. A package could be installed for
several reasons.

And we haven't heart from them, because there doesn't exist an Emacs
release with built-in eglot and eglot-tests yet. People, who install
eglot from ELPA I don't care about, they know what they do.

> In your case in particular, I'd say you have control over what you
> install in your machine and what you install in EMBA.  And I've
> given you the recommended way to fix this, if you really must have
> pylsp there.  Again, can you answer what is preventing you from using
> `pip install` in your machine or in EMBA scripts?

The point is not Emba. It is just a mean to demonstrate what could
happen. And yes, I try to make the environment according to what people
use in general. And not to install special 3PP, not included in Debian,
just to "let the tests succeed". That's not the idea of regression tests.

> Also, what is moving you so resolutely to install pylsp at all in EMBA?
> Are you programming Python with some other LSP client on EMBA.  Is
> anyone?

No, I'm neither interested in python nor in eglot myself. I'm interested
in a stable Emacs. And I know, that people providing tests should ensure
that their tests do not harm. Yes, any failed test in the wild is a harm.

> Are you just trying to get the best possible coverage from eglot-tests.el?
> Thanks, but then I'd focus on rust-analyzer first, or the Java jdtls server.
> The latter would be really useful as the GitHub CI isn't currently
> installing it and the test is being skipped there.

If you could show me the Debian way to install rust-analyzer or jdtls in
Debian, I'm your man. I didn't find a corresponding package (but
honestly, I haven't tried for days). In case such packages don't exist
yet for Debian, I would be willing to install them differently, for a while.

>> > I don't have Debian.  We can overhaul the sanity checks, but I don't
>> > immediately see how.  Or why.  So it's hardly a priority.
>>
>> See above. With the instructions I have added to admin/notes/emba, it
>> should be simple.
>
> Thanks, I'll have a look one of these days.

Thanks.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 17:39           ` Michael Albinus
@ 2023-04-06 19:50             ` João Távora
  2023-04-07  7:44               ` Michael Albinus
  2023-04-09 11:24               ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 61+ messages in thread
From: João Távora @ 2023-04-06 19:50 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694

On Thu, Apr 6, 2023 at 6:39 PM Michael Albinus <michael.albinus@gmx.de> wrote:
>
> João Távora <joaotavora@gmail.com> writes:
>
> Hi João,
>
> >> I don't doubt. But you cannot expect that everybody uses "the number one
> >> recommended pylsp installation method".
> >
> > I expect that. The same way I expect people to install Eglot from ELPA, and
> > use a normal installation of Emacs, not some "Doom" or "Spacemacs". Or the
> > same way I expect people not to have advice in their configurations.
> > Many times my expectation fails, and yet I expect these things, because
> > that's what I programmed against.
> >
> > So if they don't use that method, then maybe they should.  More
> > importantly, here we're  talking about the much smaller universe of Emacs
> > developers, not regular users.
>
> I don't speak about eglot (pylsp) users. They will know what to do.
>
> I speak about ordinary Emacs users, not interested in eglot, who could
> see Emacs errors when they run "make check".

But these Emacs users are _also_ pylsp users, who have the Debian
pylsp package installed.  So you _are_ speaking about pylsp users.

> >> Again, I'm not speaking about eglot users. They shall know what to
> >> do. But eglot-tests could fail for everybody who has installed a pylsp
> >> package, for example from Debian, w/o even being interested in eglot.
> >
> > That package is faulty to some degree in that it does not work exactly
> > like the recommended installation of pylsp.
>
> Likely yes. But people might have it installed, because they use
> Debian. Why don't you check this wrong installation of pylsp in your
> skip checks? This would solve it sufficiently, I believe.

How do I do that? How do I do that portably?

> > Even if that's a problem for some hypothetical hardcore Debian
> > user who happens to also be an Emacs developer and who uses pylsp
> > but not in Eglot, and for some reason won't install anything from anywhere
> > else in his development machine, we have yet to hear from the hordes of
> > users at the intersection of all those conditions.
>
> The don't need to be pylsp users. A package could be installed for
> several reasons.

That could happen, but I doubt that pylsp is installed for any other
reason than to be used.  To intersect the set of people who have
installed it "accidentally" and additionally happen to be
"make check"-running Emacs devs who are completely baffled when
they see the failure.  Until I'm shown otherwise, I really think
you're the only person in that set in the world, and you're not baffled:
you know exactly what's going on.

> And we haven't heart from them, because there doesn't exist an Emacs
> release with built-in eglot and eglot-tests yet.

But Eglot with these tests has been in master for a very long time,
where Emacs dev happens.  And that's where people normally run
make check, not in a release they download.

In fact there were many more serious errors there for a long time that
didn't appear before you installed clangd on EMBA. And clangd is orders
of magnitude more popular than pylsp.

By the way, remember when your clangd installed via Debian's snap
or something was a  senseless do-nothing script?  Should I also ironclad
eglot-tests.el against that?

> eglot from ELPA I don't care about, they know what they do.
>
> > In your case in particular, I'd say you have control over what you
> > install in your machine and what you install in EMBA.  And I've
> > given you the recommended way to fix this, if you really must have
> > pylsp there.  Again, can you answer what is preventing you from using
> > `pip install` in your machine or in EMBA scripts?
>
> The point is not Emba. It is just a mean to demonstrate what could
> happen.

You've demonstrated an academic possibility.  A lot of things in
this world may conceivably happen but are extremely rare or have
never happened.

> And yes, I try to make the environment according to what people
> use in general. And not to install special 3PP, not included in Debian,
> just to "let the tests succeed". That's not the idea of regression tests.

Here the 3rd party _is_ Debian's packaging!  Just use pip:

  Pip is a package-management system written in Python and is
  used to install and manage software packages.    The Python
  Software     Foundation recommends using pip for installing
  Python applications and its dependencies during deployment.

It's as kosher as it gets!  I don't recommend Debian packages for
installing Emacs packages, I recommend package.el, which is under
our control.  Have you at least tried pip there?  Can you at least
relay back if it works?

> No, I'm neither interested in python nor in eglot myself. I'm interested
> in a stable Emacs. And I know, that people providing tests should ensure
> that their tests do not harm. Yes, any failed test in the wild is a harm.

Put on your boots and your hat, go into the wilderness and bring me some
of these wild creatures.

Frankly, this obstinate stance about Debian's package manager, just
makes people want to _not_ contribute tests.

> > Are you just trying to get the best possible coverage from eglot-tests.el?
> > Thanks, but then I'd focus on rust-analyzer first, or the Java jdtls server.
> > The latter would be really useful as the GitHub CI isn't currently
> > installing it and the test is being skipped there.
>
> If you could show me the Debian way to install rust-analyzer or jdtls in
> Debian, I'm your man. I didn't find a corresponding package (but
> honestly, I haven't tried for days). In case such packages don't exist
> yet for Debian, I would be willing to install them differently, for a while.

What is with this blind devotion to Debian?  It's a nice distro, but
surely it can handle installation of software in different ways.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 19:50             ` João Távora
@ 2023-04-07  7:44               ` Michael Albinus
  2023-04-07 10:20                 ` João Távora
  2023-04-09 11:24               ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07  7:44 UTC (permalink / raw)
  To: João Távora; +Cc: 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> > That package is faulty to some degree in that it does not work exactly
>> > like the recommended installation of pylsp.
>>
>> Likely yes. But people might have it installed, because they use
>> Debian. Why don't you check this wrong installation of pylsp in your
>> skip checks? This would solve it sufficiently, I believe.
>
> How do I do that? How do I do that portably?

Don't know, I have no knowledge about language servers. But I would
expect, that you first check whether pylsp is installed (you do it
already), and then you could connect to pylsp, send a specific request,
and decide, based on the ansewer, whether it is a proper language
server.

>> > Are you just trying to get the best possible coverage from eglot-tests.el?
>> > Thanks, but then I'd focus on rust-analyzer first, or the Java jdtls server.
>> > The latter would be really useful as the GitHub CI isn't currently
>> > installing it and the test is being skipped there.
>>
>> If you could show me the Debian way to install rust-analyzer or jdtls in
>> Debian, I'm your man. I didn't find a corresponding package (but
>> honestly, I haven't tried for days). In case such packages don't exist
>> yet for Debian, I would be willing to install them differently, for a while.
>
> What is with this blind devotion to Debian?  It's a nice distro, but
> surely it can handle installation of software in different ways.

In this case, it is Emba indeed. We have decided to run our tests based
on Debian. I don't see a reason to change this decision.

It would be desirable to test Emacs also against other basic software
(RHEL/Fedora, *BSD, macOS, MS Windows), but this is out of our
resources.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07  7:44               ` Michael Albinus
@ 2023-04-07 10:20                 ` João Távora
  2023-04-07 10:29                   ` Michael Albinus
  2023-04-07 10:43                   ` Eli Zaretskii
  0 siblings, 2 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 10:20 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694

On Fri, Apr 7, 2023 at 8:44 AM Michael Albinus <michael.albinus@gmx.de> wrote:

> Don't know, I have no knowledge about language servers. But I would
> expect, that you first check whether pylsp is installed (you do it
> already), and then you could connect to pylsp, send a specific request,
> and decide, based on the ansewer, whether it is a proper language
> server.

Connect to a language server just to discover if I can run a test?

All to get around (presumably) faulty Debian packaging of
an obscure language server that almost noone uses when a perfectly
good alternative to install said obscure already exists?

> >> > Are you just trying to get the best possible coverage from eglot-tests.el?
> >> > Thanks, but then I'd focus on rust-analyzer first, or the Java jdtls server.
> >> > The latter would be really useful as the GitHub CI isn't currently
> >> > installing it and the test is being skipped there.
> >>
> >> If you could show me the Debian way to install rust-analyzer or jdtls in
> >> Debian, I'm your man. I didn't find a corresponding package (but
> >> honestly, I haven't tried for days). In case such packages don't exist
> >> yet for Debian, I would be willing to install them differently, for a while.
> >
> > What is with this blind devotion to Debian?  It's a nice distro, but
> > surely it can handle installation of software in different ways.
>
> In this case, it is Emba indeed. We have decided to run our tests based
> on Debian. I don't see a reason to change this decision.

I'm not asking you to.  Debian is a fine distro, but it's not perfect.
Debian supports pip surely, so just install pylsp from pip.  Boom,
problem solved.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:20                 ` João Távora
@ 2023-04-07 10:29                   ` Michael Albinus
  2023-04-07 10:47                     ` João Távora
  2023-04-07 10:43                   ` Eli Zaretskii
  1 sibling, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 10:29 UTC (permalink / raw)
  To: João Távora; +Cc: 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> Don't know, I have no knowledge about language servers. But I would
>> expect, that you first check whether pylsp is installed (you do it
>> already), and then you could connect to pylsp, send a specific request,
>> and decide, based on the ansewer, whether it is a proper language
>> server.
>
> Connect to a language server just to discover if I can run a test?

Sure. See tramp-tests.el, which run at the very beginning

--8<---------------cut here---------------start------------->8---
(and
 (file-remote-p ert-remote-temporary-file-directory)
 (file-directory-p ert-remote-temporary-file-directory)
 (file-writable-p ert-remote-temporary-file-directory))
--8<---------------cut here---------------end--------------->8---

A sanity check, in order to know that further tests make sense.

> All to get around (presumably) faulty Debian packaging of
> an obscure language server that almost noone uses when a perfectly
> good alternative to install said obscure already exists?

Forget Debian. Any language server could behave wrong, remember the
(whereever it came from) clangd on my laptop. I believe, testing just
that an executable with a given name exists is not sufficient in the
world of language servers, which is still rapidly evolving.

But I don't fight with you. Do whatever you believe is proper, and live
with the fact that your tests fail on Emba. We have more discussed
about, as it would require to write a small check.

I have more serious problems to be solved.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:20                 ` João Távora
  2023-04-07 10:29                   ` Michael Albinus
@ 2023-04-07 10:43                   ` Eli Zaretskii
  2023-04-07 10:51                     ` João Távora
  1 sibling, 1 reply; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 10:43 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, michael.albinus

> Cc: 62694@debbugs.gnu.org
> From: João Távora <joaotavora@gmail.com>
> Date: Fri, 7 Apr 2023 11:20:53 +0100
> 
> > In this case, it is Emba indeed. We have decided to run our tests based
> > on Debian. I don't see a reason to change this decision.
> 
> I'm not asking you to.  Debian is a fine distro, but it's not perfect.
> Debian supports pip surely, so just install pylsp from pip.  Boom,
> problem solved.

A better solution is to skip the test if the pylsp server is not up to
the job.  Would that be possible?





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:29                   ` Michael Albinus
@ 2023-04-07 10:47                     ` João Távora
  2023-04-07 10:50                       ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 10:47 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694

> But I don't fight with you. Do whatever you believe is proper, and live
> with the fact that your tests fail on Emba. We have more discussed
> about, as it would require to write a small check.

Can you at least check if `pip install "python-lsp-server[all]"` works in
Debian as it does in Ubuntu?

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:47                     ` João Távora
@ 2023-04-07 10:50                       ` Michael Albinus
  2023-04-07 10:57                         ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 10:50 UTC (permalink / raw)
  To: João Távora; +Cc: 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> But I don't fight with you. Do whatever you believe is proper, and live
>> with the fact that your tests fail on Emba. We have more discussed
>> about, as it would require to write a small check.
>
> Can you at least check if `pip install "python-lsp-server[all]"` works in
> Debian as it does in Ubuntu?

I haven't checked, but I'm confident that it will work. But that's not
the point. You cannot dictate, that eglot-tests run only with a pylsp
server installed that way. We're not speaking about Emba, this is a
general rule.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:43                   ` Eli Zaretskii
@ 2023-04-07 10:51                     ` João Távora
  2023-04-07 10:53                       ` Michael Albinus
  2023-04-07 10:59                       ` Eli Zaretskii
  0 siblings, 2 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 10:51 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, michael.albinus

On Fri, Apr 7, 2023 at 11:42 AM Eli Zaretskii <eliz@gnu.org> wrote:
>
> > Cc: 62694@debbugs.gnu.org
> > From: João Távora <joaotavora@gmail.com>
> > Date: Fri, 7 Apr 2023 11:20:53 +0100
> >
> > > In this case, it is Emba indeed. We have decided to run our tests based
> > > on Debian. I don't see a reason to change this decision.
> >
> > I'm not asking you to.  Debian is a fine distro, but it's not perfect.
> > Debian supports pip surely, so just install pylsp from pip.  Boom,
> > problem solved.
>
> A better solution is to skip the test if the pylsp server is not up to
> the job.  Would that be possible?

It's probably possible, but I don't know how yet, and I don't think it's
worth doing this complexity _and_ incurring in this test slowdown (Eglot
tests are already pretty slow) just to solve a problem that doesn't really
exist.  I don't understand what the problem with adding a 'pip install'
line to the EMBA scripts is.

João Távora





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:51                     ` João Távora
@ 2023-04-07 10:53                       ` Michael Albinus
  2023-04-07 10:59                       ` Eli Zaretskii
  1 sibling, 0 replies; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 10:53 UTC (permalink / raw)
  To: João Távora; +Cc: Eli Zaretskii, 62694

João Távora <joaotavora@gmail.com> writes:

> I don't understand what the problem with adding a 'pip install' line
> to the EMBA scripts is.

The problem is, that we're not speaking about Emba only.

> João Távora

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:50                       ` Michael Albinus
@ 2023-04-07 10:57                         ` João Távora
  2023-04-07 11:04                           ` Gregory Heytings
  2023-04-07 11:11                           ` Eli Zaretskii
  0 siblings, 2 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 10:57 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694

On Fri, Apr 7, 2023 at 11:50 AM Michael Albinus <michael.albinus@gmx.de> wrote:
>
> João Távora <joaotavora@gmail.com> writes:
>
> Hi João,
>
> >> But I don't fight with you. Do whatever you believe is proper, and live
> >> with the fact that your tests fail on Emba. We have more discussed
> >> about, as it would require to write a small check.
> >
> > Can you at least check if `pip install "python-lsp-server[all]"` works in
> > Debian as it does in Ubuntu?
>
> I haven't checked, but I'm confident that it will work. But that's not
> the point. You cannot dictate, that eglot-tests run only with a pylsp
> server installed that way.

If someone is dictating stuff here, I don't think it's me.  Just try out
the line, I urge you.

Surely, you'll agree I cannot make eglot-tests tests for every possible
absurd behaviour of whatever external tools are in the user's PATH under
certain names.

> We're not speaking about Emba, this is a general rule.

You're not solving a real problem, a problem that human beings in the
world are facing and being sad with. In my view you're solving a problem
that you fabricated and are resisting to solve with a simple one liner.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:51                     ` João Távora
  2023-04-07 10:53                       ` Michael Albinus
@ 2023-04-07 10:59                       ` Eli Zaretskii
  2023-04-07 11:06                         ` João Távora
  1 sibling, 1 reply; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 10:59 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, michael.albinus

> From: João Távora <joaotavora@gmail.com>
> Date: Fri, 7 Apr 2023 11:51:16 +0100
> Cc: michael.albinus@gmx.de, 62694@debbugs.gnu.org
> 
> On Fri, Apr 7, 2023 at 11:42 AM Eli Zaretskii <eliz@gnu.org> wrote:
> >
> > A better solution is to skip the test if the pylsp server is not up to
> > the job.  Would that be possible?
> 
> It's probably possible, but I don't know how yet, and I don't think it's
> worth doing this complexity _and_ incurring in this test slowdown (Eglot
> tests are already pretty slow) just to solve a problem that doesn't really
> exist.

The problem does exist, as Micheal has explained in so many words.
Please trust him, as I do, that he knows what he is talking about, and
would have solved this himself if an easier solution were possible.

I see no significant complexity in adding a version test.  We do that
in umpteen other places with many other programs.

> I don't understand what the problem with adding a 'pip install' line
> to the EMBA scripts is.

Again, please trust Michael on that one.  We will not make any
progress if we start second-guessing every request and decision of our
peers, especially after you already suggested the upgrade, and Michael
already explained why he thought it wasn't the best alternative.

Please.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:57                         ` João Távora
@ 2023-04-07 11:04                           ` Gregory Heytings
  2023-04-07 11:10                             ` João Távora
  2023-04-07 11:11                           ` Eli Zaretskii
  1 sibling, 1 reply; 61+ messages in thread
From: Gregory Heytings @ 2023-04-07 11:04 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, Michael Albinus


>> We're not speaking about Emba, this is a general rule.
>
> You're not solving a real problem
>

Michael is definitely solving a real problem.  Anyone who runs "make 
check" with a pyslp on their computer that was not installed with pip will 
see these tests fail.  And running "make check" is something that we 
recommend in CONTRIBUTE.






^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:59                       ` Eli Zaretskii
@ 2023-04-07 11:06                         ` João Távora
  2023-04-07 11:17                           ` Eli Zaretskii
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 11:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, michael.albinus

> The problem does exist, as Micheal has explained in so many words.
> Please trust him, as I do, that he knows what he is talking about, and
> would have solved this himself if an easier solution were possible.
>
> I see no significant complexity in adding a version test.  We do that
> in umpteen other places with many other programs.

It's not a version test. I've already done that for clangd, per Michael's
request.  Here, pylsp's Debian packaging seems just to be buggy.

Michael has previously found another buggy way to install clangd for
example, some method that created a 'clangd' script that didn't
even respond to `--version`.  Those things are very hard to check against
and it's just not worth it.

> > I don't understand what the problem with adding a 'pip install' line
> > to the EMBA scripts is.
>
> Again, please trust Michael on that one.  We will not make any
> progress if we start second-guessing every request and decision of our
> peers, especially after you already suggested the upgrade, and Michael
> already explained why he thought it wasn't the best alternative.

No he didn't.  He _didn't_ explain what bad thing would come to the
world if pip install was added to the EMBA scripts.

Alternatively, simply don't install any pylsp on EMBA.  Boom, also
problem solved. Eventually, I will rework those tests to not rely on
pylsp at all, and I'll use something else to test those parts of eglot.el

But spending time answering these mails doesn't make any progress in
that direction.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:04                           ` Gregory Heytings
@ 2023-04-07 11:10                             ` João Távora
  0 siblings, 0 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 11:10 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: 62694, Michael Albinus

On Fri, Apr 7, 2023 at 12:04 PM Gregory Heytings <gregory@heytings.org> wrote:
> >> We're not speaking about Emba, this is a general rule.
> >
> > You're not solving a real problem
> >
>
> Michael is definitely solving a real problem.  Anyone who runs "make
> check" with a pyslp on their computer that was not installed with pip will
> see these tests fail.  And running "make check" is something that we
> recommend in CONTRIBUTE.

So will anyone who installs "clangd" with "snap" apparently.  Or anyone
who has an absurd "pylsp" in their PATH.  You're just postulating an
academic possibility, but it's not a real problem.  Where are these people,
why haven't we heard from them?  These contributors who don the recommended
steps in CONTRIUTE normally complain about tests failures in the mailing list
or bug tracker.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 10:57                         ` João Távora
  2023-04-07 11:04                           ` Gregory Heytings
@ 2023-04-07 11:11                           ` Eli Zaretskii
  2023-04-07 11:20                             ` João Távora
  1 sibling, 1 reply; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 11:11 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, michael.albinus

> Cc: 62694@debbugs.gnu.org
> From: João Távora <joaotavora@gmail.com>
> Date: Fri, 7 Apr 2023 11:57:07 +0100
> 
> > We're not speaking about Emba, this is a general rule.
> 
> You're not solving a real problem, a problem that human beings in the
> world are facing and being sad with. In my view you're solving a problem
> that you fabricated and are resisting to solve with a simple one liner.

No, this is not a fabricated problem.  It is a real one.  Please help
Michael solve it, at the very least by skipping the test when the LSP
server is not up to the job.  Bonus points for making the test more
tolerant.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:06                         ` João Távora
@ 2023-04-07 11:17                           ` Eli Zaretskii
  2023-04-07 11:23                             ` João Távora
  2023-04-07 12:04                             ` Michael Albinus
  0 siblings, 2 replies; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 11:17 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, michael.albinus

> From: João Távora <joaotavora@gmail.com>
> Date: Fri, 7 Apr 2023 12:06:46 +0100
> Cc: michael.albinus@gmx.de, 62694@debbugs.gnu.org
> 
> > The problem does exist, as Micheal has explained in so many words.
> > Please trust him, as I do, that he knows what he is talking about, and
> > would have solved this himself if an easier solution were possible.
> >
> > I see no significant complexity in adding a version test.  We do that
> > in umpteen other places with many other programs.
> 
> It's not a version test. I've already done that for clangd, per Michael's
> request.  Here, pylsp's Debian packaging seems just to be buggy.
> 
> Michael has previously found another buggy way to install clangd for
> example, some method that created a 'clangd' script that didn't
> even respond to `--version`.  Those things are very hard to check against
> and it's just not worth it.

A version test doesn't have to mean literally testing the version.  It
can be a different test, specifically for the problematic behavior.
If we understand the problematic behavior, we can test for it.  (If we
don't understand the problem, how do we know it is in the server and
not in Eglot or elsewhere in Emacs?)

> > > I don't understand what the problem with adding a 'pip install' line
> > > to the EMBA scripts is.
> >
> > Again, please trust Michael on that one.  We will not make any
> > progress if we start second-guessing every request and decision of our
> > peers, especially after you already suggested the upgrade, and Michael
> > already explained why he thought it wasn't the best alternative.
> 
> No he didn't.  He _didn't_ explain what bad thing would come to the
> world if pip install was added to the EMBA scripts.
> 
> Alternatively, simply don't install any pylsp on EMBA.  Boom, also
> problem solved. Eventually, I will rework those tests to not rely on
> pylsp at all, and I'll use something else to test those parts of eglot.el
> 
> But spending time answering these mails doesn't make any progress in
> that direction.

Well, how about coding the test Michael asked, and I seconded, then?
I agree that it will be a much better use of our time than keeping
arguing about it.

TIA





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:11                           ` Eli Zaretskii
@ 2023-04-07 11:20                             ` João Távora
  2023-04-07 12:20                               ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 11:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, michael.albinus

 wOn Fri, Apr 7, 2023 at 12:11 PM Eli Zaretskii <eliz@gnu.org> wrote:
>
> > Cc: 62694@debbugs.gnu.org
> > From: João Távora <joaotavora@gmail.com>
> > Date: Fri, 7 Apr 2023 11:57:07 +0100
> >
> > > We're not speaking about Emba, this is a general rule.
> >
> > You're not solving a real problem, a problem that human beings in the
> > world are facing and being sad with. In my view you're solving a problem
> > that you fabricated and are resisting to solve with a simple one liner.
>
> No, this is not a fabricated problem.  It is a real one.  Please help
> Michael solve it, at the very least by skipping the test when the LSP
> server is not up to the job.  Bonus points for making the test more
> tolerant.

Show me the code that does that "checking if up to the job" and show
me that it doesn't slow down Eglot tests significantly and I will
consider it.   I don't have Debian to test. It's not a trivial job
(at least I think so).  If it is trivial, then please help me.

I think it's a much better effort spent to convert those tests from
pylsp to clangd by the way.  So if you're goint to help me, you
could start with that.  Probably easier too.

Again, why can't Michael add the one-liner?  Or why can't he
skip installing Debian's faulty pylsp package in EMBA for now.
What is the rush all of the sudden that we have to write a million
mails about this.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:17                           ` Eli Zaretskii
@ 2023-04-07 11:23                             ` João Távora
  2023-04-07 11:37                               ` João Távora
  2023-04-07 12:04                             ` Michael Albinus
  1 sibling, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 11:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, michael.albinus

On Fri, Apr 7, 2023 at 12:17 PM Eli Zaretskii <eliz@gnu.org> wrote:

>
> Well, how about coding the test Michael asked, and I seconded, then?
> I agree that it will be a much better use of our time than keeping
> arguing about it.
>
> TIA

Quoting myself:

> > Show me the code that does that "checking if up to the job" and show
> > me that it doesn't slow down Eglot tests significantly and I will
> > consider it.   I don't have Debian to test. It's not a trivial job
> >(at least I think so).  If it is trivial, then please help me.

> > I think it's a much better effort spent to convert those tests from
> > pylsp to clangd by the way.  So if you're goint to help me, you
> > could start with that.  Probably easier too.

Many TIAs





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:23                             ` João Távora
@ 2023-04-07 11:37                               ` João Távora
  2023-04-07 11:41                                 ` Michael Albinus
  2023-04-07 12:07                                 ` Eli Zaretskii
  0 siblings, 2 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 11:37 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, michael.albinus

On Fri, Apr 7, 2023 at 12:23 PM João Távora <joaotavora@gmail.com> wrote:
>
> On Fri, Apr 7, 2023 at 12:17 PM Eli Zaretskii <eliz@gnu.org> wrote:
>
> >
> > Well, how about coding the test Michael asked, and I seconded, then?
> > I agree that it will be a much better use of our time than keeping
> > arguing about it.
> >
> > TIA
>
> Quoting myself:
>
> > > Show me the code that does that "checking if up to the job" and show
> > > me that it doesn't slow down Eglot tests significantly and I will
> > > consider it.   I don't have Debian to test. It's not a trivial job
> > >(at least I think so).  If it is trivial, then please help me.
>
> > > I think it's a much better effort spent to convert those tests from
> > > pylsp to clangd by the way.  So if you're goint to help me, you
> > > could start with that.  Probably easier too.
>
> Many TIAs

Alternatively, if helping me with that check or adding pip install
or not installing debian's pylsp on EMBA is too much to ask, then
just delete all the pylsp tests.

They've been there for a number of months now, and no reports
of this "real problem" you describe have ever surfaced.  And they
have existed in Eglot for a number of years, and also 0.0 reports.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:37                               ` João Távora
@ 2023-04-07 11:41                                 ` Michael Albinus
  2023-04-07 11:47                                   ` João Távora
  2023-04-07 12:07                                 ` Eli Zaretskii
  1 sibling, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 11:41 UTC (permalink / raw)
  To: João Távora; +Cc: Eli Zaretskii, 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

> They've been there for a number of months now, and no reports
> of this "real problem" you describe have ever surfaced.  And they
> have existed in Eglot for a number of years, and also 0.0 reports.

There is no Emacs release with built-in eglot-tests.el yet.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:41                                 ` Michael Albinus
@ 2023-04-07 11:47                                   ` João Távora
  2023-04-07 11:53                                     ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 11:47 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Eli Zaretskii, 62694

On Fri, Apr 7, 2023 at 12:41 PM Michael Albinus <michael.albinus@gmx.de> wrote:
>
> João Távora <joaotavora@gmail.com> writes:
>
> Hi João,
>
> > They've been there for a number of months now, and no reports
> > of this "real problem" you describe have ever surfaced.  And they
> > have existed in Eglot for a number of years, and also 0.0 reports.
>
> There is no Emacs release with built-in eglot-tests.el yet.

Right, so can you explain what will change once that release
happens?  Are the contributors running 'make check' in the
emacs-29 and master branches suddenly going to start doing
something different?  Will there be a huge influx of people
running 'make check' on the downloaded code of that release?

The release process exposes a new Emacs version to a new large
number of Emacs users, but not a new large number of Emacs
developers.

So I'm completely confused by this argument.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:47                                   ` João Távora
@ 2023-04-07 11:53                                     ` João Távora
  0 siblings, 0 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 11:53 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Eli Zaretskii, 62694

On Fri, Apr 7, 2023 at 12:47 PM João Távora <joaotavora@gmail.com> wrote:
>
> On Fri, Apr 7, 2023 at 12:41 PM Michael Albinus <michael.albinus@gmx.de> wrote:
> >
> > João Távora <joaotavora@gmail.com> writes:
> >
> > Hi João,
> >
> > > They've been there for a number of months now, and no reports
> > > of this "real problem" you describe have ever surfaced.  And they
> > > have existed in Eglot for a number of years, and also 0.0 reports.
> >
> > There is no Emacs release with built-in eglot-tests.el yet.

> So I'm completely confused by this argument.

But feel free to delete pylsp tests in emacs-29 (with no-merge
cookie). Heck, delete all the tests.  The eglot.el code being
tested there is stable and frozen to new features anyway, so it
makes absolutely no difference.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:17                           ` Eli Zaretskii
  2023-04-07 11:23                             ` João Távora
@ 2023-04-07 12:04                             ` Michael Albinus
  2023-04-07 12:24                               ` João Távora
  1 sibling, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 12:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, João Távora

Eli Zaretskii <eliz@gnu.org> writes:

Hi,

> A version test doesn't have to mean literally testing the version.  It
> can be a different test, specifically for the problematic behavior.
> If we understand the problematic behavior, we can test for it.  (If we
> don't understand the problem, how do we know it is in the server and
> not in Eglot or elsewhere in Emacs?)

I have done the homework (not mine!) and compared passing and failing
eglot-tests. For that I have compared the failing tests from Emba, and
the passing tests on my laptop, running Fedora 37. I have compared test
case eglot-test-basic-completions.

The initialization handshake is identical, except the server info. On
Emba, the server reports

--8<---------------cut here---------------start------------->8---
[server-reply] (id:1) Fri Apr  7 01:05:39 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.7.1")))
--8<---------------cut here---------------end--------------->8---

On my laptop, there is an older server version:

--8<---------------cut here---------------start------------->8---
[server-reply] (id:1) Fri Apr  7 13:30:45 2023:
(:jsonrpc "2.0" :id 1 :result
	  (:capabilities
	   (:codeActionProvider t :codeLensProvider
				(:resolveProvider :json-false)
				:completionProvider
				(:resolveProvider t :triggerCharacters
						  ["."])
				:documentFormattingProvider t :documentHighlightProvider t :documentRangeFormattingProvider t :documentSymbolProvider t :definitionProvider t :executeCommandProvider
				(:commands
				 [])
				:hoverProvider t :referencesProvider t :renameProvider t :foldingRangeProvider t :signatureHelpProvider
				(:triggerCharacters
				 ["(" "," "="])
				:textDocumentSync
				(:change 2 :save
					 (:includeText t)
					 :openClose t)
				:workspace
				(:workspaceFolders
				 (:supported t :changeNotifications t))
				:experimental nil)
	   :serverInfo
	   (:name "pylsp" :version "1.4.1")))
--8<---------------cut here---------------end--------------->8---

The interesting difference is the following dialogue. The client request
is identical on both machines (expcept the temporary file name):

--8<---------------cut here---------------start------------->8---
[client-request] (id:2) Fri Apr  7 13:30:45 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/completion" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturepBX5M9/project/something.py")
	   :position
	   (:line 1 :character 7)
	   :context
	   (:triggerKind 1)))
--8<---------------cut here---------------end--------------->8---

The server reply on my laptop is

--8<---------------cut here---------------start------------->8---
[server-reply] (id:2) Fri Apr  7 13:30:46 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 [(:label "exit(status)" :kind 3 :sortText "aexit" :insertText "exit" :data
				  (:doc_uri "file:///tmp/eglot--fixturepBX5M9/project/something.py"))]))
[client-notification] Fri Apr  7 13:30:46 2023:
(:jsonrpc "2.0" :method "textDocument/didChange" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturepBX5M9/project/something.py" :version 1)
	   :contentChanges
	   [(:range
	     (:start
	      (:line 1 :character 7)
	      :end
	      (:line 1 :character 7))
	     :rangeLength 0 :text "t")]))
--8<---------------cut here---------------end--------------->8---

But on Emba, we see only

--8<---------------cut here---------------start------------->8---
[server-reply] (id:2) Fri Apr  7 01:05:39 2023:
(:jsonrpc "2.0" :id 2 :result
	  (:isIncomplete :json-false :items
			 []))
[server-notification] Fri Apr  7 01:05:40 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:uri "file:///tmp/eglot--fixture5UoqLl/project/something.py" :diagnostics
		[]))
--8<---------------cut here---------------end--------------->8---

So a different reply, with less information.

> Well, how about coding the test Michael asked, and I seconded, then?
> I agree that it will be a much better use of our time than keeping
> arguing about it.

I have absolutely no idea about the language server protocol, and
whether both server replies are valid communication. If both are valid,
eglot shall support this.

If not, I believe eglot shall raise an error like "protocol mismatch",
and eglot-tests could catch this error and use it as indication that the
test has to be skipped, with a respective skip message.

> TIA

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:37                               ` João Távora
  2023-04-07 11:41                                 ` Michael Albinus
@ 2023-04-07 12:07                                 ` Eli Zaretskii
  2023-04-07 12:13                                   ` Michael Albinus
  1 sibling, 1 reply; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 12:07 UTC (permalink / raw)
  To: michael.albinus; +Cc: 62694, João Távora

> From: João Távora <joaotavora@gmail.com>
> Date: Fri, 7 Apr 2023 12:37:06 +0100
> Cc: michael.albinus@gmx.de, 62694@debbugs.gnu.org
> 
> Alternatively, if helping me with that check or adding pip install
> or not installing debian's pylsp on EMBA is too much to ask, then
> just delete all the pylsp tests.

Michael, does EMBA run all the tests, or does it skip, say, the
'unstable' ones?  If the latter, how about marking these specific
tests as 'unstable'? would that solve the problem?

Alternatively, we could mark these tests as known to fail, right?





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:07                                 ` Eli Zaretskii
@ 2023-04-07 12:13                                   ` Michael Albinus
  2023-04-07 12:22                                     ` Eli Zaretskii
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 12:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, João Távora

Eli Zaretskii <eliz@gnu.org> writes:

Hi Eli,

>> Alternatively, if helping me with that check or adding pip install
>> or not installing debian's pylsp on EMBA is too much to ask, then
>> just delete all the pylsp tests.
>
> Michael, does EMBA run all the tests, or does it skip, say, the
> 'unstable' ones?  If the latter, how about marking these specific
> tests as 'unstable'? would that solve the problem?

Sure, the :unstable tag suppresses a test for all "make test" invocation
variants. I've proposed this a while ago for some eglot tests, but João
didn't agree because "the tests are stable".

> Alternatively, we could mark these tests as known to fail, right?

This would be unfortune if there is a pylsp version on the machine which
let the tests succeed.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 11:20                             ` João Távora
@ 2023-04-07 12:20                               ` Michael Albinus
  0 siblings, 0 replies; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 12:20 UTC (permalink / raw)
  To: João Távora; +Cc: Eli Zaretskii, 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>  I don't have Debian to test.

You have, I told you about yesterday. You can build the Emba container
with Debian and bootstrapped Emacs in just one step, on your local
machine.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:13                                   ` Michael Albinus
@ 2023-04-07 12:22                                     ` Eli Zaretskii
  2023-04-07 12:40                                       ` João Távora
  2023-04-07 12:59                                       ` Michael Albinus
  0 siblings, 2 replies; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 12:22 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694, joaotavora

> From: Michael Albinus <michael.albinus@gmx.de>
> Cc: 62694@debbugs.gnu.org,  João Távora
>  <joaotavora@gmail.com>
> Date: Fri, 07 Apr 2023 14:13:32 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> Hi Eli,
> 
> >> Alternatively, if helping me with that check or adding pip install
> >> or not installing debian's pylsp on EMBA is too much to ask, then
> >> just delete all the pylsp tests.
> >
> > Michael, does EMBA run all the tests, or does it skip, say, the
> > 'unstable' ones?  If the latter, how about marking these specific
> > tests as 'unstable'? would that solve the problem?
> 
> Sure, the :unstable tag suppresses a test for all "make test" invocation
> variants. I've proposed this a while ago for some eglot tests, but João
> didn't agree because "the tests are stable".

Given João's reluctance to help you to find a better solution, I'm
afraid we will have to overrule his disagreement.  And I'm not sure he
is still in disagreement, given that he just proposed removing them
completely as a possible solution.  Running these tests is easy, even
if they are marked unstable, so the problem is not a serious one for
those who do want to run them.

> > Alternatively, we could mark these tests as known to fail, right?
> 
> This would be unfortune if there is a pylsp version on the machine which
> let the tests succeed.

Why unfortunate? what am I missing?





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:04                             ` Michael Albinus
@ 2023-04-07 12:24                               ` João Távora
  2023-04-07 12:47                                 ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 12:24 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Eli Zaretskii, 62694

Michael Albinus <michael.albinus@gmx.de> writes:

> 	   (:name "pylsp" :version "1.4.1")))

This is not a version problem, Michael.  I have 1.7.2. running on my
laptop and it passes all the tests.  You say

> The initialization handshake is identical, except the server info

> I have absolutely no idea about the language server protocol, and
> whether both server replies are valid communication. If both are valid,
> eglot shall support this.

Then how, given the information that I've just given you (that pylsp
1.7.2 passes all the tests), do you plan to do to version checking??

We did version checking with clangd, that's reasonable, but here it
seems impossible.  Just go easy on the "shall"s and consider.

   pip install "python-lsp-server[all]"

you can even pin it to a specific version

   pip install "python-lsp-server[all]" pylsp=1.7.2

Thank you very much for using your Debian to check this, but you're
wasting your time.  Since you have "absolutely no idea about the LSP",
can't you "trust" me on this one?  LSP coordinates capabilities using
the handshake's capability statements.  You have witnessed an identical
capability statement and yet different behaviour.  The servers are _not_
perfect, and Debian's pylsp installation is subtly not behaving
correctly.

> If not, I believe eglot shall raise an error like "protocol mismatch",

This doesn't exist in LSP.  It just doesn't exist.  There are no
protocol versions.

> I have done the homework (not mine!)

The suggestion that you're doing my homework and I'm somehow
lazying about is not very amusing.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:22                                     ` Eli Zaretskii
@ 2023-04-07 12:40                                       ` João Távora
  2023-04-07 12:58                                         ` Gregory Heytings
  2023-04-07 13:57                                         ` Eli Zaretskii
  2023-04-07 12:59                                       ` Michael Albinus
  1 sibling, 2 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 12:40 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, Michael Albinus

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Michael Albinus <michael.albinus@gmx.de>
>> Cc: 62694@debbugs.gnu.org,  João Távora
>>  <joaotavora@gmail.com>
>> Date: Fri, 07 Apr 2023 14:13:32 +0200
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> Hi Eli,
>> 
>> >> Alternatively, if helping me with that check or adding pip install
>> >> or not installing debian's pylsp on EMBA is too much to ask, then
>> >> just delete all the pylsp tests.
>> >
>> > Michael, does EMBA run all the tests, or does it skip, say, the
>> > 'unstable' ones?  If the latter, how about marking these specific
>> > tests as 'unstable'? would that solve the problem?
>> 
>> Sure, the :unstable tag suppresses a test for all "make test" invocation
>> variants. I've proposed this a while ago for some eglot tests, but João
>> didn't agree because "the tests are stable".
>
> Given João's reluctance to help you to find a better solution, 

FTR I've given a solution about 20 times now that was ignored
repeteadly.  There is no general bullet-proof solution for the problem
of broken or misbehaving installations of external tools.  So these
tests cannot ever be "stable".  You can mark them _all_ unstable.

FTR I've given a solution known to be working in an Ubuntu-based CI
system, very similar to Debian, for almost 5 years now.  Noone seems to
be heeding it, so what can I do?

FTR I've explained at length why the "better solution" that you and
Michael are conjecturing to be very easy is beyond me.  In my analysis,
there is no simple Elisp code that can, in this pylsp case, easily
discern between a functioning installation and a malfunctioning one.
I've asked for your suggestions on how this can be done and I've not
received any concrete ideas.

FTR, earlier this year, I took Michael's idea of adding a version check
to clangd for eglot-tests.el because it was relatively easy and cheap
and shown to be working.  _Not_ because there were any reports of people
with old clangd running make check (absolutely 0 of those too), but
because I found it easy to do so (and why not appease good old
Michael?).  There the argument was that in that old Debian Stable debian
system of EMBA it was not easy to install a newer clangd.  OK.  But, for
pylsp that is _not_ the case at all, it's a simple one liner.

So if anyone is being stubborn here, it's _not_ me.

João






^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:24                               ` João Távora
@ 2023-04-07 12:47                                 ` Michael Albinus
  2023-04-07 13:01                                   ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 12:47 UTC (permalink / raw)
  To: João Távora; +Cc: Eli Zaretskii, 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> 	   (:name "pylsp" :version "1.4.1")))
>
> This is not a version problem, Michael.  I have 1.7.2. running on my
> laptop and it passes all the tests.  You say
>
>> The initialization handshake is identical, except the server info
>
>> I have absolutely no idea about the language server protocol, and
>> whether both server replies are valid communication. If both are valid,
>> eglot shall support this.
>
> Then how, given the information that I've just given you (that pylsp
> 1.7.2 passes all the tests), do you plan to do to version checking??

I haven't proposed to check the version number of pylsp. I have just
reported the versions from the traces.

> Thank you very much for using your Debian to check this, but you're
> wasting your time.  Since you have "absolutely no idea about the LSP",
> can't you "trust" me on this one?  LSP coordinates capabilities using
> the handshake's capability statements.  You have witnessed an identical
> capability statement and yet different behaviour.  The servers are _not_
> perfect, and Debian's pylsp installation is subtly not behaving
> correctly.
>
>> If not, I believe eglot shall raise an error like "protocol mismatch",
>
> This doesn't exist in LSP.  It just doesn't exist.  There are no
> protocol versions.

I haven't said that this must be an LSP error. Just an Emacs error,
raised from eglot. Whether you call it "protocol mismatch" or
differently I don't care.

And you haven't answered the question, whther the server reply from the
Debian pylsp instance is in accordance with the LSP specs.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:40                                       ` João Távora
@ 2023-04-07 12:58                                         ` Gregory Heytings
  2023-04-07 13:02                                           ` João Távora
  2023-04-07 13:57                                         ` Eli Zaretskii
  1 sibling, 1 reply; 61+ messages in thread
From: Gregory Heytings @ 2023-04-07 12:58 UTC (permalink / raw)
  To: João Távora; +Cc: Eli Zaretskii, Michael Albinus, 62694


>
> There is no general bullet-proof solution for the problem of broken or 
> misbehaving installations of external tools.  So these tests cannot ever 
> be "stable".  You can mark them _all_ unstable.
>

There is a solution: use a mock implementation instead of a real one. 
The point is to check that there are no regressions in Emacs, there is no 
need to use a external tool for that.  And that would make the tests more 
future-proof.






^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:22                                     ` Eli Zaretskii
  2023-04-07 12:40                                       ` João Távora
@ 2023-04-07 12:59                                       ` Michael Albinus
  2023-04-07 13:48                                         ` Eli Zaretskii
  1 sibling, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 12:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, joaotavora

Eli Zaretskii <eliz@gnu.org> writes:

Hi Eli,

>> > Alternatively, we could mark these tests as known to fail, right?
>>
>> This would be unfortune if there is a pylsp version on the machine which
>> let the tests succeed.
>
> Why unfortunate? what am I missing?

On my laptop, where the eglot pylsp tests pass, "mark these tests as
known to fail" would result in something like this:

--8<---------------cut here---------------start------------->8---
(ert-deftest foo ()
  :expected-result :failed
  (should t))

M-x ert RET foo RET

Selector: foo
Passed:  1 (1 unexpected)
Failed:  0
Skipped: 0
Total:   1/1

Started at:   2023-04-07 14:52:01+0200
Finished.
Finished at:  2023-04-07 14:52:01+0200

P

P foo
    passed unexpectedly
--8<---------------cut here---------------end--------------->8---

The test foo is marked red in the *ert* buffer.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:47                                 ` Michael Albinus
@ 2023-04-07 13:01                                   ` João Távora
  2023-04-07 13:04                                     ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 13:01 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Eli Zaretskii, 62694

On Fri, Apr 7, 2023 at 1:47 PM Michael Albinus <michael.albinus@gmx.de> wrote:

> >> If not, I believe eglot shall raise an error like "protocol mismatch",
> >
> > This doesn't exist in LSP.  It just doesn't exist.  There are no
> > protocol versions.
>
> I haven't said that this must be an LSP error. Just an Emacs error,
> raised from eglot. Whether you call it "protocol mismatch" or
> differently I don't care.

But you also don't have the slightest idea or suggestion of how
to detect that.

> And you haven't answered the question, whther the server reply from the
> Debian pylsp instance is in accordance with the LSP specs.

The tests answer that! Obviously not.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:58                                         ` Gregory Heytings
@ 2023-04-07 13:02                                           ` João Távora
  0 siblings, 0 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 13:02 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Eli Zaretskii, Michael Albinus, 62694

On Fri, Apr 7, 2023 at 1:58 PM Gregory Heytings <gregory@heytings.org> wrote:

> > There is no general bullet-proof solution for the problem of broken or
> > misbehaving installations of external tools.  So these tests cannot ever
> > be "stable".  You can mark them _all_ unstable.
> >
>
> There is a solution: use a mock implementation instead of a real one.
> The point is to check that there are no regressions in Emacs, there is no
> need to use a external tool for that.  And that would make the tests more
> future-proof.

100% in agreement, i've suggested this in the past. Do you think it's
an easy job?  Go for it and TIA like Eli likes to say :-)

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 13:01                                   ` João Távora
@ 2023-04-07 13:04                                     ` Michael Albinus
  0 siblings, 0 replies; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 13:04 UTC (permalink / raw)
  To: João Távora; +Cc: Eli Zaretskii, 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> And you haven't answered the question, whther the server reply from the
>> Debian pylsp instance is in accordance with the LSP specs.
>
> The tests answer that! Obviously not.

Sorry to be pedantic, but are you saying that the eglot implementation
of LSP *is* the spec?

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:59                                       ` Michael Albinus
@ 2023-04-07 13:48                                         ` Eli Zaretskii
  2023-04-07 13:57                                           ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 13:48 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694, joaotavora

> From: Michael Albinus <michael.albinus@gmx.de>
> Cc: 62694@debbugs.gnu.org,  joaotavora@gmail.com
> Date: Fri, 07 Apr 2023 14:59:44 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> > Alternatively, we could mark these tests as known to fail, right?
> >>
> >> This would be unfortune if there is a pylsp version on the machine which
> >> let the tests succeed.
> >
> > Why unfortunate? what am I missing?
> 
> On my laptop, where the eglot pylsp tests pass, "mark these tests as
> known to fail" would result in something like this:
> 
> --8<---------------cut here---------------start------------->8---
> (ert-deftest foo ()
>   :expected-result :failed
>   (should t))
> 
> M-x ert RET foo RET
> 
> Selector: foo
> Passed:  1 (1 unexpected)
> Failed:  0
> Skipped: 0
> Total:   1/1
> 
> Started at:   2023-04-07 14:52:01+0200
> Finished.
> Finished at:  2023-04-07 14:52:01+0200
> 
> P
> 
> P foo
>     passed unexpectedly
> --8<---------------cut here---------------end--------------->8---
> 
> The test foo is marked red in the *ert* buffer.

I understand, but I don't see this as a problem, FWIW.

However, if you prefer marking them as unstable, I'm okay with that.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 12:40                                       ` João Távora
  2023-04-07 12:58                                         ` Gregory Heytings
@ 2023-04-07 13:57                                         ` Eli Zaretskii
  1 sibling, 0 replies; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 13:57 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, michael.albinus

> From: João Távora <joaotavora@gmail.com>
> Cc: Michael Albinus <michael.albinus@gmx.de>,  62694@debbugs.gnu.org
> Date: Fri, 07 Apr 2023 13:40:42 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Given João's reluctance to help you to find a better solution, 
> 
> FTR I've given a solution about 20 times now that was ignored
> repeteadly.  There is no general bullet-proof solution for the problem
> of broken or misbehaving installations of external tools.  So these
> tests cannot ever be "stable".  You can mark them _all_ unstable.

Great, then we agree.

Michael, would you please mark the relevant tests unstable?

> FTR I've given a solution known to be working in an Ubuntu-based CI
> system, very similar to Debian, for almost 5 years now.  Noone seems to
> be heeding it, so what can I do?
> 
> FTR I've explained at length why the "better solution" that you and
> Michael are conjecturing to be very easy is beyond me.  In my analysis,
> there is no simple Elisp code that can, in this pylsp case, easily
> discern between a functioning installation and a malfunctioning one.
> I've asked for your suggestions on how this can be done and I've not
> received any concrete ideas.
> 
> FTR, earlier this year, I took Michael's idea of adding a version check
> to clangd for eglot-tests.el because it was relatively easy and cheap
> and shown to be working.  _Not_ because there were any reports of people
> with old clangd running make check (absolutely 0 of those too), but
> because I found it easy to do so (and why not appease good old
> Michael?).  There the argument was that in that old Debian Stable debian
> system of EMBA it was not easy to install a newer clangd.  OK.  But, for
> pylsp that is _not_ the case at all, it's a simple one liner.
> 
> So if anyone is being stubborn here, it's _not_ me.

I didn't stay you were stubborn.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 13:48                                         ` Eli Zaretskii
@ 2023-04-07 13:57                                           ` Michael Albinus
  2023-04-07 14:00                                             ` Eli Zaretskii
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 13:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, joaotavora

Eli Zaretskii <eliz@gnu.org> writes:

Hi Eli,

> However, if you prefer marking them as unstable, I'm okay with that.

Will do in emacs-29 branch, for the eglot tests using pylsp. It might
take some days: Eastern time, and my house will be full of children and
grandchildren I don't see otherwise.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 13:57                                           ` Michael Albinus
@ 2023-04-07 14:00                                             ` Eli Zaretskii
  2023-04-07 14:04                                               ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 14:00 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62694, joaotavora

> From: Michael Albinus <michael.albinus@gmx.de>
> Cc: 62694@debbugs.gnu.org,  joaotavora@gmail.com
> Date: Fri, 07 Apr 2023 15:57:54 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > However, if you prefer marking them as unstable, I'm okay with that.
> 
> Will do in emacs-29 branch, for the eglot tests using pylsp. It might
> take some days: Eastern time, and my house will be full of children and
> grandchildren I don't see otherwise.

There's no rush, TIA.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 14:00                                             ` Eli Zaretskii
@ 2023-04-07 14:04                                               ` João Távora
  2023-04-07 14:33                                                 ` Eli Zaretskii
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-07 14:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, Michael Albinus

[-- Attachment #1: Type: text/plain, Size: 875 bytes --]

On Fri, Apr 7, 2023, 15:00 Eli Zaretskii <eliz@gnu.org> wrote:

> > From: Michael Albinus <michael.albinus@gmx.de>
> > Cc: 62694@debbugs.gnu.org,  joaotavora@gmail.com
> > Date: Fri, 07 Apr 2023 15:57:54 +0200
> >
> > Eli Zaretskii <eliz@gnu.org> writes:
> >
> > > However, if you prefer marking them as unstable, I'm okay with that.
> >
> > Will do in emacs-29 branch, for the eglot tests using pylsp. It might
> > take some days: Eastern time, and my house will be full of children and
> > grandchildren I don't see otherwise.
>
> There's no rush, TIA.
>

And there's also no need. I just replaced all the pylsp tests with clangd
based versions of the same tests. As i said before, a much saner solution.
Feel free to backport to emacs-29 if you think it is necessary.

So now you can install pylsp any way you see fit on Emba.

Thanks,
João

>

[-- Attachment #2: Type: text/html, Size: 1842 bytes --]

^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 14:04                                               ` João Távora
@ 2023-04-07 14:33                                                 ` Eli Zaretskii
  2023-04-07 15:06                                                   ` Michael Albinus
  2023-04-09 13:49                                                   ` Michael Albinus
  0 siblings, 2 replies; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-07 14:33 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, michael.albinus

> From: João Távora <joaotavora@gmail.com>
> Date: Fri, 7 Apr 2023 15:04:03 +0100
> Cc: Michael Albinus <michael.albinus@gmx.de>, 62694@debbugs.gnu.org
> 
> I just replaced all the pylsp tests with clangd based versions of
> the same tests.

Thank you.

> Feel free to backport to emacs-29 if you think it is necessary.

I'll leave to Michael the decision about what to do with these tests
on the emacs-29 branch.  From my POV, the test suite can be fixed
either way.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 14:33                                                 ` Eli Zaretskii
@ 2023-04-07 15:06                                                   ` Michael Albinus
  2023-04-07 19:05                                                     ` João Távora
  2023-04-09 13:49                                                   ` Michael Albinus
  1 sibling, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-07 15:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694, João Távora

Eli Zaretskii <eliz@gnu.org> writes:

Hi,

>> I just replaced all the pylsp tests with clangd based versions of
>> the same tests.
>
> Thank you.

I've just ran with my local Emba environment, all eglot-tests run
successfully. Except the skipped ones of course :-)

--8<---------------cut here---------------start------------->8---
Ran 48 tests, 37 results as expected, 0 unexpected, 11 skipped (2023-04-07 14:57:56+0000, 18.064532 sec)

11 skipped results:
  SKIPPED  eglot-test-eclipse-connect
  SKIPPED  eglot-test-javascript-basic
  SKIPPED  eglot-test-json-basic
  SKIPPED  eglot-test-path-to-uri-windows
  SKIPPED  eglot-test-project-wide-diagnostics-rust-analyzer
  SKIPPED  eglot-test-project-wide-diagnostics-typescript
  SKIPPED  eglot-test-rust-analyzer-hover-after-edit
  SKIPPED  eglot-test-rust-analyzer-watches-files
  SKIPPED  eglot-test-rust-on-type-formatting
  SKIPPED  eglot-test-snippet-completions
  SKIPPED  eglot-test-snippet-completions-with-company
--8<---------------cut here---------------end--------------->8---

Thanks. I'll keep the bug open ...

>> Feel free to backport to emacs-29 if you think it is necessary.
>
> I'll leave to Michael the decision about what to do with these tests
> on the emacs-29 branch.  From my POV, the test suite can be fixed
> either way.

... until I've backported eglot-tests.el to emacs-29. This is too much
for me today ...

Of course, anybody else could do it instead.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 15:06                                                   ` Michael Albinus
@ 2023-04-07 19:05                                                     ` João Távora
  0 siblings, 0 replies; 61+ messages in thread
From: João Távora @ 2023-04-07 19:05 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Eli Zaretskii, 62694

Michael Albinus <michael.albinus@gmx.de> writes:

> Eli Zaretskii <eliz@gnu.org> writes:
>
> Hi,
>
>>> I just replaced all the pylsp tests with clangd based versions of
>>> the same tests.
>>
>> Thank you.
>
> I've just ran with my local Emba environment, all eglot-tests run
> successfully. Except the skipped ones of course :-)

If you want to run those, arrange for the following to be installed:

jdtls
typescript-language-server
vscode-json-languageserver
rust-analyzer
Company
Yasnippet
Microsoft Windows

When installing Company and Yasnippet, which are not part of Emacs but
are GNU ELPA packages, strongly recommend to use our own package-install
tool instead of Debian's packaging for these.  I only test against
package-install.

> Ran 48 tests, 37 results as expected, 0 unexpected, 11 skipped (2023-04-07 14:57:56+0000, 18.064532 sec)
>
> 11 skipped results:
>   SKIPPED  eglot-test-eclipse-connect
>   SKIPPED  eglot-test-javascript-basic
>   SKIPPED  eglot-test-json-basic
>   SKIPPED  eglot-test-path-to-uri-windows
>   SKIPPED  eglot-test-project-wide-diagnostics-rust-analyzer
>   SKIPPED  eglot-test-project-wide-diagnostics-typescript
>   SKIPPED  eglot-test-rust-analyzer-hover-after-edit
>   SKIPPED  eglot-test-rust-analyzer-watches-files
>   SKIPPED  eglot-test-rust-on-type-formatting
>   SKIPPED  eglot-test-snippet-completions
>   SKIPPED  eglot-test-snippet-completions-with-company
>
> Thanks. I'll keep the bug open ...

I don't think this issue should be open.  The title is misleading as
eglot-tests didn't ever "fail with a recent pylsp" (I just tested the
most recent versions).  It used to fails with Debian's pylsp, but there
are no more pylsp tests since a few hours ago.

So I think you should either retitle it (if you know how) or close it
and open a new one.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 12:49     ` João Távora
  2023-04-06 14:58       ` Michael Albinus
@ 2023-04-09 11:22       ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-04-09 12:41         ` João Távora
  1 sibling, 1 reply; 61+ messages in thread
From: Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-04-09 11:22 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, Michael Albinus

João Távora [2023-04-06 13:49 +0100] wrote:

> On Thu, Apr 6, 2023, 12:22 Michael Albinus <michael.albinus@gmx.de> wrote:
>
>> > Instead of using your distribution package manager, I recommend
>> > installing pylsp via the official Python package manager, pip, and
>> > doing it like so:
>> >
>> > pip install "python-lsp-server[all]"

IME this may not be sufficient to get the latest version of pylsp's
dependencies, such as autopep8, which I presume is the component
responsible for the differences in formatting across development
environments.

IOW it may be necessary to explicitly 'pip install -U autopep8'.

>> I disagree. Running regression tests towards bleeding edge development
>> version of pylsp is not the intention. You cannot expect, that everybody
>> running Emacs tests has installed pylsp like this. But she could have
>> installed the Debian pylsp package.
>
> Sure, or she has a 'pylsp' that prints the complete works of
> Shakespeare. But these tests are designed for the number one
> recommended pylsp installation method. It's AFAIK not the
> "bleeding edge" (which would be a Git installation). And tests
> have been running fine with that installation method for a
> number of months now, maybe even years.

FWIW the autopep failure in bug#61637 was with latest pip-installed
pylsp and autopep8, and the patch in that report worked around it by
accepting one of a number of possible formattings.

A version check for autopep8 (rather than pylsp) may have been an
alternative solution.

-- 
Basil





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-06 19:50             ` João Távora
  2023-04-07  7:44               ` Michael Albinus
@ 2023-04-09 11:24               ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 61+ messages in thread
From: Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-04-09 11:24 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, Michael Albinus

João Távora [2023-04-06 20:50 +0100] wrote:

> On Thu, Apr 6, 2023 at 6:39 PM Michael Albinus <michael.albinus@gmx.de> wrote:
>>
>> João Távora <joaotavora@gmail.com> writes:
>>
>> > Even if that's a problem for some hypothetical hardcore Debian
>> > user who happens to also be an Emacs developer and who uses pylsp
>> > but not in Eglot, and for some reason won't install anything from anywhere
>> > else in his development machine, we have yet to hear from the hordes of
>> > users at the intersection of all those conditions.
>>
>> The don't need to be pylsp users. A package could be installed for
>> several reasons.
>
> That could happen, but I doubt that pylsp is installed for any other
> reason than to be used.  To intersect the set of people who have
> installed it "accidentally" and additionally happen to be
> "make check"-running Emacs devs who are completely baffled when
> they see the failure.  Until I'm shown otherwise, I really think
> you're the only person in that set in the world, and you're not baffled:
> you know exactly what's going on.

Even if the user is far from baffled, each test failure that arises from
the test's logic or assumptions (rather than indicating a real problem)
is a drain on the user's time, so we should strive to avoid it.

-- 
Basil





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 11:22       ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-04-09 12:41         ` João Távora
  2023-04-09 13:21           ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-09 12:41 UTC (permalink / raw)
  To: Basil Contovounesios; +Cc: 62694, Michael Albinus

[-- Attachment #1: Type: text/plain, Size: 2042 bytes --]

On Sun, Apr 9, 2023, 12:22 Basil Contovounesios <contovob@tcd.ie> wrote:

> João Távora [2023-04-06 13:49 +0100] wrote:
>
> > On Thu, Apr 6, 2023, 12:22 Michael Albinus <michael.albinus@gmx.de>
> wrote:
> >
> >> > Instead of using your distribution package manager, I recommend
> >> > installing pylsp via the official Python package manager, pip, and
> >> > doing it like so:
> >> >
> >> > pip install "python-lsp-server[all]"
>
> IME this may not be sufficient to get the latest version of pylsp's
> dependencies, such as autopep8, which I presume is the component
> responsible for the differences in formatting across development
> environments.
>
> IOW it may be necessary to explicitly 'pip install -U autopep8'.
>

If that were true, GitHub CI would be failing, since it used this command,
and it's not. Tests run on my laptop and I've never run that command, just
the one I suggested.


>> I disagree. Running regression tests towards bleeding edge development
> >> version of pylsp is not the intention. You cannot expect, that everybody
> >> running Emacs tests has installed pylsp like this. But she could have
> >> installed the Debian pylsp package.
> >
> > Sure, or she has a 'pylsp' that prints the complete works of
> > Shakespeare. But these tests are designed for the number one
> > recommended pylsp installation method. It's AFAIK not the
> > "bleeding edge" (which would be a Git installation). And tests
> > have been running fine with that installation method for a
> > number of months now, maybe even years.
>
> FWIW the autopep failure in bug#61637 was with latest pip-installed
> pylsp and autopep8, and the patch in that report worked around it by
> accepting one of a number of possible formattings.
>
> A version check for autopep8 (rather than pylsp) may have been an
> alternative solution


Who knows? Did you try it? If it works i would have been happy to accept
it  Noone proposed it. Instead, some truly vague and complex vapourware
things were proposed.

[-- Attachment #2: Type: text/html, Size: 2977 bytes --]

^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 12:41         ` João Távora
@ 2023-04-09 13:21           ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-04-09 14:45             ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-04-09 13:21 UTC (permalink / raw)
  To: João Távora; +Cc: 62694, Michael Albinus

João Távora [2023-04-09 13:41 +0100] wrote:

> On Sun, Apr 9, 2023, 12:22 Basil Contovounesios <contovob@tcd.ie> wrote:
>
>  João Távora [2023-04-06 13:49 +0100] wrote:
>
>  > On Thu, Apr 6, 2023, 12:22 Michael Albinus <michael.albinus@gmx.de> wrote:
>  >
>  >> > Instead of using your distribution package manager, I recommend
>  >> > installing pylsp via the official Python package manager, pip, and
>  >> > doing it like so:
>  >> >
>  >> > pip install "python-lsp-server[all]"
>
>  IME this may not be sufficient to get the latest version of pylsp's
>  dependencies, such as autopep8, which I presume is the component
>  responsible for the differences in formatting across development
>  environments.
>
>  IOW it may be necessary to explicitly 'pip install -U autopep8'.
>
> If that were true, GitHub CI would be failing, since it used this
> command, and it's not.

The CI probably installs anew each time it runs, whereas I was hinting
(sorry for not making it clearer) at the case where a local user updates
pip packages over time.

>  >> I disagree. Running regression tests towards bleeding edge development
>  >> version of pylsp is not the intention. You cannot expect, that everybody
>  >> running Emacs tests has installed pylsp like this. But she could have
>  >> installed the Debian pylsp package.
>  >
>  > Sure, or she has a 'pylsp' that prints the complete works of
>  > Shakespeare. But these tests are designed for the number one
>  > recommended pylsp installation method. It's AFAIK not the
>  > "bleeding edge" (which would be a Git installation). And tests
>  > have been running fine with that installation method for a
>  > number of months now, maybe even years.
>
>  FWIW the autopep failure in bug#61637 was with latest pip-installed
>  pylsp and autopep8, and the patch in that report worked around it by
>  accepting one of a number of possible formattings.
>
>  A version check for autopep8 (rather than pylsp) may have been an
>  alternative solution
>
> Who knows? Did you try it?

I only tried the aforementioned patch at the time.

I was just clarifying for posterity that the issue may well have lain
with a component of pylsp rather than the version of the server itself,
which is what this discussion focused on.

> If it works i would have been happy to accept it Noone proposed
> it. Instead, some truly vague and complex vapourware things were
> proposed.

That earlier proposals were not complete, optimal, or up to yours or
anyone's standards does not warrant degrading them, IMO.  Like you,
we're all here just trying to improve Emacs in whatever way we can.

Thanks,

-- 
Basil





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-07 14:33                                                 ` Eli Zaretskii
  2023-04-07 15:06                                                   ` Michael Albinus
@ 2023-04-09 13:49                                                   ` Michael Albinus
  1 sibling, 0 replies; 61+ messages in thread
From: Michael Albinus @ 2023-04-09 13:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62694-done, João Távora

Version: 29.1

Eli Zaretskii <eliz@gnu.org> writes:

Hi Eli & João,

>> I just replaced all the pylsp tests with clangd based versions of
>> the same tests.
>
> Thank you.
>
>> Feel free to backport to emacs-29 if you think it is necessary.
>
> I'll leave to Michael the decision about what to do with these tests
> on the emacs-29 branch.  From my POV, the test suite can be fixed
> either way.

I've backported the change to Emacs 29, closing the bug.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 13:21           ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-04-09 14:45             ` João Távora
  2023-04-09 15:32               ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-09 14:45 UTC (permalink / raw)
  To: Basil Contovounesios; +Cc: 62694, Michael Albinus

Basil Contovounesios <contovob@tcd.ie> writes:

> The CI probably installs anew each time it runs, whereas I was hinting
> (sorry for not making it clearer) at the case where a local user updates
> pip packages over time.  

Well, I'm a "local user" updating pip packages overtime, and used that
command and it worked (i used to to rev up pylsp to 1.7.2).  Anyway, we
were talking EMBA anyway, which is a CI system installing it anew each time.

>> Who knows? Did you try it?
>
> I only tried the aforementioned patch at the time.
>
> I was just clarifying for posterity that the issue may well have lain
> with a component of pylsp rather than the version of the server itself,
> which is what this discussion focused on.

Sure, could be.  Any number of things could have been it.  I've just
forcibly uninstalled autopep8 here and I just got one failure, not all
that Michael reported.  The one thing that could have solved it was
never even tried.

>> If it works i would have been happy to accept it Noone proposed
>> it. Instead, some truly vague and complex vapourware things were
>> proposed.
>
> That earlier proposals were not complete, optimal, or up to yours or
> anyone's standards does not warrant degrading them, IMO.  

- vague: there are no details, just the idea of "checking if the server
  is up to the job".
  
- complex: whatever its elusive nature is, probably more complex than
  (skip-unless (executable-find "pylsp"))

- vapourware: 0 code

So no degradation or even standard-checking going on here.  Primarily
because there was absolutely nothing brought forth to degrade or to
check standards on.

Also FTR, I wasn't the one who suggested I was doing other people's
homework.

> Like you, we're all here just trying to improve Emacs in whatever way
> we can.

Sure.  I believe thanked Michael multiple already for taking an interest
in Eglot's tests.  If I didn't, I do so again.  And I thank you too, of
course.  But it's certainly not "whatever way we can" if you obstinately
refuse to even try the one-liner suggestion of your interlocutor that
would probably fix the EMBA issue.

The academically postulated, never-demonstrated, "larger" issue of Emacs
developers running Eglot tests and facing non-determinism w.r.t to
external programs (why not w.r.t. cosmically induced bit-flipping, for
that matter?) probably cannot ever be fixed in this universe.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 14:45             ` João Távora
@ 2023-04-09 15:32               ` Michael Albinus
  2023-04-09 15:48                 ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-09 15:32 UTC (permalink / raw)
  To: João Távora; +Cc: Basil Contovounesios, 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>> That earlier proposals were not complete, optimal, or up to yours or
>> anyone's standards does not warrant degrading them, IMO.  
>
> - vague: there are no details, just the idea of "checking if the server
>   is up to the job".

I've shown you the Eglot traces for one test case on both Debian pylsp
(failed) and Fedora pylsp (succeeded). I still have no idea whether the
Debian flavour is inside the LSP specs or not. But if it returns
out-of-spec replies, I guess eglot should raise an Emacs error
indicating this fact.

Based on this fact, you could always catch this specific error in the
tests, and say that the server is not suited. Whether you shall skip or
err out the test then is something else; until now it isn't obvious that
a failed eglot test is due to the (possible) server misbehavior, or due
to an eglot error. At least this information should be shown.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 15:32               ` Michael Albinus
@ 2023-04-09 15:48                 ` João Távora
  2023-04-09 16:08                   ` Michael Albinus
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-09 15:48 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Basil Contovounesios, 62694

Michael Albinus <michael.albinus@gmx.de> writes:

> João Távora <joaotavora@gmail.com> writes:
>
> Hi João,
>
>>> That earlier proposals were not complete, optimal, or up to yours or
>>> anyone's standards does not warrant degrading them, IMO.  
>>
>> - vague: there are no details, just the idea of "checking if the server
>>   is up to the job".
>
> I've shown you the Eglot traces for one test case on both Debian pylsp
> (failed) and Fedora pylsp (succeeded). I still have no idea whether the
> Debian flavour is inside the LSP specs or not. But if it returns
> out-of-spec replies, I guess eglot should raise an Emacs error
> indicating this fact.

It's _not_ an out-of-spec reply.  It's just a insuficient in-spec reply
from a poorly installed or configured server.  The point of these tests,
as I've explained multiple times, is not to test the servers, rather
eglot.el's particularly its interactions with other emacs facilities,
such as xref, completion, flymake etc.  Any server will do, as long as
it is reasonably well-behaved and predictable.  That's why I switched to
clangd and all this discussion is moot now.

> Based on this fact, you could always catch this specific error in the
> tests, and say that the server is not suited. Whether you shall skip
> or err out the test then is something else; until now it isn't obvious
> that a failed eglot test is due to the (possible) server misbehavior,
> or due to an eglot error. At least this information should be shown.

It's impossible to know that.  You can design perfectly in-spec naughty
servers breaking all of eglot tests. Or you can follow Eglot's
maintainer advice to install versions of servers known to be working
correctly.  Heroically complexifying Eglot to detect misbehaving servers
is a completely futile exercise.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 15:48                 ` João Távora
@ 2023-04-09 16:08                   ` Michael Albinus
  2023-04-09 18:17                     ` João Távora
  0 siblings, 1 reply; 61+ messages in thread
From: Michael Albinus @ 2023-04-09 16:08 UTC (permalink / raw)
  To: João Távora; +Cc: Basil Contovounesios, 62694

João Távora <joaotavora@gmail.com> writes:

Hi João,

>>>> That earlier proposals were not complete, optimal, or up to yours or
>>>> anyone's standards does not warrant degrading them, IMO.  
>>>
>>> - vague: there are no details, just the idea of "checking if the server
>>>   is up to the job".
>>
>> I've shown you the Eglot traces for one test case on both Debian pylsp
>> (failed) and Fedora pylsp (succeeded). I still have no idea whether the
>> Debian flavour is inside the LSP specs or not. But if it returns
>> out-of-spec replies, I guess eglot should raise an Emacs error
>> indicating this fact.
>
> It's _not_ an out-of-spec reply.  It's just a insuficient in-spec reply
> from a poorly installed or configured server.

If it is an on-spec reply, eglot shall handle this. If there isn't
sufficient information in the reply, eglot shall err out with this
information.

> The point of these tests, as I've explained multiple times, is not to
> test the servers, rather eglot.el's particularly its interactions with
> other emacs facilities, such as xref, completion, flymake etc.  Any
> server will do, as long as it is reasonably well-behaved and
> predictable.  That's why I switched to clangd and all this discussion
> is moot now.

It isn't only the tests. You cannot prevent that a curious user, with
the brand new Emacs 29 installed, reads the NEWS and knows there's
eglot. She installs the Debian pylsp server (because that's what Debian
offers), tries it, and fails. And you'll ghet a bug report.

>> Based on this fact, you could always catch this specific error in the
>> tests, and say that the server is not suited. Whether you shall skip
>> or err out the test then is something else; until now it isn't obvious
>> that a failed eglot test is due to the (possible) server misbehavior,
>> or due to an eglot error. At least this information should be shown.
>
> It's impossible to know that.  You can design perfectly in-spec naughty
> servers breaking all of eglot tests.

Eglot shall fail the gracefully. The error messages I have seen so far
don't tell me anything.

> Or you can follow Eglot's maintainer advice to install versions of
> servers known to be working correctly.  Heroically complexifying Eglot
> to detect misbehaving servers is a completely futile exercise.

That's an illusion. People don't follow advices, people don't read
manuals. Believe me with 20+ years of Tramp experience, 40+ years
experience in developing and maintaining large projects.

> João

Best regards, Michael.





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 16:08                   ` Michael Albinus
@ 2023-04-09 18:17                     ` João Távora
  2023-04-09 19:04                       ` Eli Zaretskii
  0 siblings, 1 reply; 61+ messages in thread
From: João Távora @ 2023-04-09 18:17 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Basil Contovounesios, 62694

Michael Albinus <michael.albinus@gmx.de> writes:

>>> I've shown you the Eglot traces for one test case on both Debian pylsp
>>> (failed) and Fedora pylsp (succeeded). I still have no idea whether the
>>> Debian flavour is inside the LSP specs or not. But if it returns
>>> out-of-spec replies, I guess eglot should raise an Emacs error
>>> indicating this fact.
>>
>> It's _not_ an out-of-spec reply.  It's just a insuficient in-spec reply
>> from a poorly installed or configured server.
>
> If it is an on-spec reply, eglot shall handle this. If there isn't
> sufficient information in the reply, eglot shall err out with this
> information.

[I must admit I don't understand your use of "shall".  Is this the
German "soll", or is it really some kind of grave proclamation?]

Let's see if I can put this misunderstanding to rest.  There is a
misunderstanding here.  I hope I'm not going to be overly pedantic,
here: I do this in good faith.  First, Eglot is not the matter here,
we're talking about eglot-tests.el.  Now, for any software test to be
effective in predicting if the thing under test is functioning
correctly, there must be assumptions made.  Sometimes they are called
fixtures, the "fixed" thing you attach your system to.  Here, the server
is part of the fixture.  We have to assume that the server will react in
certain way when exposed to certain eglot-tests.el stimulae to be able
to say things about eglot.el's correctness.  If the pylsp server
responds with no completions when completions should have been available
-- as your log showed -- eglot-tests.el has to assume this is eglot.el's
fault, which it very well might be if Eglot failed to properly
communicate buffer changes or mangled some of its request or a million
other things.  This is exactly what these end-to-end tests are checking
against: that the multiple Eglot actions leading up to completions are
being taken correctly.

In tests, we have to doubt something: we cannot doubt the
fixture and the code all at once.  The fixture is, by definition, beyond
doubt.

It's like if you were desining a sorting algorithm.  You apply that
sorting algorithm to a known randomly sorted list, check the first
element to see if it's the smallest one indeed.  You check with the
function 'car'.  If it's not the smallest element, will you doubt or
algorithm or a misbehaving implementation of the function 'car'?  How
can you even know if you have a mischievous implementation of 'car'?

It's certainly true that external language servers, being "external" to
Emacs, are not as much under our control as the implementation of the
car primitive.  So they are not perfect fixtures.  Someone suggested
here that there should be an Emacs language server under our control,
just like the 'car' is under our control.  I agree.  But this is an
enormous task, so we have to surround ourselves with minimally stable
fixtures.  And pylsp is very reasonably stable when installed in the
recommended fashion.  Hopefully clangd is much better as a fixture (but
it's not perfect).

>> The point of these tests, as I've explained multiple times, is not to
>> test the servers, rather eglot.el's particularly its interactions with
>> other emacs facilities, such as xref, completion, flymake etc.  Any
>> server will do, as long as it is reasonably well-behaved and
>> predictable.  That's why I switched to clangd and all this discussion
>> is moot now.
>
> It isn't only the tests. You cannot prevent that a curious user, with
> the brand new Emacs 29 installed, reads the NEWS and knows there's
> eglot. She installs the Debian pylsp server (because that's what Debian
> offers), tries it, and fails. And you'll ghet a bug report.

First, you speak as if Eglot is a brand new thing in Emacs 29.  It's
not.  People have been using it since Emacs 26.3.

But sure, and I get a zillion million of those (not for pylsp by the
way).  This is only natural: servers are very frequently buggy and users
don't know about that unless they use a userr-facing client such as
Eglot.  So they, quite understandibly, report the problem to Eglot.  I
have to analyze them and refer the user to the server.  It's happened so
many times I've lost count.  The server maintainer discusses the issue
with me and we come to conclusion as to where the bug lies.  There's
nothing else I can do about that.  LSP server bugs are super-frequent.

But here, it's not even a pylsp bug.  It's a Debian packaging bug, by
all acounts.

But 0 users except for you have reported bugs in the pylsp server, in
the 5 years that Eglot has existed.  And if they had, I really doubt
they would have so obstinately resisted the tip to install pylsp in the
recommeded way or report this prolem to the Debian packagers, at least
to get their input on this matter.

>>> Based on this fact, you could always catch this specific error in the
>>> tests, and say that the server is not suited. Whether you shall skip
>>> or err out the test then is something else; until now it isn't obvious
>>> that a failed eglot test is due to the (possible) server misbehavior,
>>> or due to an eglot error. At least this information should be shown.
>>
>> It's impossible to know that.  You can design perfectly in-spec naughty
>> servers breaking all of eglot tests.
>
> Eglot shall fail the gracefully. The error messages I have seen so far
> don't tell me anything.

These are end-to-end tests.  What better messages would you like me to
put there?  Just submit a patch.

>> Or you can follow Eglot's maintainer advice to install versions of
>> servers known to be working correctly.  Heroically complexifying Eglot
>> to detect misbehaving servers is a completely futile exercise.
>
> That's an illusion. People don't follow advices, people don't read
> manuals. Believe me with 20+ years of Tramp experience, 40+ years
> experience in developing and maintaining large projects.

Well, you certainly don't, that's for sure.

João





^ permalink raw reply	[flat|nested] 61+ messages in thread

* bug#62694: 30.0.50; eglot-tests fails with recent pylsp
  2023-04-09 18:17                     ` João Távora
@ 2023-04-09 19:04                       ` Eli Zaretskii
  0 siblings, 0 replies; 61+ messages in thread
From: Eli Zaretskii @ 2023-04-09 19:04 UTC (permalink / raw)
  To: João Távora; +Cc: contovob, 62694, michael.albinus

> Cc: Basil Contovounesios <contovob@tcd.ie>, 62694@debbugs.gnu.org
> From: João Távora <joaotavora@gmail.com>
> Date: Sun, 09 Apr 2023 19:17:52 +0100
> 
> > If it is an on-spec reply, eglot shall handle this. If there isn't
> > sufficient information in the reply, eglot shall err out with this
> > information.
> 
> [I must admit I don't understand your use of "shall".

It is used as a synonym of "should" in this context.





^ permalink raw reply	[flat|nested] 61+ messages in thread

end of thread, other threads:[~2023-04-09 19:04 UTC | newest]

Thread overview: 61+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-06  9:55 bug#62694: 30.0.50; eglot-tests fails with recent pylsp Michael Albinus
2023-04-06 10:54 ` João Távora
2023-04-06 11:22   ` Michael Albinus
2023-04-06 12:49     ` João Távora
2023-04-06 14:58       ` Michael Albinus
2023-04-06 16:59         ` João Távora
2023-04-06 17:39           ` Michael Albinus
2023-04-06 19:50             ` João Távora
2023-04-07  7:44               ` Michael Albinus
2023-04-07 10:20                 ` João Távora
2023-04-07 10:29                   ` Michael Albinus
2023-04-07 10:47                     ` João Távora
2023-04-07 10:50                       ` Michael Albinus
2023-04-07 10:57                         ` João Távora
2023-04-07 11:04                           ` Gregory Heytings
2023-04-07 11:10                             ` João Távora
2023-04-07 11:11                           ` Eli Zaretskii
2023-04-07 11:20                             ` João Távora
2023-04-07 12:20                               ` Michael Albinus
2023-04-07 10:43                   ` Eli Zaretskii
2023-04-07 10:51                     ` João Távora
2023-04-07 10:53                       ` Michael Albinus
2023-04-07 10:59                       ` Eli Zaretskii
2023-04-07 11:06                         ` João Távora
2023-04-07 11:17                           ` Eli Zaretskii
2023-04-07 11:23                             ` João Távora
2023-04-07 11:37                               ` João Távora
2023-04-07 11:41                                 ` Michael Albinus
2023-04-07 11:47                                   ` João Távora
2023-04-07 11:53                                     ` João Távora
2023-04-07 12:07                                 ` Eli Zaretskii
2023-04-07 12:13                                   ` Michael Albinus
2023-04-07 12:22                                     ` Eli Zaretskii
2023-04-07 12:40                                       ` João Távora
2023-04-07 12:58                                         ` Gregory Heytings
2023-04-07 13:02                                           ` João Távora
2023-04-07 13:57                                         ` Eli Zaretskii
2023-04-07 12:59                                       ` Michael Albinus
2023-04-07 13:48                                         ` Eli Zaretskii
2023-04-07 13:57                                           ` Michael Albinus
2023-04-07 14:00                                             ` Eli Zaretskii
2023-04-07 14:04                                               ` João Távora
2023-04-07 14:33                                                 ` Eli Zaretskii
2023-04-07 15:06                                                   ` Michael Albinus
2023-04-07 19:05                                                     ` João Távora
2023-04-09 13:49                                                   ` Michael Albinus
2023-04-07 12:04                             ` Michael Albinus
2023-04-07 12:24                               ` João Távora
2023-04-07 12:47                                 ` Michael Albinus
2023-04-07 13:01                                   ` João Távora
2023-04-07 13:04                                     ` Michael Albinus
2023-04-09 11:24               ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-09 11:22       ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-09 12:41         ` João Távora
2023-04-09 13:21           ` Basil Contovounesios via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-09 14:45             ` João Távora
2023-04-09 15:32               ` Michael Albinus
2023-04-09 15:48                 ` João Távora
2023-04-09 16:08                   ` Michael Albinus
2023-04-09 18:17                     ` João Távora
2023-04-09 19:04                       ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.