Skip to content

Conversation

@JasonVMo
Copy link
Contributor

@JasonVMo JasonVMo commented Aug 1, 2025

Platforms Impacted

  • all

Description of changes

The repo had a large number of missing or incorrect dependencies, some of which were being hidden by the ignore list in depcheck, others being hidden by the use of the old-style node_modules layout in yarn. Because of this we often have to inject dependencies in OMR to make things work correctly.

This change includes a few key pieces:

More comprehensive depcheck command

The previous use of depcheck had a large list of ignored packages that were hiding a number of issues. For various issues I had run into the issue of needing to manually make changes to large number of packages to fix things, to address this I got rid of the special casing in depcheck and adding fix capabilities.

  • centralized the tool versions into a new package in scripts/src/preinstall this is where various tools pull common versions.
  • depcheck and the dynamic dependencies now rely on this.
  • depcheck now takes the dependencies injected via dynamic dependencies into account and ignores them.
  • depcheck does the ignore handling as post-processing rather than built-into the tool to not hide them
  • --verbose option that will show ignored errors
  • --fix-errors option that will automatically fix errors if it can. For packages that it can't determine the version it will fail.
  • --fix-warnings option that will fix warnings. Use this with caution as it will flag some devDependencies that are actually needed.
  • --dry-run option that will show what the fix mechanisms will do without making changes.
  • added better coloring so you can clearly see what is going on.

The fix can be run from root by executing yarn workspaces foreach --all --no-private run depcheck --fix-errors. The no-private option is needed for now as it will fail on the root.

Dedicated packages for jest and babel configurations

This helps isolate the dependencies required for those packages so they aren't all jammed together in scripts. These were created under packages/configs and I will move the eslint config package there as a separate change and likely eventually create a separate tsconfig package as well. These are all private packages just used within the repo.

  • Note that the checkbox component hasn't been running tests due to a missing jest configuration, I restored this and updated the snapshots to be current now.

Got rid of codegen as part of the build-step

This was unnecessary as it will be done either way as part of metro bundling as it is handled by the metro babel transforms.

Switched to pnpm mode

Once fixing depcheck and doing the other work this was mainly tweaking dependency declarations to be correct.

Verification

  • Automated tests.

JasonVMo and others added 18 commits July 28, 2025 00:20
…sic and new jsx runtimes (#3947)

* rework jsx helpers for both new and old runtimes

* implement both new and old render patterns for classic and jsx-runtimes

* Change files

* move package README.md files to be next to the source code

* update documentation

* Change files

* prettier format updates to documentation

* tweak documentation just a bit
…sic and new jsx runtimes (#3947)

* rework jsx helpers for both new and old runtimes

* implement both new and old render patterns for classic and jsx-runtimes

* Change files

* move package README.md files to be next to the source code

* update documentation

* Change files

* prettier format updates to documentation

* tweak documentation just a bit
@JasonVMo JasonVMo requested a review from a team as a code owner August 1, 2025 17:22
@JasonVMo
Copy link
Contributor Author

JasonVMo commented Aug 4, 2025

Note that I have reverted the pnpm mode changes for now, though the dependency cleanup, dedicated config packages and everything else is still valuable and needed for the next jsx change. The issue with pnpm mode was related to the e2e test packages not working right. I started to work through the configuration but it requires a bit more understanding.

Copy link
Collaborator

@Saadnajmi Saadnajmi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably change title / commit message since we aren't moving to pnpm

@JasonVMo JasonVMo changed the title Move to pnpm mode, fix dependencies, create config packages, and implement depcheck --fix-errors Fix dependencies, create config packages, and implement depcheck --fix-errors Aug 5, 2025
@JasonVMo JasonVMo merged commit 1ed213f into main Aug 5, 2025
11 checks passed
@JasonVMo JasonVMo deleted the user/jasonvmo/deps branch August 5, 2025 18:02
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.

4 participants