build: nx build caching, dependency-cruiser deps lint, ts emits#9100
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces significant improvements to the monorepo build infrastructure by integrating Nx for local computation caching and formalizing the package dependency graph. These changes, combined with new dependency-cycle linting and TypeScript declaration maps, enhance build reliability, developer productivity, and IDE support. The PR also includes comprehensive documentation for these new tooling decisions and a benchmark script to validate the performance gains. Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces monorepo tooling enhancements for React Native Firebase, including the integration of Nx local caching, deterministic build ordering via devDependencies, dependency-cycle linting with dependency-cruiser, and TypeScript declaration maps. Additionally, AI test mock fetching is moved to a gated Jest global setup to ensure build determinism, and a benchmark script is added. The review feedback is highly constructive and should be fully addressed: it suggests replacing the glob in the dependency linter to support Windows, hardening the Jest global setup argument parsing to prevent redundant mock fetches, replacing deprecated perl invocations with Node.js in the benchmark script, and using standard array indexing instead of .at(0) for backward compatibility.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
44344e8 to
68d318a
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9100 +/- ##
============================================
- Coverage 65.81% 65.81% -0.00%
Complexity 1832 1832
============================================
Files 497 497
Lines 38761 38761
Branches 5758 5787 +29
============================================
- Hits 25507 25505 -2
Misses 11820 11820
- Partials 1434 1436 +2
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
russellwheatley
left a comment
There was a problem hiding this comment.
pedning fix of merge conflicts 🙏
68d318a to
b98da94
Compare
Summary
yarn lerna:prepareruns through the Lerna/Nx runner with scoped inputs, declared outputs, and CI.nx/cache(no Nx Cloud); devDependency graph enforces build order across 17 packages.lint:deps— cycles, relative-distimports, and hub/satellite import boundaries are linted in CI viayarn lint.declarationMapfor IDE go-to-definition intolib/sources.--testPathPatternshandled.scripts/benchmark-prepare.shcaptures cold install, full rebuild, no-op, and single-package edit scenarios.Prepare benchmark (macOS,
scripts/benchmark-prepare.sh)*Scenario D first run is a cache miss (~5.3s); median uses warm cache hits on iterations 2–3.
Test plan
yarn lerna:preparedeterministic (Nx cache hits on repeat)yarn lint(incl.lint:deps),yarn tsc:compile,yarn compare:types,yarn tests:jest