Skip to content

feat: Resolve latest LSP version from Maven Central#127

Merged
yasmewad merged 1 commit into
smithy-lang:mainfrom
yasmewad:yasmewad/use-latest-lsp-release
Apr 24, 2026
Merged

feat: Resolve latest LSP version from Maven Central#127
yasmewad merged 1 commit into
smithy-lang:mainfrom
yasmewad:yasmewad/use-latest-lsp-release

Conversation

@yasmewad
Copy link
Copy Markdown
Contributor

The extension currently pins a specific language server version (0.8.0) as the default. Each time the Smithy Language Server is published to Maven Central, a new extension release is needed just to bump this default creating a bottleneck that has left users running a 6-month-old server despite multiple upstream improvements landing on main.

This change sets the default smithy.server.version to latest.release, which Coursier resolves to the newest published version on Maven Central at startup. Users get LSP updates as soon as they're published, without waiting for an extension release. Anyone who needs a pinned version can still set smithy.server.version explicitly in their editor settings.

The net effect is that the release chain goes from three manual steps (LSP release → extension bump → extension publish) to one (LSP release). The Smithy LSP release process to Maven central will still remain manual to prevent any quality issues.

In case users want, they can still pin a specific version via the smithy.server.version setting in vscode like :

{
    "smithy.server.version": "0.8.0"
}

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Change the default smithy.server.version from a pinned version to
latest.release, which Coursier resolves to the newest published
version on Maven Central. This eliminates the need for an extension
release each time the language server is updated.

Users can still pin a specific version via the smithy.server.version
setting.
@yasmewad yasmewad requested a review from a team as a code owner April 24, 2026 07:32
@yasmewad yasmewad requested a review from milesziemer April 24, 2026 07:32
@yasmewad yasmewad merged commit ccc11b4 into smithy-lang:main Apr 24, 2026
1 check passed
@yasmewad yasmewad deleted the yasmewad/use-latest-lsp-release branch April 24, 2026 16:44
yasmewad added a commit to yasmewad/smithy-vscode that referenced this pull request May 6, 2026
PR smithy-lang#127 switched the default `smithy.server.version` from a
pinned version to `latest.release`. Users upgrading have no way
to discover this change or opt out without knowing the setting
name.

On first activation, a one-time notification offers "Use latest"
or "Pin a version." Choosing to pin opens a QuickPick populated
from Maven Central's `maven-metadata.xml`. A persistent status
bar item shows the active version (`Smithy LS (latest)` or
`Smithy LS v0.8.0`) and lets users switch on click. Status bar
text follows VS Code UX guidelines for short labels; full
"Smithy Language Server" naming appears in tooltips,
notifications, and the QuickPick title.

A `smithy.toggleVersionPolicy` command is registered in
`package.json` as "Smithy: Change Language Server Version" for
command palette access.
yasmewad added a commit to yasmewad/smithy-vscode that referenced this pull request May 6, 2026
PR smithy-lang#127 switched the default `smithy.server.version` from a
pinned version to `latest.release`. Users upgrading have no way
to discover this change or opt out without knowing the setting
name.

On first activation, a one-time notification offers "Use latest"
or "Pin a version." Choosing to pin opens a QuickPick populated
from Maven Central's `maven-metadata.xml`. A persistent status
bar item shows the active version (`Smithy LS (latest)` or
`Smithy LS v0.8.0`) and lets users switch on click. Status bar
text follows VS Code UX guidelines for short labels; full
"Smithy Language Server" naming appears in tooltips,
notifications, and the QuickPick title.

A `smithy.toggleVersionPolicy` command is registered in
`package.json` as "Smithy: Change Language Server Version" for
command palette access.
yasmewad added a commit to yasmewad/smithy-vscode that referenced this pull request May 7, 2026
PR smithy-lang#127 switched the default `smithy.server.version` from a
pinned version to `latest.release`. Users upgrading have no way
to discover this change or opt out without knowing the setting
name.

On first activation, a one-time notification offers "Use latest"
or "Pin a version." Choosing to pin opens a QuickPick populated
from Maven Central's `maven-metadata.xml`. A persistent status
bar item shows the active version (`Smithy LS (latest)` or
`Smithy LS v0.8.0`) and lets users switch on click. Status bar
text follows VS Code UX guidelines for short labels; full
"Smithy Language Server" naming appears in tooltips,
notifications, and the QuickPick title.

A `smithy.toggleVersionPolicy` command is registered in
`package.json` as "Smithy: Change Language Server Version" for
command palette access.
yasmewad added a commit that referenced this pull request May 18, 2026
PR #127 switched the default `smithy.server.version` from a
pinned version to `latest.release`. Users upgrading have no way
to discover this change or opt out without knowing the setting
name.

On first activation, a one-time notification offers "Use latest"
or "Pin a version." Choosing to pin opens a QuickPick populated
from Maven Central's `maven-metadata.xml`. A persistent status
bar item shows the active version (`Smithy LS (latest)` or
`Smithy LS v0.8.0`) and lets users switch on click. Status bar
text follows VS Code UX guidelines for short labels; full
"Smithy Language Server" naming appears in tooltips,
notifications, and the QuickPick title.

A `smithy.toggleVersionPolicy` command is registered in
`package.json` as "Smithy: Change Language Server Version" for
command palette access.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants