diff --git a/.vscode/tasks.json b/.vscode/tasks.json index decb975eb..e53f1f52f 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -3,9 +3,19 @@ "tasks": [ { "type": "npm", - "script": "watch", - "problemMatcher": "$tsc-watch", + "script": "dev-vscode", "isBackground": true, + "problemMatcher": { + "owner": "esbuild", + "pattern": { + "regexp": "^\\b$" + }, + "background": { + "activeBegin": true, + "beginsPattern": "Packages in scope", + "endsPattern": "quarto:dev: \\[watch\\] build finished" + } + }, "presentation": { "reveal": "always", "revealProblems": "onProblem" diff --git a/apps/vscode/.vscode/tasks.json b/apps/vscode/.vscode/tasks.json index 38748712a..2c2974021 100644 --- a/apps/vscode/.vscode/tasks.json +++ b/apps/vscode/.vscode/tasks.json @@ -4,10 +4,25 @@ "version": "2.0.0", "tasks": [ { - "type": "npm", - "script": "watch", - "problemMatcher": "$tsc-watch", + "label": "yarn: dev-vscode", + "type": "shell", + "command": "yarn", + "args": ["dev-vscode"], + "options": { + "cwd": "${workspaceFolder}/../.." + }, "isBackground": true, + "problemMatcher": { + "owner": "esbuild", + "pattern": { + "regexp": "^\\b$" + }, + "background": { + "activeBegin": true, + "beginsPattern": "Packages in scope", + "endsPattern": "quarto:dev: \\[watch\\] build finished" + } + }, "presentation": { "reveal": "never" }, diff --git a/apps/vscode/CONTRIBUTING.md b/apps/vscode/CONTRIBUTING.md index a0f122b2b..462ca2d77 100644 --- a/apps/vscode/CONTRIBUTING.md +++ b/apps/vscode/CONTRIBUTING.md @@ -42,10 +42,12 @@ Here is the process: - Let `yarn dev-vscode` run in the background somewhere. -- Open the `apps/vscode` folder in VS Code or Positron and go to the `Run and debug` pane. +- Open the repository root in VS Code or Positron and go to the `Run and debug` pane. - Run the `Run VS Code Extension` to open the dev version of the extension in a new window. + Alternatively, open the `apps/vscode` folder and run `Run Extension`. Its pre-launch task starts `yarn dev-vscode` for you and waits for the first build. + - If you need to set breakpoints in the LSP, you'll have to select the launch configuration `Attach to VS Code LSP server` and run that as well. You should see your LSP breakpoints bind (go from grayed out to red dots) as soon as the debugger is attached to the LSP. Note that if you close the dev window and stop the extension debugging session, you'll have to manually close the LSP debugging session. diff --git a/claude.md b/claude.md index b157b8faa..8d3906539 100644 --- a/claude.md +++ b/claude.md @@ -34,14 +34,14 @@ The repository is organized as a monorepo using Yarn workspaces and Turborepo fo Quarto uses [turborepo](https://turbo.build/) to manage the monorepo build process: -- `turbo.json`: Defines the pipeline configuration for common tasks +- `turbo.json`: Defines the task configuration for common tasks - Common commands: - `yarn build`: Builds all packages and applications - `yarn dev-vscode`: Runs the VS Code extension in development mode - `yarn lint`: Runs linters across all workspaces - `yarn build-vscode`: Builds only the VS Code extension and its dependencies -The turborepo pipeline helps optimize build times by caching build artifacts and respecting the dependency graph between packages. +Turborepo helps optimize build times by caching build artifacts and respecting the dependency graph between packages. ## Testing diff --git a/package.json b/package.json index ef2847ff1..dddcee241 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "quarto", "version": "1.86.0", "private": true, + "packageManager": "yarn@1.22.22", "engines": { "node": ">=24" }, @@ -30,7 +31,7 @@ "eslint": "^7.32.0", "eslint-config-custom": "*", "prettier": "^2.5.1", - "turbo": "^1.8.5", + "turbo": "^2.11.4", "typescript": "^5.9.3" } } diff --git a/packages/eslint-config-custom-server/package.json b/packages/eslint-config-custom-server/package.json index fd58c91ea..18783e688 100644 --- a/packages/eslint-config-custom-server/package.json +++ b/packages/eslint-config-custom-server/package.json @@ -4,9 +4,6 @@ "private": true, "license": "MIT", "main": "index.js", - "dependencies": { - "eslint-config-turbo": "latest" - }, "publishConfig": { "access": "public" } diff --git a/turbo.json b/turbo.json index c15dba317..f7ca61aba 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,6 @@ { - "$schema": "https://turbo.build/schema.json", - "pipeline": { + "$schema": "https://turborepo.dev/schema.json", + "tasks": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**", "out/**"] @@ -13,7 +13,8 @@ "outputs": [] }, "dev": { - "cache": false + "cache": false, + "persistent": true } } } diff --git a/yarn.lock b/yarn.lock index ae6fed25f..af2c14169 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2022,6 +2022,36 @@ resolved "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.3.tgz" integrity sha512-qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A== +"@turbo/darwin-64@2.11.4": + version "2.11.4" + resolved "https://registry.yarnpkg.com/@turbo/darwin-64/-/darwin-64-2.11.4.tgz#d561cc616f33d6ea0b0a581c750bb6707ebe25fc" + integrity sha512-fEmcQVa95k79tZjcay5b2A4cpR/VrlNUki4AN7EbA+32vj5C5rBUE1q3i2yOFxsB2n01sOlzIZ+s2p2zADCTig== + +"@turbo/darwin-arm64@2.11.4": + version "2.11.4" + resolved "https://registry.yarnpkg.com/@turbo/darwin-arm64/-/darwin-arm64-2.11.4.tgz#19d025521ff82b988b0f84056ffc8876b67e4dea" + integrity sha512-SgXCVgBC1v+bdE6+KQGV6Kob7nBYo75zxzNFFuA4jLdM0J8lYamdTUoZSHLR0dy+kXVEYZqSC98CKqC17NG3Og== + +"@turbo/linux-64@2.11.4": + version "2.11.4" + resolved "https://registry.yarnpkg.com/@turbo/linux-64/-/linux-64-2.11.4.tgz#762b21310a5cb7e97cdaa4b3691ea5b9f1456270" + integrity sha512-MWM7Au6NPJMBmHJAzFzQ/PACYNRpBOqnBkj+7csdR+YhJ+0XBg4Z64wFwLnGFDac0gc+YlasWOZ5t05bGs54aQ== + +"@turbo/linux-arm64@2.11.4": + version "2.11.4" + resolved "https://registry.yarnpkg.com/@turbo/linux-arm64/-/linux-arm64-2.11.4.tgz#87490c08b2e51ab23707b0847696c42a46220555" + integrity sha512-rRVOh0UNlLbKPuf70FokqjahO/hCGgBmgvZcNXUPayn8Wk0zXIsVoNKpr0UQUhhR+KMiibvBKkVAGDViDFQHKA== + +"@turbo/windows-64@2.11.4": + version "2.11.4" + resolved "https://registry.yarnpkg.com/@turbo/windows-64/-/windows-64-2.11.4.tgz#52f329886939b95d3085cbfc9f43e3a3c896922e" + integrity sha512-COr+++1GwDg09XbJdm3sP1gEQApeV43UknYP9h82qet1tAGJrGQAxKVTMrf2JMsMw8MkJRnQj3gAVuQmV1kIyQ== + +"@turbo/windows-arm64@2.11.4": + version "2.11.4" + resolved "https://registry.yarnpkg.com/@turbo/windows-arm64/-/windows-arm64-2.11.4.tgz#d95238f71b44b9bdf1e73314e84544dfd2c702ed" + integrity sha512-gh5lwDA2d4aBdLvTANhFsFEgxbBqKZ4m4dCyChw9GoX8b+Esk8H3p25Q+rlWCUVJ2o6Hne10ZTL0QSFfWD4gIA== + "@types/ace@^0.0.43": version "0.0.43" resolved "https://registry.npmjs.org/@types/ace/-/ace-0.0.43.tgz" @@ -3840,11 +3870,6 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.0.1" -dotenv@16.0.3: - version "16.0.3" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== - dotignore@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" @@ -4272,20 +4297,6 @@ eslint-config-prettier@^8.5.0: resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz" integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== -eslint-config-turbo@latest: - version "2.5.8" - resolved "https://registry.yarnpkg.com/eslint-config-turbo/-/eslint-config-turbo-2.5.8.tgz#257c7dcb6c43f8cc5467f49d14ba250c51251868" - integrity sha512-wzxmN7dJNFGDwOvR/4j8U2iaIH/ruYez8qg/sCKrezJ3+ljbFMvJLmgKKt/1mDuyU9wj5aZqO6VijP3QH169FA== - dependencies: - eslint-plugin-turbo "2.5.8" - -eslint-plugin-turbo@2.5.8: - version "2.5.8" - resolved "https://registry.npmjs.org/eslint-plugin-turbo/-/eslint-plugin-turbo-2.5.8.tgz" - integrity sha512-bVjx4vTH0oTKIyQ7EGFAXnuhZMrKIfu17qlex/dps7eScPnGQLJ3r1/nFq80l8xA+8oYjsSirSQ2tXOKbz3kEw== - dependencies: - dotenv "16.0.3" - eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" @@ -8092,47 +8103,17 @@ tunnel@0.0.6: resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== -turbo-darwin-64@1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.13.4.tgz#1dcea4ea0351fa38246ec26a101c862e02c27c17" - integrity sha512-A0eKd73R7CGnRinTiS7txkMElg+R5rKFp9HV7baDiEL4xTG1FIg/56Vm7A5RVgg8UNgG2qNnrfatJtb+dRmNdw== - -turbo-darwin-arm64@1.13.4: - version "1.13.4" - resolved "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-1.13.4.tgz" - integrity sha512-eG769Q0NF6/Vyjsr3mKCnkG/eW6dKMBZk6dxWOdrHfrg6QgfkBUk0WUUujzdtVPiUIvsh4l46vQrNVd9EOtbyA== - -turbo-linux-64@1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.13.4.tgz#6856fc0543894aac547021b5a2bad8f7c936d7e7" - integrity sha512-Bq0JphDeNw3XEi+Xb/e4xoKhs1DHN7OoLVUbTIQz+gazYjigVZvtwCvgrZI7eW9Xo1eOXM2zw2u1DGLLUfmGkQ== - -turbo-linux-arm64@1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.13.4.tgz#2370b20311d2c86df64a3811a9309ab33c722a8d" - integrity sha512-BJcXw1DDiHO/okYbaNdcWN6szjXyHWx9d460v6fCHY65G8CyqGU3y2uUTPK89o8lq/b2C8NK0yZD+Vp0f9VoIg== - -turbo-windows-64@1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.13.4.tgz#e9f54d3837e9bd23d4b805c583f2473bcba5be68" - integrity sha512-OFFhXHOFLN7A78vD/dlVuuSSVEB3s9ZBj18Tm1hk3aW1HTWTuAw0ReN6ZNlVObZUHvGy8d57OAGGxf2bT3etQw== - -turbo-windows-arm64@1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.13.4.tgz#0adfddb0d6c167a46ecff646666e347a7d372d76" - integrity sha512-u5A+VOKHswJJmJ8o8rcilBfU5U3Y1TTAfP9wX8bFh8teYF1ghP0EhtMRLjhtp6RPa+XCxHHVA2CiC3gbh5eg5g== - -turbo@^1.8.5: - version "1.13.4" - resolved "https://registry.npmjs.org/turbo/-/turbo-1.13.4.tgz" - integrity sha512-1q7+9UJABuBAHrcC4Sxp5lOqYS5mvxRrwa33wpIyM18hlOCpRD/fTJNxZ0vhbMcJmz15o9kkVm743mPn7p6jpQ== +turbo@^2.11.4: + version "2.11.4" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-2.11.4.tgz#6f057149466c7f7d7c7a61d61d6dde39423bded3" + integrity sha512-nedZtJ2hjWpU/JBFq7Aj1GQBxQ56si+kIUmNZBUX35O35TIuhSBR6/u3yHHmk81U+RBdBcVjvLQ3/iOFzMwKsA== optionalDependencies: - turbo-darwin-64 "1.13.4" - turbo-darwin-arm64 "1.13.4" - turbo-linux-64 "1.13.4" - turbo-linux-arm64 "1.13.4" - turbo-windows-64 "1.13.4" - turbo-windows-arm64 "1.13.4" + "@turbo/darwin-64" "2.11.4" + "@turbo/darwin-arm64" "2.11.4" + "@turbo/linux-64" "2.11.4" + "@turbo/linux-arm64" "2.11.4" + "@turbo/windows-64" "2.11.4" + "@turbo/windows-arm64" "2.11.4" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0"