Skip to content

Work with dune 3.25 and lsp 1.28 - #9295

Merged
cknitt merged 2 commits into
masterfrom
dune-3-25
Nov 13, 2026
Merged

cknitt merged 2 commits into
masterfrom
dune-3-25

Conversation

@cknitt

@cknitt cknitt commented Nov 12, 2026 •

Copy link
Copy Markdown
Member

dune 3.25.0 was released today (2026-11-12). The next fresh resolve of the OPAM environments, which any change of the opam files triggers, picks it up and breaks two CI jobs (seen on #9294, whose test commit changed an opam file):

  • Third-party license check (build-compiler, linux-x64): since 3.25, dune describe workspace reports an executable's public name instead of its private one when it has one (dune #15582). scripts/generateThirdPartyLicenses.js matched the private names, found none of the shipped executables and failed. It now accepts either name for each executable. The new --split-public-names flag would be cleaner, but dune 3.24 rejects it.
  • Coverage: the dev setup installs ocaml-lsp-server, held at 1.27.0 because Fix the master build by requiring lsp below 1.28 #9234 pinned lsp to 1.27.0, and 1.27.0 doesn't build against stdune 3.25 (Unix_env.get now takes an Env.Var.t).

lsp was pinned because 1.28 added snippet text edits (SnippetTextEdit) to a text document edit, which the closed type annotation in the analysis CLI's edit printing (analysis/src/cli.ml) didn't accept. The CLI now prints them like the other two kinds, and lsp and jsonrpc move to 1.28.1; the other Lsp.Types changes in 1.28 (new optional fields of CodeAction and Command) don't affect analysis, which builds those with create. The dev setup then gets ocaml-lsp-server 1.28.1. The third-party license notices list the new versions; the license text is unchanged.

Since this PR changes the opam files, its own CI resolves the environments from scratch with dune 3.25 and lsp 1.28.1.

The benchmarks job fails on this PR, and only on it: it builds the base branch's compiler in this PR's environment, and master's analysis/src/cli.ml doesn't compile against lsp 1.28.1 (the incompatibility fixed here). The job isn't required, and once this is merged, the base builds again.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Kbf3gGPsF3fHZn9rBxA7Hm

dune 3.25.0 (released 2026-11-12) gives an executable its public name in
`dune describe workspace`, so the license check found none of the shipped
executables; it now accepts either name. ocaml-lsp-server 1.27.0, which the
lsp pin holds the dev setup to, doesn't build against stdune 3.25, so the dev
setup keeps stdune below it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kbf3gGPsF3fHZn9rBxA7Hm
Signed-off-by: Christoph Knittel <ck@cca.io>
@cknitt cknitt added the changelog:skip No release notes needed label Nov 12, 2026
@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Changelog

No changelog entry.

Semantic Diff

2 commits · Full page

Work with dune 3.25

d2996dc · cknitt + Claude · Nov 12, 2026, 20:44 UTC

dune 3.25.0 (released 2026-11-12) gives an executable its public name in dune describe workspace, so the license check found none of the shipped executables; it now accepts either name. ocaml-lsp-server 1.27.0, which the lsp pin holds the dev setup to, doesn't build against stdune 3.25, so the dev setup keeps stdune below it.

✨ Move to lsp 1.28 instead of bounding stdune

bb03256 · cknitt + Claude · Nov 12, 2026, 20:48 UTC · new

lsp was pinned to 1.27.0 because 1.28 added snippet text edits, which the analysis CLI's edit printing didn't accept; it prints them now. lsp and jsonrpc move to 1.28.1, so the dev setup gets ocaml-lsp-server 1.28.1 instead of 1.27.0, and the stdune bound for it goes.

lsp was pinned to 1.27.0 because 1.28 added snippet text edits, which the
analysis CLI's edit printing didn't accept; it prints them now. lsp and
jsonrpc move to 1.28.1, so the dev setup gets ocaml-lsp-server 1.28.1
instead of 1.27.0, and the stdune bound for it goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kbf3gGPsF3fHZn9rBxA7Hm
Signed-off-by: Christoph Knittel <ck@cca.io>
@cknitt cknitt changed the title Work with dune 3.25 Work with dune 3.25 and lsp 1.28 Nov 12, 2026
@github-actions

Copy link
Copy Markdown

⚠️ Compiler benchmarks

The benchmarks couldn't run for pull request bb03256; the run shows why.

@codecov

codecov Bot commented Nov 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 81.99%. Comparing base (469d677) to head (bb03256).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
analysis/src/cli.ml 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9295      +/-   ##
==========================================
- Coverage   81.99%   81.99%   -0.01%     
==========================================
  Files         455      455              
  Lines       65653    65654       +1     
==========================================
  Hits        53833    53833              
- Misses      11820    11821       +1     
Files with missing lines Coverage Δ
analysis/src/cli.ml 80.00% <0.00%> (-0.32%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pkg-pr-new

pkg-pr-new Bot commented Nov 12, 2026

Copy link
Copy Markdown

Open in StackBlitz

rescript

npm i https://pkg.pr.new/rescript@9295

@rescript/belt

npm i https://pkg.pr.new/@rescript/belt@9295

@rescript/darwin-arm64

npm i https://pkg.pr.new/@rescript/darwin-arm64@9295

@rescript/linux-arm64

npm i https://pkg.pr.new/@rescript/linux-arm64@9295

@rescript/linux-x64

npm i https://pkg.pr.new/@rescript/linux-x64@9295

@rescript/runtime

npm i https://pkg.pr.new/@rescript/runtime@9295

@rescript/win32-x64

npm i https://pkg.pr.new/@rescript/win32-x64@9295

commit: bb03256

@cknitt
cknitt marked this pull request as ready for review November 13, 2026 07:12
@cknitt
cknitt merged commit 7f416af into master Nov 13, 2026
21 of 22 checks passed
@cknitt
cknitt deleted the dune-3-25 branch November 13, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog:skip No release notes needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants