Skip to content

lsp-types upstream (gluon-lang) is unmaintained; ls-types fork is the maintained successor #297

Description

@bug-ops

Description

mcpls's workspace Cargo.toml pins lsp-types = "0.97", sourced from the gluon-lang/lsp-types crate. This crate underlies all LSP type modeling used across crates/mcpls-core/src/lsp/ and crates/mcpls-core/src/bridge/, including the critical position-encoding path (bridge/encoding.rs).

gluon-lang/lsp-types has had no commits since 2024-06-04 (over 2 years stale) and carries 46 open issues. It is not archived, but shows no maintenance activity.

tower-lsp-community/tower-lsp-server — one of mcpls's own tracked reference projects — migrated away from it in release v0.23.0 (2025-12-07), stating verbatim: "Change the LSP specification types library from gluon-lang/lsp-types (which was unmaintained) to tower-lsp-community/ls-types (our fork)."

ls-types supports LSP 3.17 stable plus LSP 3.18 draft features behind a proposed feature flag — a path gluon-lang/lsp-types is unlikely to ever offer.

This is a supply-chain health finding, not an active security advisory — cargo deny check advisories is currently clean; no RUSTSEC entry exists for lsp-types yet.

Reproduction Steps

  1. grep lsp-types Cargo.tomllsp-types = "0.97"
  2. gh api repos/gluon-lang/lsp-types --jq '.archived,.pushed_at,.open_issues_count'false, last commit 2024-06-04, 46 open issues
  3. gh api repos/tower-lsp-community/ls-types --jq '.created_at' → fork created 2025-06-04
  4. See tower-lsp-server release notes: https://github.com/tower-lsp-community/tower-lsp-server/releases/tag/v0.23.0

Expected Behavior

mcpls's core LSP-type dependency should track an actively maintained upstream so bugfixes and future LSP 3.18 support continue to land.

Actual Behavior

mcpls depends on a dormant crate with no plan to adopt the maintained fork.

Environment

  • Version: main @ bc95b89
  • Cargo.lock: lsp-types 0.97.0

Spec

.local/specs/006-lsp-types-unmaintained-migration/spec.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium: suboptimal behavior, minor inconsistencydependenciesDependency updatesenhancementNew feature or requestmcpls-coremcpls-core crate changes

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions