Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .changeset/broad-node-runtime-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
"@codegraphy-dev/core": major
"@codegraphy-dev/extension": minor
"@codegraphy-dev/extension-plugin-api": major
"@codegraphy-dev/graph-renderer": minor
"@codegraphy-dev/plugin-api": major
"@codegraphy-dev/plugin-godot": major
"@codegraphy-dev/plugin-markdown": major
"@codegraphy-dev/plugin-particles": minor
"@codegraphy-dev/plugin-svelte": minor
"@codegraphy-dev/plugin-typescript": major
"@codegraphy-dev/plugin-unity": minor
"@codegraphy-dev/plugin-vue": minor
"@codegraphy-dev/tldraw": minor
---

Node.js 20 is no longer supported. Upgrade to Node.js `^22.14.0 || >=23.6.0` before
updating CodeGraphy Core, interfaces, APIs, or plugins. Newer Node.js releases
remain supported because these packages do not set a maximum version.

The VS Code extension now requires VS Code 1.101 or newer. Extension users do
not need to install Node.js separately because VS Code supplies the Extension
host runtime.
9 changes: 9 additions & 0 deletions .changeset/clean-tree-sitter-runtime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@codegraphy-dev/core": patch
"@codegraphy-dev/extension": patch
"@codegraphy-dev/tldraw": patch
---

Use Tree-sitter's upstream prebuilt runtime on Node.js `^22.14.0 || >=23.6.0`.
Language analysis is unchanged, and CodeGraphy no longer needs its temporary
native-build patch.
7 changes: 7 additions & 0 deletions .changeset/slim-vsix-runtime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@codegraphy-dev/extension": patch
---

Reduce the platform-specific extension install size by approximately 85%
without removing supported languages, built-in plugins, Graph View assets, or
native runtime capabilities.
18 changes: 9 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -124,7 +124,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -161,7 +161,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -202,7 +202,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -377,7 +377,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -467,7 +467,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -515,7 +515,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down Expand Up @@ -559,7 +559,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: 'pnpm'

- name: Install dependencies
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: pnpm
registry-url: https://registry.npmjs.org

Expand Down Expand Up @@ -101,7 +101,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.22.0
node-version: 'lts/*'
cache: pnpm
registry-url: https://registry.npmjs.org

Expand Down
1 change: 0 additions & 1 deletion .node-version

This file was deleted.

1 change: 0 additions & 1 deletion .nvmrc

This file was deleted.

7 changes: 3 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@ CodeGraphy accepts focused changes through pull requests against `main`.

### Prerequisites

- Node.js 20 through 22; use the repository-pinned Node 22 runtime
- Node.js `^22.14.0 || >=23.6.0`; use an active LTS release
- pnpm 10+
- VS Code 1.85+
- VS Code 1.101+

### Getting started

1. Fork and clone the repository.
2. Install dependencies:
```bash
nvm use
pnpm install
```
3. Build the project:
Expand Down Expand Up @@ -111,7 +110,7 @@ pnpm --filter @codegraphy-dev/extension exec playwright install chromium # Brow
pnpm --filter @codegraphy-dev/extension exec vitest run --config vitest.config.ts tests/path/to/file.test.ts
```

The repo pins Node in [`.nvmrc`](./.nvmrc) and [`.node-version`](./.node-version). Use that exact runtime before running release or quality-tool commands.
Use an active Node.js LTS release for repository development, release, and quality-tool commands. Published packages require Node.js `^22.14.0 || >=23.6.0` and do not set a maximum version.

## Reporting bugs

Expand Down
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,19 @@ CodeGraphy indexes a folder and projects its files and declarations into Nodes.
3. Open CodeGraphy from the Activity Bar.
4. Select **Index Workspace** to add semantic Relationships to the initial file graph.

CodeGraphy requires VS Code 1.101 or newer. Extension users do not need to
install Node.js separately because VS Code provides the Extension host runtime.
If you use an older VS Code release, update VS Code before you update
CodeGraphy.

The extension publishes native runtime targets for Linux x64, macOS Apple Silicon, and Windows x64. It bundles Core plus baseline analysis for JavaScript, TypeScript, TSX, Python, Go, Haskell, Java, Kotlin, Lua, PHP, Ruby, Rust, Swift, Dart, C#, C, C++, Objective-C, Scala, and Pascal. Markdown analysis ships as a bundled plugin that starts enabled in new workspaces.

### CLI and Plugins

The terminal CLI supports Node.js 20 through 22. Node 22 LTS is recommended.
The CLI, plugins, and interface packages require Node.js `^22.14.0 || >=23.6.0`.
Node.js 20 is not supported. Upgrade Node.js before you update these npm
packages. An active LTS release is recommended, and CodeGraphy does not set a
maximum Node.js version.

```bash
npm install -g @codegraphy-dev/core
Expand Down Expand Up @@ -102,8 +110,8 @@ codegraphy -C /path/to/workspace index

### tldraw Offline

The first tldraw interface supports macOS and Node.js 20 through 22. Node.js 22
LTS is recommended. Install the
The first tldraw interface supports macOS and Node.js `^22.14.0 || >=23.6.0`. An active
LTS release is recommended. Install the
[tldraw offline desktop app](https://www.tldraw.com/), Core, and the interface.
Then run the launcher from the workspace to index:

Expand Down
2 changes: 1 addition & 1 deletion apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"private": true,
"type": "module",
"engines": {
"node": ">=20"
"node": "^22.14.0 || >=23.6.0"
},
"scripts": {
"dev": "next dev",
Expand Down
6 changes: 5 additions & 1 deletion docs/PLUGINS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ has a small API for the behavior that it owns.
- [`@codegraphy-dev/extension-plugin-api`](../packages/extension-plugin-api/README.md)
extends the VS Code extension and Graph View.

Core, Core plugins, Extension plugins, and interface packages require Node.js
`^22.14.0 || >=23.6.0`. Node.js 20 is not supported. Upgrade Node.js before you
update these npm packages. CodeGraphy does not set a maximum Node.js version.

## The basic model

There are three separate steps:
Expand Down Expand Up @@ -231,7 +235,7 @@ Keep one package-owned `build` command. A small Core plugin can use:
```json
{
"scripts": {
"build": "tsc -p tsconfig.build.json && esbuild src/plugin.ts --bundle --platform=node --format=esm --target=node20 --outfile=dist/plugin.js"
"build": "tsc -p tsconfig.build.json && esbuild src/plugin.ts --bundle --platform=node --format=esm --target=node22 --outfile=dist/plugin.js"
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion docs/RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The root package version stays pinned as monorepo workspace metadata. `scripts/r

## Prepare a Release

Use a clean checkout of `main` with the repository-pinned Node and pnpm versions.
Use a clean checkout of `main` with an active Node.js LTS release and the repository-pinned pnpm version.

```bash
pnpm install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion docs/quality/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Implementation now lives in the external `@poleski/quality-tools` package.

Extension-specific architecture and lifecycle notes live in `packages/extension/docs/`.

Run these commands with the repository-pinned Node runtime from [`.nvmrc`](../../.nvmrc). `@poleski/quality-tools` uses `path.matchesGlob` and requires Node 20 or newer.
Run these commands with an active Node.js LTS release. `@poleski/quality-tools` requires Node 22.22.0 or newer.

## Workflow

Expand Down
3 changes: 3 additions & 0 deletions examples/example-javascript/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{
"name": "codegraphy-javascript-example",
"private": true,
"engines": {
"node": "^22.14.0 || >=23.6.0"
},
"type": "module"
}
3 changes: 3 additions & 0 deletions examples/example-svelte/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"name": "codegraphy-svelte-example",
"private": true,
"engines": {
"node": "^22.14.0 || >=23.6.0"
},
"version": "0.0.0",
"type": "module",
"scripts": {
Expand Down
3 changes: 3 additions & 0 deletions examples/example-typescript/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"name": "codegraphy-typescript-example",
"private": true,
"engines": {
"node": "^22.14.0 || >=23.6.0"
},
"scripts": {
"start": "tsx src/index.ts",
"build": "tsc --noEmit"
Expand Down
3 changes: 3 additions & 0 deletions examples/example-vue/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"name": "codegraphy-vue-example",
"private": true,
"engines": {
"node": "^22.14.0 || >=23.6.0"
},
"version": "0.0.0",
"type": "module",
"scripts": {
Expand Down
43 changes: 29 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,29 +51,44 @@
"url": "https://github.com/joesobo/CodeGraphyV4/issues"
},
"engines": {
"node": ">=20",
"vscode": "^1.85.0"
"node": "^22.14.0 || >=23.6.0",
"vscode": "^1.101.0"
},
"files": [
"dist/**",
"dist/extension.js",
"dist/node_modules/**",
"dist/webview/index.css",
"dist/webview/index.js",
"dist/webview/index.wasm",
"assets/**",
"packages/plugin-godot/assets/**",
"packages/plugin-godot/dist/**",
"packages/plugin-godot/assets/godot.svg",
"packages/plugin-godot/dist/extension.js",
"packages/plugin-godot/dist/plugin.js",
"packages/plugin-godot/LICENSE",
"packages/plugin-godot/package.json",
"packages/plugin-markdown/dist/**",
"packages/plugin-markdown/dist/plugin.js",
"packages/plugin-markdown/LICENSE",
"packages/plugin-markdown/package.json",
"packages/plugin-particles/dist/**",
"packages/plugin-particles/dist/plugin.js",
"packages/plugin-particles/dist/node_modules/**",
"packages/plugin-particles/dist/webview.js",
"packages/plugin-particles/LICENSE",
"packages/plugin-particles/package.json",
"packages/plugin-svelte/dist/**",
"packages/plugin-svelte/dist/plugin.js",
"packages/plugin-svelte/LICENSE",
"packages/plugin-svelte/package.json",
"packages/plugin-typescript/dist/**",
"packages/plugin-typescript/dist/plugin.js",
"packages/plugin-typescript/LICENSE",
"packages/plugin-typescript/package.json",
"packages/plugin-unity/assets/**",
"packages/plugin-unity/dist/**",
"packages/plugin-unity/assets/NOTICE.md",
"packages/plugin-unity/assets/unity.svg",
"packages/plugin-unity/dist/extension.js",
"packages/plugin-unity/dist/plugin.js",
"packages/plugin-unity/LICENSE",
"packages/plugin-unity/package.json",
"packages/plugin-vue/dist/**",
"packages/plugin-vue/dist/plugin.js",
"packages/plugin-vue/LICENSE",
"packages/plugin-vue/package.json",
"docs/**",
"README.md",
"CONTRIBUTING.md",
"LICENSE"
Expand Down Expand Up @@ -224,7 +239,7 @@
"@next/eslint-plugin-next": "^16.2.9",
"@poleski/quality-tools": "0.2.1",
"@types/node": "^20.11.0",
"@types/vscode": "^1.85.0",
"@types/vscode": "^1.101.0",
"@vitest/coverage-istanbul": "^3.2.4",
"@vscode/vsce": "^3.7.1",
"esbuild": "^0.25.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Shared CodeGraphy engine package for workspace indexing, Graph Cache access, plu

This package is the headless core used by the VS Code extension and CLI.

The published CLI currently supports Node.js 20 through 22; Node 22 LTS is recommended. Node 23 and newer require an upstream Tree-sitter native build that is not yet available to npm consumers.
The published CLI supports Node.js `^22.14.0 || >=23.6.0`. An active Long-Term Support release is recommended.

The VS Code extension bundles this package for extension runtime behavior. Users install `@codegraphy-dev/core` globally only when they want terminal workflows such as Indexing, diagnostics, graph queries, Graph Scope and filter configuration, plugin registration, or workspace plugin enablement.

Expand Down
4 changes: 2 additions & 2 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
}
},
"engines": {
"node": ">=20 <23"
"node": "^22.14.0 || >=23.6.0"
},
"publishConfig": {
"access": "public"
Expand All @@ -54,7 +54,7 @@
"@tree-sitter-grammars/tree-sitter-lua": "0.4.1",
"libsql": "0.5.29",
"minimatch": "^10.2.5",
"tree-sitter": "^0.25.0",
"tree-sitter": "^0.25.1",
"tree-sitter-c": "0.24.1",
"tree-sitter-c-sharp": "0.23.1",
"tree-sitter-cpp": "0.23.4",
Expand Down
Loading