tsl-devkit/docs/superpowers/plans/2026-05-24-conan-dependency...

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.0 taskflow/3.10.0 -> taskflow/4.0.0

  • Leave spdlog/1.17.0, fmt/12.1.0, and tree-sitter/0.25.9 unchanged 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 glaze breakages, update serialization/meta/JSON-RPC call sites to the current glaze/7.4.0 API with the smallest possible diff

  • For taskflow breakages, update executor/task API usage to the taskflow/4.0.0 API 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, and test_semantic_script still fail on existing TSF fixture parse/load errors under lsp-server/test/test_tree_sitter/test. Dependency-focused targets test_lsp_any, test_provider, and test_scheduler pass.