Skip to content

Commit 46e1094

Browse files
Remove compile scripts and simplify bundling (#3227)
Remove separate compile-step assumptions in favor of a single source-driven build stage. * Internal libraries now expose source .ts entrypoints directly. * Tooling-only utilities used by Vite/Jest are split into dedicated config-facing subpath exports instead of being pulled through runtime barrels. * App packages remain responsible for producing the final bundled production artifacts. * Internal libraries are consumed directly from source TypeScript rather than requiring a prior library compile step. * Build/test tooling helpers are exposed through dedicated entrypoints so config loaders do not execute unrelated runtime barrels. * Application packages still perform the final asset/binary bundling for production.
1 parent f231bae commit 46e1094

163 files changed

Lines changed: 1316 additions & 1881 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/deploy.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ jobs:
2626
- name: Set up Node.js
2727
uses: ./.github/actions/setup-node
2828

29-
- name: Compile
30-
run: pnpm --color compile
31-
3229
- name: Build
3330
run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
3431
env:
@@ -67,9 +64,6 @@ jobs:
6764
- name: Set up Node.js
6865
uses: ./.github/actions/setup-node
6966

70-
- name: Compile
71-
run: pnpm --color compile
72-
7367
- name: Build
7468
run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
7569
env:

.github/workflows/test.yml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,6 @@ jobs:
7575
run: mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}" "${{ env.TEMP_DIR }}"
7676
shell: bash
7777

78-
- name: Compile
79-
run: pnpm --color compile
80-
8178
- name: Build
8279
run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
8380

@@ -105,15 +102,15 @@ jobs:
105102
run: pnpm -F @cursorless/test-harness test:talonJs
106103
if: runner.os != 'Linux'
107104

108-
- name: Run Cursorless-everywhere-talon tests (Linux)
105+
- name: Run QuickJS tests (Linux)
109106
run: xvfb-run -a pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
110107
if: runner.os == 'Linux' && matrix.app_version == 'stable'
111108

112-
- name: Run Cursorless-everywhere-talon tests (Win,Mac)
109+
- name: Run QuickJS tests (Win,Mac)
113110
run: pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
114111
if: runner.os != 'Linux'
115112

116-
- name: Create vscode dist that can be installed locally
113+
- name: Create VSCode dist that can be installed locally
117114
run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
118115
if: runner.os == 'Linux' && matrix.app_version == 'stable'
119116

@@ -163,9 +160,6 @@ jobs:
163160
- name: Set up Node.js
164161
uses: ./.github/actions/setup-node
165162

166-
- name: Compile
167-
run: pnpm --color compile
168-
169163
- name: Build
170164
run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
171165

@@ -184,7 +178,7 @@ jobs:
184178
NEOVIM_PATH: ${{ steps.vim.outputs.executable }}
185179

186180
- name: Run neovim lua tests
187-
uses: ./.github/actions/test-neovim-lua/
181+
uses: ./.github/actions/test-neovim-lua
188182

189183
- name: Run neovim lua lint
190-
uses: ./.github/actions/lint-lua-ls/
184+
uses: ./.github/actions/lint-lua-ls

.vscode/launch.json

Lines changed: 14 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
// A launch configuration that compiles the extension and then opens it inside a new window
2-
// Use IntelliSense to learn about possible attributes.
3-
// Hover to view descriptions of existing attributes.
4-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
51
{
62
"version": "0.2.0",
73
"configurations": [
8-
// VSCode launch configs
94
{
10-
"name": "VSCode: Run",
5+
"name": "Run",
116
"type": "extensionHost",
127
"request": "launch",
138
"env": {
@@ -19,14 +14,14 @@
1914
"--profile=cursorlessDevelopment"
2015
],
2116
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
22-
"preLaunchTask": "VSCode: Build extension",
17+
"preLaunchTask": "Build extension",
2318
"resolveSourceMapLocations": [
2419
"${workspaceFolder}/**",
2520
"!**/node_modules/**"
2621
]
2722
},
2823
{
29-
"name": "VSCode: Test",
24+
"name": "Test",
3025
"type": "extensionHost",
3126
"request": "launch",
3227
"env": {
@@ -37,17 +32,17 @@
3732
"args": [
3833
"--profile=cursorlessDevelopment",
3934
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
40-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
35+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
4136
],
4237
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
43-
"preLaunchTask": "VSCode: Build extension and tests",
38+
"preLaunchTask": "Build extension and tests",
4439
"resolveSourceMapLocations": [
4540
"${workspaceFolder}/**",
4641
"!**/node_modules/**"
4742
]
4843
},
4944
{
50-
"name": "VSCode: Test (subset)",
45+
"name": "Test (subset)",
5146
"type": "extensionHost",
5247
"request": "launch",
5348
"env": {
@@ -59,17 +54,17 @@
5954
"args": [
6055
"--profile=cursorlessDevelopment",
6156
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
62-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
57+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
6358
],
6459
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
65-
"preLaunchTask": "VSCode: Prepare test subset",
60+
"preLaunchTask": "Build extension and tests (subset)",
6661
"resolveSourceMapLocations": [
6762
"${workspaceFolder}/**",
6863
"!**/node_modules/**"
6964
]
7065
},
7166
{
72-
"name": "VSCode: Update test fixtures",
67+
"name": "Update test fixtures",
7368
"type": "extensionHost",
7469
"request": "launch",
7570
"env": {
@@ -80,17 +75,17 @@
8075
"args": [
8176
"--profile=cursorlessDevelopment",
8277
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
83-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
78+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
8479
],
8580
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
86-
"preLaunchTask": "VSCode: Build extension and tests",
81+
"preLaunchTask": "Build extension and tests",
8782
"resolveSourceMapLocations": [
8883
"${workspaceFolder}/**",
8984
"!**/node_modules/**"
9085
]
9186
},
9287
{
93-
"name": "VSCode: Update test fixtures (subset)",
88+
"name": "Update test fixtures (subset)",
9489
"type": "extensionHost",
9590
"request": "launch",
9691
"env": {
@@ -102,145 +97,14 @@
10297
"args": [
10398
"--profile=cursorlessDevelopment",
10499
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
105-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
100+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
106101
],
107102
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
108-
"preLaunchTask": "VSCode: Build extension and tests",
103+
"preLaunchTask": "Build extension and tests (subset)",
109104
"resolveSourceMapLocations": [
110105
"${workspaceFolder}/**",
111106
"!**/node_modules/**"
112107
]
113-
},
114-
115-
// Neovim launch configs
116-
{
117-
"name": "Neovim: Run",
118-
"request": "attach",
119-
"continueOnAttach": true,
120-
"skipFiles": ["<node_internals>/**"],
121-
"preLaunchTask": "Neovim: Build extension",
122-
"type": "node"
123-
},
124-
{
125-
"name": "Neovim: Test",
126-
"request": "attach",
127-
"continueOnAttach": true,
128-
"skipFiles": ["<node_internals>/**"],
129-
"preLaunchTask": "Neovim: Build extension and tests",
130-
"type": "node"
131-
},
132-
133-
// Talon launch configs
134-
{
135-
"name": "Talon: Test grammar",
136-
"type": "node",
137-
"request": "launch",
138-
"program": "${workspaceFolder}/packages/test-harness/dist/runTalonTests.cjs",
139-
"env": {
140-
"CURSORLESS_MODE": "test",
141-
"CURSORLESS_LOG_FAILED": "true",
142-
"CURSORLESS_REPO_ROOT": "${workspaceFolder}"
143-
},
144-
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
145-
"preLaunchTask": "VSCode: Build extension and tests",
146-
"resolveSourceMapLocations": [
147-
"${workspaceFolder}/**",
148-
"!**/node_modules/**"
149-
]
150-
},
151-
{
152-
"name": "Talon: Test grammar (subset)",
153-
"type": "node",
154-
"request": "launch",
155-
"program": "${workspaceFolder}/packages/test-harness/dist/runTalonTests.cjs",
156-
"env": {
157-
"CURSORLESS_MODE": "test",
158-
"CURSORLESS_RUN_TEST_SUBSET": "true",
159-
"CURSORLESS_REPO_ROOT": "${workspaceFolder}"
160-
},
161-
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
162-
"preLaunchTask": "VSCode: Build extension and tests",
163-
"resolveSourceMapLocations": [
164-
"${workspaceFolder}/**",
165-
"!**/node_modules/**"
166-
]
167-
},
168-
169-
// Talon everywhere/JS launch configs
170-
{
171-
"name": "TalonJS: Test",
172-
"type": "node",
173-
"request": "launch",
174-
"program": "${workspaceFolder}/packages/test-harness/dist/runTalonJsTests.cjs",
175-
"env": {
176-
"CURSORLESS_MODE": "test",
177-
"CURSORLESS_LOG_FAILED": "true",
178-
"CURSORLESS_REPO_ROOT": "${workspaceFolder}"
179-
},
180-
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
181-
"preLaunchTask": "VSCode: Build extension and tests",
182-
"resolveSourceMapLocations": [
183-
"${workspaceFolder}/**",
184-
"!**/node_modules/**"
185-
]
186-
},
187-
{
188-
"name": "TalonJS: Test (subset)",
189-
"type": "node",
190-
"request": "launch",
191-
"program": "${workspaceFolder}/packages/test-harness/dist/runTalonJsTests.cjs",
192-
"env": {
193-
"CURSORLESS_MODE": "test",
194-
"CURSORLESS_RUN_TEST_SUBSET": "true",
195-
"CURSORLESS_REPO_ROOT": "${workspaceFolder}"
196-
},
197-
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
198-
"preLaunchTask": "VSCode: Build extension and tests",
199-
"resolveSourceMapLocations": [
200-
"${workspaceFolder}/**",
201-
"!**/node_modules/**"
202-
]
203-
},
204-
205-
// Docusaurus launch configs
206-
{
207-
"name": "Docusaurus: Run",
208-
"type": "node",
209-
"request": "launch",
210-
"env": {
211-
"CURSORLESS_REPO_ROOT": "${workspaceFolder}"
212-
},
213-
"cwd": "${workspaceFolder}/packages/cursorless-org-docs",
214-
"runtimeExecutable": "pnpm",
215-
"runtimeArgs": ["start"],
216-
"resolveSourceMapLocations": [
217-
"${workspaceFolder}/**",
218-
"!**/node_modules/**"
219-
]
220-
},
221-
{
222-
"name": "Docusaurus: Build",
223-
"type": "node",
224-
"request": "launch",
225-
"env": {
226-
"CURSORLESS_REPO_ROOT": "${workspaceFolder}"
227-
},
228-
"cwd": "${workspaceFolder}/packages/cursorless-org-docs",
229-
"runtimeExecutable": "pnpm",
230-
"runtimeArgs": ["build"],
231-
"resolveSourceMapLocations": [
232-
"${workspaceFolder}/**",
233-
"!**/node_modules/**"
234-
]
235-
},
236-
237-
// cursorless.org launch configs
238-
{
239-
"name": "cursorless.org: Run client-side",
240-
"type": "chrome",
241-
"request": "launch",
242-
"url": "http://localhost:3000",
243-
"webRoot": "${workspaceFolder}/packages/cursorless-org"
244108
}
245109
]
246110
}

0 commit comments

Comments
 (0)