@mrsimpson
I totally agree: automated testing is a prerequisite.
Well, overwhelmed is an understatement. I just went ahead on my GitLab instance and oh my⦠
Due to the lock file nature Renovate can not merge all requests. Command line statements were required. A simple βpnpm up
β and βpnpm lint:fix
β became quite the challenge to say the least.
Ended up with numerous files with all kinds of errors like:
025-01-25 17:22:39.327 [info] π Running pre-commit hook to check the code looks good... π
Checking if pnpm is available...
Running typecheck...
> bolt@0.0.6 typecheck /home/gdo/bolt.diy
> tsc
app/components/chat/Chat.client.tsx(487,9): error TS2322: Type 'RefObject<HTMLTextAreaElement | null>' is not assignable to type 'RefObject<HTMLTextAreaElement>'.
Type 'HTMLTextAreaElement | null' is not assignable to type 'HTMLTextAreaElement'.
Type 'null' is not assignable to type 'HTMLTextAreaElement'.
app/components/editor/codemirror/CodeMirrorEditor.tsx(138,21): error TS2554: Expected 1 arguments, but got 0.
app/components/editor/codemirror/CodeMirrorEditor.tsx(139,22): error TS2554: Expected 1 arguments, but got 0.
app/components/editor/codemirror/CodeMirrorEditor.tsx(140,20): error TS2554: Expected 1 arguments, but got 0.
app/components/editor/codemirror/CodeMirrorEditor.tsx(141,29): error TS2554: Expected 1 arguments, but got 0.
app/components/editor/codemirror/CodeMirrorEditor.tsx(154,7): error TS2322: Type 'EditorDocument | undefined' is not assignable to type 'EditorDocument'.
Type 'undefined' is not assignable to type 'EditorDocument'.
app/components/editor/codemirror/CodeMirrorEditor.tsx(191,9): error TS2322: Type 'undefined' is not assignable to type 'EditorView'.
app/components/ui/IconButton.tsx(23,22): error TS2503: Cannot find namespace 'JSX'.
app/components/ui/IconButton.tsx(23,36): error TS2503: Cannot find namespace 'JSX'.
app/components/ui/PanelHeaderButton.tsx(8,22): error TS2503: Cannot find namespace 'JSX'.
app/components/ui/PanelHeaderButton.tsx(8,42): error TS2503: Cannot find namespace 'JSX'.
app/components/ui/Slider.tsx(40,22): error TS2503: Cannot find namespace 'JSX'.
app/components/ui/Slider.tsx(40,42): error TS2503: Cannot find namespace 'JSX'.
app/components/workbench/FileBreadcrumb.tsx(90,19): error TS2322: Type '(ref: HTMLSpanElement | null) => HTMLSpanElement | null' is not assignable to type 'Ref<HTMLSpanElement> | undefined'.
Type '(ref: HTMLSpanElement | null) => HTMLSpanElement | null' is not assignable to type '(instance: HTMLSpanElement | null) => void | (() => VoidOrUndefinedOnly)'.
Type 'HTMLSpanElement | null' is not assignable to type 'void | (() => VoidOrUndefinedOnly)'.
Type 'null' is not assignable to type 'void | (() => VoidOrUndefinedOnly)'.
app/components/workbench/Preview.tsx(386,17): error TS2322: Type 'RefObject<HTMLIFrameElement | null>' is not assignable to type 'RefObject<HTMLElement>'.
Type 'HTMLIFrameElement | null' is not assignable to type 'HTMLElement'.
Type 'null' is not assignable to type 'HTMLElement'.
app/components/workbench/Workbench.client.tsx(249,13): error TS2503: Cannot find namespace 'JSX'.
app/components/workbench/terminal/Terminal.tsx(28,27): error TS2554: Expected 1 arguments, but got 0.
app/lib/hooks/useSnapScroll.ts(5,25): error TS2554: Expected 1 arguments, but got 0.
app/lib/hooks/useSnapScroll.ts(6,23): error TS2554: Expected 1 arguments, but got 0.
app/lib/hooks/useSnapScroll.ts(7,23): error TS2554: Expected 1 arguments, but got 0.
app/lib/hooks/useSnapScroll.ts(25,7): error TS2322: Type 'undefined' is not assignable to type 'ResizeObserver'.
app/lib/hooks/useSnapScroll.ts(46,7): error TS2322: Type 'undefined' is not assignable to type 'HTMLDivElement'.
app/lib/hooks/useSnapScroll.ts(47,7): error TS2322: Type 'undefined' is not assignable to type '() => void'.
app/routes/webcontainer.preview.$id.tsx(20,31): error TS2554: Expected 1 arguments, but got 0.
app/utils/react.ts(3,44): error TS2503: Cannot find namespace 'JSX'.
app/utils/react.ts(5,52): error TS2344: Type 'T' does not satisfy the constraint 'JSXElementConstructor<any> | keyof IntrinsicElements'.
Type 'string | number | symbol | JSXElementConstructor<any>' is not assignable to type 'JSXElementConstructor<any> | keyof IntrinsicElements'.
Type 'string' is not assignable to type 'JSXElementConstructor<any> | keyof IntrinsicElements'.
app/utils/react.ts(5,88): error TS2344: Type 'T' does not satisfy the constraint 'JSXElementConstructor<any> | keyof IntrinsicElements'.
Type 'string | number | symbol | JSXElementConstructor<any>' is not assignable to type 'JSXElementConstructor<any> | keyof IntrinsicElements'.
Type 'string' is not assignable to type 'JSXElementConstructor<any> | keyof IntrinsicElements'.
ELIFECYCLE Command failed with exit code 2.
β Type checking failed! Please review TypeScript types.
Once you're done, don't forget to add your changes to the commit! π
husky - pre-commit script failed (code 1)
and also hit a wall with:
> pnpm up --latest
WARN 2 deprecated subdependencies found: rollup-plugin-inject@3.0.2, sourcemap-codec@1.4.8
Already up to date
Progress: resolved 1399, reused 1248, downloaded 0, added 0, done
WARN Issues with peer dependencies found
.
βββ¬ @remix-run/react 2.15.2
β βββ β unmet peer react@^18.0.0: found 19.0.0
β βββ β unmet peer react-dom@^18.0.0: found 19.0.0
βββ¬ @remix-run/dev 2.15.2
βββ β unmet peer vite@^5.1.0: found 6.0.11
I do very much like this kind of challenges. Besides that, I feel like when this project really takes off, this dependency management will become a real burden over time.