ycm-core/YouCompleteMe

YCM is Python 3.11 incompatible (due to packaged version of bottle)

brtmr opened this issue · 3 comments

brtmr commented

Issue Prelude

Please complete these steps and check these boxes (by putting an x inside
the brackets) before filing your issue:

  • I have read and understood YCM's CONTRIBUTING document.
  • I have read and understood YCM's CODE_OF_CONDUCT document.
  • I have read and understood YCM's README, especially the
    Frequently Asked Questions section.
  • I have searched YCM's issue tracker to find issues similar to the one I'm
    about to report and couldn't find an answer to my problem. (Example Google
    search.
    )
  • If filing a bug report, I have included the output of vim --version.
  • If filing a bug report, I have included the output of :YcmDebugInfo.
  • If filing a bug report, I have attached the contents of the logfiles using
    the :YcmToggleLogs command.
  • If filing a bug report, I have included which OS (including specific OS
    version) I am using.
  • If filing a bug report, I have included a minimal test case that reproduces
    my issue, using vim -Nu /path/to/YCM/vimrc_ycm_minimal, including what I
    expected to happen and what actually happened.
  • If filing a installation failure report, I have included the entire output
    of install.py (or cmake/make/ninja) including its invocation
  • I understand this is an open-source project staffed by volunteers and
    that any help I receive is a selfless, heartfelt gift of their free time. I
    know I am not entitled to anything and will be polite and courteous.
  • I understand my issue may be closed if it becomes obvious I didn't
    actually perform all of these steps.

Thank you for adhering to this process! It ensures your issue is resolved
quickly and that neither your nor our time is needlessly wasted.

Issue Details

Provide a clear description of the problem, including the following key
questions:

  • What did you do?

Updated to Python 3.11.

Include steps to reproduce here.

  1. Started vim, YcmServer reports that it crashed
  2. Log files are empty
  3. Manually started ycmd to figure out the issue, see the following:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/basti/.local/share/nvim/plugged/YouCompleteMe/python/ycm/../../third_party/ycmd/ycmd/__main__.py", line 54, in <module>
    from ycmd.hmac_plugin import HmacPlugin
  File "/home/basti/.local/share/nvim/plugged/YouCompleteMe/third_party/ycmd/ycmd/hmac_plugin.py", line 19, in <module>
    from bottle import request, abort, response
  File "/home/basti/.local/share/nvim/plugged/YouCompleteMe/third_party/ycmd/third_party/bottle/bottle.py", line 44, in <module>
    from inspect import getargspec
ImportError: cannot import name 'getargspec' from 'inspect' (/usr/lib/python3.11/inspect.py)

Did some digging, the inspect.getargspec() function was deprecated in favor of inspect.getfullargspec()

Include description of a minimal test case, including any actual code required
to reproduce the issue.

Just run python3.11 /path/to/ymcd

  • What did you expect to happen?

ymcd starts with Python 3.11

Include description of the expected behaviour.

cmd crashes because it is packaged with a version of bottle that is incompatible with Python 3.11.

Include description of the observed behaviour, including actual output,
screenshots, etc.

Diagnostic data

Output of vim --version

grafik

Output of YcmDebugInfo

grafik

Output of YcmDiags

---

Output of git rev-parse HEAD in YouCompleteMe installation directory

49ced5a30ad7778178fd44703665a8ef3329e592

Contents of YCM, ycmd and completion engine logfiles

All empty.

OS version, distribution, etc.

Arch Linux: Linux amy 6.3.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 10 Jun 2023 00:35:35 +0000 x86_64 GNU/Linux

Output of build/install commands

Unnecessary, this is a plain python issue.

brtmr commented

Here is the corresponding bottle.py commit

YCM works fine with python 3.11. You probably didn't update your submodules.

try git subdue update --init --recursive in the YCM directory.

Duplicate #4056