Skip to content

Conversation

@jamesbhobbs
Copy link
Contributor

@jamesbhobbs jamesbhobbs commented Oct 10, 2025

Summary

Adds two strict TypeScript compiler flags to tsconfig.base.json to align vscode-deepnote's configuration with deepnote/deepnote:

  • forceConsistentCasingInFileNames: Ensures import paths match exact file casing (helps catch cross-platform issues)
  • skipLibCheck: Skips type checking of declaration files for faster builds

This is part of a broader effort to synchronize tooling configurations across deepnote/deepnote, jupyterlab-deepnote, and vscode-deepnote repositories, focusing on consistent code quality tooling for src/ directories.

Changes Made

  • Added forceConsistentCasingInFileNames: true to strictness section in tsconfig.base.json
  • Added skipLibCheck: true to strictness section in tsconfig.base.json

Testing

✅ Local verification completed successfully:

  • npm run compile - TypeScript compilation passes
  • npm run lint - ESLint passes
  • npm run format - Prettier formatting check passes
  • npm run typecheck - TypeScript type checking passes
  • npm test - All 1329 tests pass

Human Review Checklist

  • Verify CI passes completely
  • Confirm these flags match deepnote/deepnote's tsconfig exactly
  • Check for any import statement casing mismatches that could break with forceConsistentCasingInFileNames
  • Consider whether skipLibCheck might mask important dependency type issues

Link to Devin run: https://app.devin.ai/sessions/145f89c8cbc942d2970c5bc43a90149c
Requested by: @jamesbhobbs

Summary by CodeRabbit

  • Chores
    • Strengthened TypeScript compiler settings to enforce consistent file casing across platforms.
    • Reduced type-checking overhead to speed up builds and minimize noise from third-party libraries.
    • No user-facing changes; functionality and behavior remain the same.

- Add forceConsistentCasingInFileNames to ensure import paths match exact file casing
- Add skipLibCheck to skip type checking of declaration files for faster builds

These flags align with the strict configuration used in deepnote/deepnote
and improve type safety and consistency across the codebase.
@devin-ai-integration
Copy link

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 10, 2025

📝 Walkthrough

Walkthrough

Updated tsconfig.base.json by adding two compilerOptions: forceConsistentCasingInFileNames: true and skipLibCheck: true. These options enforce consistent file name casing in imports and skip type checking of declaration (*.d.ts) files. No runtime code paths or application logic were changed.

Suggested reviewers

  • Artmann
  • saltenasl
  • andyjakubowski

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title concisely states that the PR synchronizes strict TypeScript compiler flags from the deepnote repository, directly reflecting the added forceConsistentCasingInFileNames and skipLibCheck options, and it follows conventional commit prefixing.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f59e68f and b7daece.

📒 Files selected for processing (1)
  • tsconfig.base.json (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: vire
PR: deepnote/deepnote#18235
File: tsconfig.base.json:27-31
Timestamp: 2025-08-27T12:59:52.099Z
Learning: In tsconfig.base.json path mappings, Deepnote intentionally uses only single index.ts file mappings (e.g., "deepnote/analytics": ["libs/analytics/src/index.ts"]) without wildcard patterns to enforce barrel exports and prevent deep imports into package internals.
Learnt from: CR
PR: deepnote/deepnote-internal#0
File: CONVENTIONS.md:0-0
Timestamp: 2025-09-30T12:33:33.332Z
Learning: Applies to **/*.{ts,tsx} : Boolean options are non-nullable; other options generally nullable
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Build & Test
  • GitHub Check: Lint & Format

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Oct 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 70%. Comparing base (75a4081) to head (9b903ce).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@          Coverage Diff          @@
##            main     #39   +/-   ##
=====================================
  Coverage     70%     70%           
=====================================
  Files        512     512           
  Lines      37506   37506           
  Branches    4811    4811           
=====================================
  Hits       26473   26473           
  Misses      9441    9441           
  Partials    1592    1592           
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jamesbhobbs jamesbhobbs marked this pull request as ready for review October 14, 2025 15:25
@jamesbhobbs jamesbhobbs merged commit dda14f4 into main Oct 14, 2025
11 checks passed
@jamesbhobbs jamesbhobbs deleted the devin/1760109891-sync-tsconfig-strict-settings branch October 14, 2025 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants