Package: ycmd / 0+20240823+git8b61f19+ds-2

Metadata

Package Version Patches format
ycmd 0+20240823+git8b61f19+ds-2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0001 Upgrade to LLVM19.patch | (download)

build.py | 16 8 + 8 - 0 !
cpp/ycm/CMakeLists.txt | 16 8 + 8 - 0 !
2 files changed, 16 insertions(+), 16 deletions(-)

 [patch] upgrade to llvm19


0002 Upgrade to unicode 16.patch | (download)

cpp/ycm/Character.cpp | 6 3 + 3 - 0 !
cpp/ycm/Character.h | 2 1 + 1 - 0 !
cpp/ycm/CodePoint.h | 2 1 + 1 - 0 !
update_unicode.py | 4 2 + 2 - 0 !
4 files changed, 7 insertions(+), 7 deletions(-)

 [patch] upgrade to unicode 16


0003 Make building regex module optional.patch | (download)

build.py | 14 11 + 3 - 0 !
test_requirements.txt | 2 2 + 0 - 0 !
2 files changed, 13 insertions(+), 3 deletions(-)

 [patch] make building regex module optional


00 use python3 shebang.patch | (download)

ycmd/__main__.py | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 adds missing script headers
01 add marker to allow skipping tests on Debian.patch | (download)

ycmd/tests/test_utils.py | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 add marker to skip tests on debian
 The testsuite contains rather a lot and some tests do not work anymore
 due to us patching out third-party usage and such, so to keep the
 changes to the testsuite minimal rather than removing entire tests
 we will mark them for skipping.
 .
 This patch does not mark any test,
 this is to be done in later patches.
10 use system clang and llvm.patch | (download)

cpp/ycm/CMakeLists.txt | 34 1 + 33 - 0 !
run_tests.py | 9 0 + 9 - 0 !
ycmd/completers/cpp/clangd_completer.py | 79 27 + 52 - 0 !
ycmd/tests/clangd/diagnostics_test.py | 63 39 + 24 - 0 !
ycmd/tests/clangd/subcommands_test.py | 7 5 + 2 - 0 !
ycmd/tests/clangd/utilities_test.py | 10 5 + 5 - 0 !
ycmd/tests/utils_test.py | 3 2 + 1 - 0 !
ycmd/utils.py | 26 2 + 24 - 0 !
8 files changed, 81 insertions(+), 150 deletions(-)

 use debian's llvm and clang
 While this patch is mostly about dropping the usage of the embedded clang
 sources (which we strip from the upstream tarball as well) it also adapts
 (so in effect mostly reverts) changes to the tests to have them support
 multiple clang versions
11 use system gtest.patch | (download)

cpp/ycm/tests/CMakeLists.txt | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 find pthreads for gtest
12 use system unicode data.patch | (download)

update_unicode.py | 49 20 + 29 - 0 !
1 file changed, 20 insertions(+), 29 deletions(-)

 use unicode-data instead of embedded copies or downloads
 Upstream embeds the generated files in their release tarballs.
 As they are giant blobs which are impossible to review we will just use
 the script provided by upstream to regenerate them  just with data
 we have already in the unicode-data package instead of trying to download
13 use system whereami.patch | (download)

cpp/ycm/tests/CMakeLists.txt | 7 1 + 6 - 0 !
cpp/ycm/tests/TestUtils.cpp | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 7 deletions(-)

 use system whereami for running tests
14 use system or home gopls.patch | (download)

ycmd/completers/go/go_completer.py | 9 1 + 8 - 0 !
ycmd/default_settings.json | 2 1 + 1 - 0 !
ycmd/tests/go/go_completer_test.py | 2 2 + 0 - 0 !
ycmd/tests/go/inlay_hints_test.py | 18 16 + 2 - 0 !
ycmd/tests/go/subcommands_test.py | 34 25 + 9 - 0 !
5 files changed, 45 insertions(+), 20 deletions(-)

 use system gopls or from current users go home
 gopls is packaged in Debian now, so we can use that, but as we
 supported picking it up from the users home we keep it.
15 use system tssserver.patch | (download)

ycmd/completers/typescript/typescript_completer.py | 35 13 + 22 - 0 !
ycmd/tests/javascriptreact/get_completions_test.py | 4 1 + 3 - 0 !
ycmd/tests/typescript/typescript_completer_test.py | 2 2 + 0 - 0 !
3 files changed, 16 insertions(+), 25 deletions(-)

 use tsserver from node-typescript package
 We also increase the response timeout value here mostly for slow
 architectures like armel which flip-flop in terms of timeouts in
 the tests otherwise  and from a user perspective a slow answer
 might still be better than a timeout. Although, natural selection
 will properly lead them to look elsewhere for more speed.
 .
 A timeout value of 30 is used in language_server_completer.py
 by upstream as well, so this doesn't seem completely off either.
19 dont try to use thirdparty dir.patch | (download)

.ycm_extra_conf.py | 36 1 + 35 - 0 !
run_tests.py | 16 0 + 16 - 0 !
ycmd/__main__.py | 13 2 + 11 - 0 !
ycmd/tests/python/subcommands_test.py | 8 0 + 8 - 0 !
4 files changed, 3 insertions(+), 70 deletions(-)

 don't try to use non-existent thirdparty directory
 We strip the thirdparty directory from the tarball to avoid shipping
 and using the various embedded copies upstream has. On the plus side:
 As we don't include them, we don't need to load them.
20 use home tern.patch | (download)

ycmd/completers/javascript/tern_completer.py | 17 6 + 11 - 0 !
1 file changed, 6 insertions(+), 11 deletions(-)

 debian doesn't have node-tern. this patch is making ycmd to
 use locally installed tern with `npm install tern` command.
30 prepare unittests for autopkgtests.patch | (download)

ycmd/tests/clang/debug_info_test.py | 4 2 + 2 - 0 !
ycmd/tests/clang/flags_test.py | 97 71 + 26 - 0 !
ycmd/tests/clang/get_completions_test.py | 2 1 + 1 - 0 !
ycmd/tests/clangd/debug_info_test.py | 2 1 + 1 - 0 !
ycmd/tests/clangd/diagnostics_test.py | 4 2 + 2 - 0 !
ycmd/tests/clangd/get_completions_test.py | 6 4 + 2 - 0 !
ycmd/tests/clangd/server_management_test.py | 2 1 + 1 - 0 !
ycmd/tests/clangd/subcommands_test.py | 17 10 + 7 - 0 !
ycmd/tests/client_test.py | 3 1 + 2 - 0 !
ycmd/tests/extra_conf_store_test.py | 2 1 + 1 - 0 !
ycmd/tests/get_completions_test.py | 3 2 + 1 - 0 !
ycmd/tests/go/get_completions_test.py | 23 12 + 11 - 0 !
ycmd/tests/go/subcommands_test.py | 4 3 + 1 - 0 !
ycmd/tests/javascript/get_completions_test.py | 3 2 + 1 - 0 !
ycmd/tests/javascript/subcommands_test.py | 3 3 + 0 - 0 !
ycmd/tests/language_server/language_server_completer_test.py | 2 1 + 1 - 0 !
ycmd/tests/misc_handlers_test.py | 2 1 + 1 - 0 !
ycmd/tests/shutdown_test.py | 10 2 + 8 - 0 !
ycmd/tests/typescript/diagnostics_test.py | 13 9 + 4 - 0 !
ycmd/tests/typescript/get_completions_test.py | 3 2 + 1 - 0 !
ycmd/tests/typescript/subcommands_test.py | 3 3 + 0 - 0 !
21 files changed, 134 insertions(+), 74 deletions(-)

 use upstream unittest as autopkgtest
 Ideally we would run the tests (also) at build time, but quiet a few
 need to be disabled as Debian misses the language servers involved and
 it adds a gigantic set of build dependencies.
 .
 The changes itself are mostly teaching the tests who expect no global
 config as upstream has none (while Debian sets one) to ignore this
 specific setting.
 .
 Note that some tests are modified by earlier patches already if the
 change seemed related and fitting, so this is the final catch-all.
31 ignore order of goto locations.patch | (download)

ycmd/tests/clangd/subcommands_test.py | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 ignore order of goto locations return by clangd
 Upstream has a fixed order of locations and this seems to work on all
 Debian architectures autopkgtest is run on except s390x for some reason.
 .
 For upstream the order is important in so far as order is an important
 user interface, but for us it is less of an issue and likely to trigger
32 skip clangd alreadyresolved if too slow.patch | (download)

ycmd/tests/clangd/subcommands_test.py | 9 8 + 1 - 0 !
1 file changed, 8 insertions(+), 1 deletion(-)

 skip clangd alreadyresolved test if too slow
 Most architectures run this test just fine, but Upstream considers this
 test already flaky applying a WithRetry to it, which re-runs the rest 20
 times. That tends to be enough even for the slower architectures like
 armel, but not always, and so this test is too flaky to be used.
 .
 I keep it enabled for machines identifying as x86_64 through so it is
 run at least somewhere completely and of course every architecture can
 be (more or less) lucky and succeed the first time.
 .
 Ideally upstream would resolve the underlying problem through.
33 skip gopls problems.patch | (download)

ycmd/tests/go/subcommands_test.py | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 skip gopls problem tests in debian
 In an earlier version of this patch we were skipping the
 tests as they "mysteriously" failed. Now upstream fixed them,
 but the fix is testing that gopls has a particular bug.
 Upstream hardcodes the gopls version they use, we don't,
 so lets hope gopls resolves that issue, and don't block
 the fix if they do so by having a test failure then.
40 support text document sync kind.patch | (download)

ycmd/completers/language_server/language_server_completer.py | 27 17 + 10 - 0 !
1 file changed, 17 insertions(+), 10 deletions(-)

 support textdocumentsync: kind as well as options
 ycmd supports the Options dict value, but while actually referring
 to being also potentially an int in a comment, its not supported.
 .
 This commit changes the default value to None instead of Full
 as the specification defines and sends the notification for both
 possible values also actually using the _sync_type value
 previously set.
 .
 I don't see a reference being made to 'Full' vs 'Incremental' in
 the code, so I pretend I didn't notice and let ycmd do its thing
 as before.
 .
 Tested with fortran-language-server as defined in lsp-examples
 which does not update the diagnostics on save as advertised
 otherwise. Upstream has a pull request actually to use the
 Options value supported by ycmd currently, but it might not be
 the only server following the spec which still allows it.
 .
 For upstreaming this should come with a test, but sadly the existing
 code had no tests for it either.
References: https://github.com/hansec/fortran-language-server/pull/183
 https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_synchronization
45 as core version.patch | (download)

CORE_VERSION | 2 1 + 1 - 0 !
README.md | 9 2 + 7 - 0 !
ycmd/tests/utils_test.py | 3 3 + 0 - 0 !
ycmd/utils.py | 29 0 + 29 - 0 !
4 files changed, 6 insertions(+), 37 deletions(-)

 remove core_version handling as debian has dependencies
 Upstream bumps the CORE_VERSION whenever it wants to ensure that the
 user rebuilds the C++ library parts as a user can pull updates for the
 python parts, but not apply them for the C++ parts with a rebuild.
 .
 In Debian we don't need this, we can just ship a new version of the
 package and the users will have the updated core, no need for manual
 intervention, as that situation can not arise.
 .
 We do keep the CORE_VERSION for its other job through: Keeping in touch
 with the editor parts (vim-youcompleteme), but with virtual provides
 we are a lot more relaxed about versions working together than upstream
 is to avoid forcing needless lockstep upgrades.
50 provide generic ycm extra conf py.patch | (download)

.ycm_extra_conf.py | 51 9 + 42 - 0 !
ycmd/default_settings.json | 2 1 + 1 - 0 !
2 files changed, 10 insertions(+), 43 deletions(-)

 this patch converts projets ycm_extra_conf.py to a generic
 configuration for semantic completion. This patch also sets global
 ycm_extra_conf in default_settings.json
51 prepare for Debian default LSP completers.patch | (download)

ycmd/server_state.py | 17 15 + 2 - 0 !
1 file changed, 15 insertions(+), 2 deletions(-)

 prepare for default lsp completers set by debian
 Debian ships some LSP completers we can enable out of the box for
 easier access even if upstream doesn't official support them and
 only provides some unofficial instructions via
 https://github.com/ycm-core/lsp-examples
 .
 This patch add just the infrastructure, the LSP completers are
 added individually in later patches.
60 support ccls as builtin lsp.patch | (download)

ycmd/completers/c/hook.py | 14 1 + 13 - 0 !
ycmd/completers/cpp/clang_completer.py | 5 5 + 0 - 0 !
ycmd/completers/cpp/hook.py | 5 3 + 2 - 0 !
ycmd/completers/cuda/hook.py | 14 1 + 13 - 0 !
ycmd/completers/objc/hook.py | 14 1 + 13 - 0 !
ycmd/completers/objcpp/hook.py | 14 1 + 13 - 0 !
ycmd/default_settings.json | 1 1 + 0 - 0 !
ycmd/server_state.py | 6 6 + 0 - 0 !
ycmd/tests/clang/debug_info_test.py | 16 14 + 2 - 0 !
9 files changed, 33 insertions(+), 56 deletions(-)

 allow ccls to be used as c/c++ completer
 ycmd supports language servers via a common protocol,
 but as Debian's packaging is built with libclang-based
 completer enabled which can't be disabled upstream as in
 that case you would just built it without support we add
 a user option to disable it and hence allow the use of ccls
 as the third option for C/C++ completer
61 support fortran language server as builtin lsp.patch | (download)

ycmd/server_state.py | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 adds fortran language server to default set
62 support gdscript godot as builtin lsp.patch | (download)

ycmd/server_state.py | 6 6 + 0 - 0 !
1 file changed, 6 insertions(+)

 adds godot (gdscript) language server to default set
63 support debputy as builtin lsp.patch | (download)

ycmd/server_state.py | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 adds debian/ (debputy) language server to default set