3.8 KiB
Conan Dependency Upgrade Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Upgrade lsp-server Conan dependencies to the latest versions available on ConanCenter and adapt the project until it builds and passes targeted verification.
Architecture: Treat ConanCenter as the version authority for this task. Update only the versions that have newer published recipes, regenerate the build with the existing profiles, and make the smallest necessary source/build changes to restore compatibility. Keep unchanged packages pinned when ConanCenter has no newer recipe.
Tech Stack: Conan 2, CMake 4.2, Ninja, Clang toolchain, C++23 Modules
Plan Meta
- Plan Group: deps-upgrade
- Parent Plan: none
- Verification Scope: local
- Verification Gate: must-pass
Task 1: Update Conan dependency declarations
Files:
-
Modify:
lsp-server/conanfile.txt -
Confirm the latest ConanCenter recipes:
glaze/7.4.0,spdlog/1.17.0,fmt/12.1.0,taskflow/4.0.0,tree-sitter/0.25.9 -
Update
lsp-server/conanfile.txt:glaze/7.0.2 -> glaze/7.4.0taskflow/3.10.0 -> taskflow/4.0.0 -
Leave
spdlog/1.17.0,fmt/12.1.0, andtree-sitter/0.25.9unchanged because ConanCenter does not expose newer recipes
Task 2: Regenerate dependencies and capture compatibility failures
Files:
-
Modify:
lsp-server/build/clang-linux/Release/**(generated) -
Inspect:
lsp-server/src/** -
Inspect:
lsp-server/test/** -
Run Conan install with the existing Linux Clang profile:
CONAN_HOME=/tmp/conan-home conan install lsp-server \
-pr:h=lsp-server/conan/profiles/linux-x86_64-clang \
-pr:b=lsp-server/conan/profiles/linux-x86_64-clang \
-of lsp-server/build/clang-linux/Release \
--build=missing
- Reconfigure the existing build directory:
cmake -S lsp-server -B lsp-server/build/clang-linux/Release -G Ninja \
-DCMAKE_TOOLCHAIN_FILE=$PWD/lsp-server/build/clang-linux/Release/generators/conan_toolchain.cmake \
-DBUILD_TESTS=ON
- Build to identify required source-level adaptations:
cmake --build lsp-server/build/clang-linux/Release
Task 3: Adapt code only where the upgraded APIs require it
Files:
-
Modify: exact files reported by the build, likely under
lsp-server/src/bridge/,lsp-server/src/codec/,lsp-server/src/core/, or related test targets -
For
glazebreakages, update serialization/meta/JSON-RPC call sites to the currentglaze/7.4.0API with the smallest possible diff -
For
taskflowbreakages, update executor/task API usage to thetaskflow/4.0.0API with the smallest possible diff -
Rebuild after each focused fix until the full build succeeds:
cmake --build lsp-server/build/clang-linux/Release
Task 4: Run targeted verification and summarize the upgrade result
Files:
-
Verify:
lsp-server/conanfile.txt -
Verify: any source files touched in Task 3
-
Run dependency-focused tests:
ctest --test-dir lsp-server/build/clang-linux/Release \
-R 'test_ast|test_provider|test_semantic|test_symbol|test_scheduler' \
--output-on-failure
- Run whitespace / patch hygiene check:
git -c core.trustctime=false -c core.checkStat=minimal diff --check
- Report three facts in the final handoff: upgraded versions, any compatibility edits made, and the exact verification commands that passed
Known residual verification:
test_ast_script,test_symbol_script, andtest_semantic_scriptstill fail on existing TSF fixture parse/load errors underlsp-server/test/test_tree_sitter/test. Dependency-focused targetstest_lsp_any,test_provider, andtest_schedulerpass.