Skip to content

GLSP-1682: Align repository with glsp-core and modernize the client toolchain - #148

Merged
tortmayr merged 3 commits into
masterfrom
glsp-core-alignment
Sep 17, 2026
Merged

tortmayr merged 3 commits into
masterfrom
glsp-core-alignment

Conversation

@tortmayr

Copy link
Copy Markdown
Contributor

What it does

Aligns this repository with glsp-core: the agent setup the other repositories
already share, and the client toolchain that @eclipse-glsp/dev now provides.
@eclipse-glsp/eslint-config stopped at 2.9.0-next.1 and is no longer part of the
meta package, so the ESLint/Prettier setup would otherwise freeze where it is.

Agent setup

  • Replace the generated "Repository Guidelines" in AGENTS.md with the minimal
    bullet form the other repos use: only what is not derivable from the code, such as
    the client/server split and the copy:client step the example plugin depends on.
    CLAUDE.md only imports it, and client/CLAUDE.md is dropped — its @AGENTS.md
    import pointed at a file that never existed
  • Extend the /fix skill to both halves: the client workspace and the Maven build
    with the checkstyle summary, mirroring the CI split that collects violations
    instead of aborting at validate
  • Mirror both skills under .agents for agents that do not read .claude, and stop
    the changelog skill from being invoked implicitly
  • Point README and CONTRIBUTING at glsp-core instead of glsp-client

Client toolchain

  • Node 24 and pnpm 12, with the workflows moved to node-version: 24 and
    pnpm/action-setup v6.1.0 (first version that can install pnpm 12)
  • oxlint and oxfmt replace ESLint and Prettier: two new configs; .prettierrc,
    eslint.config.mjs, tsconfig.eslint.json and the per-package lint scripts are
    gone. oxlint type-checks the same program it lints, so pnpm lint needs no prior
    build, and the CI lint job emits inline annotations plus a summary table through
    lint-report.mjs instead of routing ESLint JSON through a third-party converter
  • TypeScript 7.0, and the GLSP dependencies pinned to the current next versions as
    in the theia and vscode repositories
  • Editor configuration points at the oxc extension and the TypeScript native preview,
    since the TypeScript 7 package ships no tsserver

Also:

  • Exclude .claude/** and .agents/** from the CI triggers and tidy the agent
    entries in .gitignore

Part of: eclipse-glsp/glsp#1682

How to test

cd client
pnpm install
pnpm check:all   # build + oxlint (incl. type check) + oxfmt --check + headers
  • Verified locally: pnpm check:all passes end to end (build, lint, format check, and the header check across the TS and Java sources)
  • Verified locally: oxlint reports TypeScript diagnostics and missing copyright headers (checked with a deliberately broken probe file)
  • Verified locally: pnpm copy:client still copies the bundle into the workflow editor plugin
  • The Maven/Tycho server build was not run locally (unchanged by this PR); CI (Server) covers it

Follow-ups

  • The next pins are snapshots (2.9.0-next.3 / 2.9.0-next.4); pnpm upgrade:next refreshes them before the next release.
  • glsp-core additionally carries a "Contributing code / human-in-the-loop" section in
    CONTRIBUTING.md that none of the integration repositories have yet — worth aligning
    across all repos in a separate PR.

Changelog

  • This PR should be mentioned in the changelog
  • This PR introduces a breaking change (if yes, provide more details below for the changelog and the migration guide)

- Replace the generated "Repository Guidelines" in AGENTS.md with the
  minimal bullet form the other repos use: only what is not derivable
  from the code, such as the client/server split and the copy:client
  step the example plugin depends on. CLAUDE.md now only imports it,
  and client/CLAUDE.md is dropped, its @AGENTS.md import pointed at a
  file that never existed
- Extend the /fix skill to both halves: the client workspace and the
  Maven build with the checkstyle summary, mirroring the CI split that
  collects violations instead of aborting at validate
- Mirror both skills under .agents for agents that do not read .claude
  and stop the changelog skill from being invoked implicitly
- Point README and CONTRIBUTING at glsp-core instead of glsp-client
- Exclude .claude/** and .agents/** from the CI triggers and tidy the
  agent entries in .gitignore

Part of: eclipse-glsp/glsp#1682
The client tooling is provided by @eclipse-glsp/dev, which now comes
from glsp-core and ships oxlint and oxfmt instead of ESLint and
Prettier. @eclipse-glsp/eslint-config stopped at 2.9.0-next.1 and is no
longer part of the meta package, so the ESLint setup would freeze where
it is.

- Move the workspace to Node 24 and pnpm 12, and with it the workflows
  to node-version 24 and pnpm/action-setup v6.1.0, which is the first
  version that can install pnpm 12
- Replace ESLint and Prettier with oxlint and oxfmt: add the two
  configs, drop .prettierrc, eslint.config.mjs, tsconfig.eslint.json and
  the per-package lint scripts. oxlint type-checks the same program it
  lints, so `pnpm lint` no longer needs a prior build, and the CI lint
  job emits annotations and a summary table through lint-report.mjs
  instead of routing the ESLint JSON through a third-party converter
- Update TypeScript to 7.0 and pin the GLSP dependencies to the current
  next versions, matching the other integration repositories
- Point the editor configuration at the oxc extension and the TypeScript
  native preview, since the TypeScript 7 package ships no tsserver

Part of: eclipse-glsp/glsp#1682
`.vscode/**` is anchored at the repository root, so the client workspace
keeps its own `client/.vscode` out of reach of the filter and every
change to it starts a full client and server build.

Part of: eclipse-glsp/glsp#1682
@tortmayr
tortmayr merged commit 4d69ef9 into master Sep 17, 2026
4 checks passed
@tortmayr
tortmayr deleted the glsp-core-alignment branch September 17, 2026 12:39
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.

1 participant