From dc5ab444df7b661c2f2c20ab2f1dba4c725fd642 Mon Sep 17 00:00:00 2001 From: Ivan Vasilov Date: Tue, 23 Sep 2025 12:34:56 +0300 Subject: [PATCH] feat: Add typechecking as a required check for the merge queue (#38939) * Disable typesafe builds on prod for studio. * Add typecheck github action to the merge queue checks. * Add typescript dependency to packages to stabilize their versions. * Add tailwindcss to the catalog. --- .github/workflows/typecheck.yml | 1 + apps/design-system/package.json | 2 +- apps/studio/next.config.js | 6 +- apps/studio/package.json | 2 +- apps/ui-library/package.json | 2 +- packages/api-types/package.json | 3 +- packages/config/package.json | 5 +- packages/eslint-config-supabase/package.json | 3 + packages/ui/package.json | 2 +- pnpm-lock.yaml | 58 +++++++++----------- pnpm-workspace.yaml | 1 + 11 files changed, 41 insertions(+), 44 deletions(-) diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 826b08a649..f5215584d8 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -4,6 +4,7 @@ on: pull_request: branches: - 'master' + merge_group: # Cancel old builds on new commit for same workflow + branch/PR concurrency: diff --git a/apps/design-system/package.json b/apps/design-system/package.json index b0715f521d..e23cbf1e4a 100644 --- a/apps/design-system/package.json +++ b/apps/design-system/package.json @@ -57,7 +57,7 @@ "postcss": "^8.5.3", "rimraf": "^4.1.3", "shiki": "^1.1.7", - "tailwindcss": "^3.3.0", + "tailwindcss": "catalog:", "tsconfig": "workspace:*", "tsx": "^4.19.3", "typescript": "~5.5.0", diff --git a/apps/studio/next.config.js b/apps/studio/next.config.js index 93a6d8b029..37c55f2be2 100644 --- a/apps/studio/next.config.js +++ b/apps/studio/next.config.js @@ -531,10 +531,8 @@ const nextConfig = { pagesBufferLength: 100, }, typescript: { - // On previews, typechecking is run via GitHub Action only for efficiency - // On production, we turn it on to prevent errors from conflicting PRs getting into - // prod - ignoreBuildErrors: process.env.NEXT_PUBLIC_VERCEL_ENV === 'production' ? false : true, + // Typechecking is run via GitHub Action only for efficiency. + ignoreBuildErrors: true, }, eslint: { // We are already running linting via GH action, this will skip linting during production build on Vercel diff --git a/apps/studio/package.json b/apps/studio/package.json index 7cb777345f..532ee4aafc 100644 --- a/apps/studio/package.json +++ b/apps/studio/package.json @@ -197,7 +197,7 @@ "prettier": "3.2.4", "raw-loader": "^4.0.2", "require-in-the-middle": "^7.5.2", - "tailwindcss": "^3.4.1", + "tailwindcss": "catalog:", "tsx": "^4.19.3", "typescript": "~5.5.0", "vite": "catalog:", diff --git a/apps/ui-library/package.json b/apps/ui-library/package.json index fa50cfe2c1..fdaa04634e 100644 --- a/apps/ui-library/package.json +++ b/apps/ui-library/package.json @@ -106,7 +106,7 @@ "rimraf": "^4.1.3", "shadcn": "^2.10.0", "shiki": "^1.1.7", - "tailwindcss": "^3.3.0", + "tailwindcss": "catalog:", "tsconfig": "workspace:*", "tsx": "^4.19.3", "typescript": "~5.5.0", diff --git a/packages/api-types/package.json b/packages/api-types/package.json index e69d0b6063..e52ae5cd19 100644 --- a/packages/api-types/package.json +++ b/packages/api-types/package.json @@ -13,6 +13,7 @@ "license": "MIT", "devDependencies": { "openapi-typescript": "^7.4.3", - "prettier": "3.2.4" + "prettier": "3.2.4", + "typescript": "~5.5.0" } } diff --git a/packages/config/package.json b/packages/config/package.json index 1d5d26c284..4976450ada 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -17,7 +17,8 @@ "tailwindcss-radix": "^2.0.0" }, "devDependencies": { - "tailwindcss": "^3.4.1", - "tailwindcss-animate": "^1.0.6" + "tailwindcss": "catalog:", + "tailwindcss-animate": "^1.0.6", + "typescript": "~5.5.0" } } diff --git a/packages/eslint-config-supabase/package.json b/packages/eslint-config-supabase/package.json index ff4a28f167..ad473e5d29 100644 --- a/packages/eslint-config-supabase/package.json +++ b/packages/eslint-config-supabase/package.json @@ -11,5 +11,8 @@ "eslint-config-next": "15.3.1", "eslint-config-prettier": "^9.1.0", "eslint-config-turbo": "^2.0.4" + }, + "devDependencies": { + "typescript": "~5.5.0" } } diff --git a/packages/ui/package.json b/packages/ui/package.json index 48cab5d0e9..2ce39e2db2 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -76,7 +76,7 @@ "recharts": "^2.12.7", "sonner": "^1.5.0", "tailwind-merge": "^1.13.2", - "tailwindcss": "^3.4.1", + "tailwindcss": "catalog:", "vaul": "^0.9.9" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a59749143..48cfa1c5e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,6 +33,9 @@ catalogs: react-dom: specifier: ^18.3.0 version: 18.3.1 + tailwindcss: + specifier: 3.4.1 + version: 3.4.1 valtio: specifier: ^1.12.0 version: 1.12.0 @@ -324,7 +327,7 @@ importers: specifier: ^1.1.7 version: 1.6.0 tailwindcss: - specifier: ^3.3.0 + specifier: 'catalog:' version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)) tsconfig: specifier: workspace:* @@ -1211,7 +1214,7 @@ importers: specifier: ^7.5.2 version: 7.5.2(supports-color@8.1.1) tailwindcss: - specifier: ^3.4.1 + specifier: 'catalog:' version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)) tsx: specifier: ^4.19.3 @@ -1494,7 +1497,7 @@ importers: specifier: ^1.1.7 version: 1.6.0 tailwindcss: - specifier: ^3.3.0 + specifier: 'catalog:' version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)) tsconfig: specifier: workspace:* @@ -1843,6 +1846,9 @@ importers: prettier: specifier: 3.2.4 version: 3.2.4 + typescript: + specifier: ~5.5.0 + version: 5.5.2 packages/build-icons: devDependencies: @@ -1963,11 +1969,14 @@ importers: version: 2.8.0 devDependencies: tailwindcss: - specifier: ^3.4.1 + specifier: 'catalog:' version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)) tailwindcss-animate: specifier: ^1.0.6 version: 1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2))) + typescript: + specifier: ~5.5.0 + version: 5.5.2 packages/eslint-config-supabase: dependencies: @@ -1980,6 +1989,10 @@ importers: eslint-config-turbo: specifier: ^2.0.4 version: 2.0.4(eslint@8.57.0(supports-color@8.1.1)) + devDependencies: + typescript: + specifier: ~5.5.0 + version: 5.5.2 packages/generator: devDependencies: @@ -2233,7 +2246,7 @@ importers: specifier: ^1.13.2 version: 1.14.0 tailwindcss: - specifier: ^3.4.1 + specifier: 'catalog:' version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)) vaul: specifier: ^0.9.9 @@ -4278,10 +4291,6 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -13013,10 +13022,6 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jiti@1.20.0: - resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} - hasBin: true - jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -14974,9 +14979,6 @@ packages: phenomenon@1.6.0: resolution: {integrity: sha512-7h9/fjPD3qNlgggzm88cY58l9sudZ6Ey+UmZsizfhtawO6E3srZQXywaNm2lBwT72TbpHYRPy7ytIHeBUD/G0A==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -21423,12 +21425,6 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -27012,7 +27008,7 @@ snapshots: '@ts-morph/common@0.23.0': dependencies: - fast-glob: 3.3.2 + fast-glob: 3.3.3 minimatch: 9.0.5 mkdirp: 3.0.1 path-browserify: 1.0.1 @@ -32234,8 +32230,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jiti@1.20.0: {} - jiti@1.21.7: {} jiti@2.4.2: {} @@ -35026,8 +35020,6 @@ snapshots: phenomenon@1.6.0: {} - picocolors@1.0.1: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -37400,7 +37392,7 @@ snapshots: sucrase@3.34.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -37497,25 +37489,25 @@ snapshots: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.5.3 + chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.2 + fast-glob: 3.3.3 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.20.0 + jiti: 1.21.7 lilconfig: 2.1.0 micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.1 + picocolors: 1.1.1 postcss: 8.5.3 postcss-import: 15.1.0(postcss@8.5.3) postcss-js: 4.0.1(postcss@8.5.3) postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)) postcss-nested: 6.0.1(postcss@8.5.3) postcss-selector-parser: 6.0.13 - resolve: 1.22.8 + resolve: 1.22.10 sucrase: 3.34.0 transitivePeerDependencies: - ts-node diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1fe15fdc92..fae691358f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -16,6 +16,7 @@ catalog: 'valtio': '^1.12.0' 'vite': '^6.2.7' 'zod': '^3.25.76' + 'tailwindcss': '3.4.1' minimumReleaseAge: 10080 minimumReleaseAgeExclude: