style(types): integrate arethetypeswrong for local and CI verification#9098
style(types): integrate arethetypeswrong for local and CI verification#9098mikehardy wants to merge 2 commits into
Conversation
|
Bugbot is not enabled for this team, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
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 a robust type-checking gate using attw to ensure published package types align with the project's consumer matrix. It also standardizes Expo config plugin structures, ensuring they are correctly exported and smoke-tested during the CI process to prevent regressions in library consumption. 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 a validation script to check published package types using @arethetypeswrong/cli (attw) and smoke-tests Expo config plugins, alongside updating package exports and documentation. The reviewer feedback is highly actionable and identifies several key improvements for the validation script, including refactoring shell executions from execSync to spawnSync to prevent OS-specific parsing issues, updating yarn pack commands to use Yarn v4 compatible flags (--out instead of --filename), removing a non-existent @expo/config-plugins version specifier that would cause CI failures, and filtering out private packages from the check.
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.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9098 +/- ##
============================================
- Coverage 58.66% 58.62% -0.04%
Complexity 1617 1617
============================================
Files 503 503
Lines 39180 39180
Branches 5807 5807
============================================
- Hits 22981 22965 -16
- Misses 14800 14812 +12
- Partials 1399 1403 +4
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
4712cf7 to
b60d541
Compare
|
@gemini-code-assist — all review feedback addressed in
Verified: |
|
Thanks for the update, Mike. The changes look solid. Your reasoning for keeping the file-descriptor capture for the |
Add plugin/src/app.plugin.ts (export =) compiled to plugin/build/ for Expo entry types and runtime. Keep a one-line package-root app.plugin.js shim for Expo filesystem resolution; wire exports for ./app.plugin and ./app.plugin.js.
Add yarn attw:check (scoped via .attw.json esm-only profile, ignoring node16-esm internal-resolution and cjs-resolves-to-esm per Types-AD-2) plus Expo plugin consumer smoke. Document consumer-matrix decisions in OKF architecture-decisions.md (Types-AD-1..4).
b60d541 to
99fc7a8
Compare
Description
Adds scoped published-types verification with
@arethetypeswrong/clifor local use (yarn attw:check) and CI (newattwjob inlinting.yml).Scope follows our consumer matrix (Types-AD-1..4 in
okf-bundle/testing/architecture-decisions.md):yarn tsc:compile:consumer(moduleResolution: bundler)..attw.json(esm-onlyprofile; ignoreinternal-resolution-errorandcjs-resolves-to-esm) — Node10/Node16-CJS modes and extensionless.d.tsrelative imports are out of scope for RN/Metro consumers.npm pack→ temp install →require('<pkg>/app.plugin.js')), not attw exclusion.Companion commit refactors Expo plugins:
plugin/src/app.plugin.tscompiles toplugin/build/app.plugin.{js,d.ts}; package root keeps a one-lineapp.plugin.jsshim;exportswire./app.pluginand./app.plugin.jstypes to the built entry.Related issues
N/A — proactive types hygiene / CI gate.
Release Summary
No user-facing runtime changes. Published Expo plugin type exports and CI type-checking coverage improved.
Checklist
AndroidiOSOther(macOS, web) — tooling / published package types / Expo config pluginse2etests added or updated inpackages/**/e2ejesttests added or updated inpackages/**/__tests__Test Plan
yarn attw:check— all 19 published packages pass scoped attw; Expo plugin consumer smoke passesyarn lerna run build:plugin --scope '@react-native-firebase/{app,analytics,auth,messaging,crashlytics,perf,app-check,app-distribution}'before attw (plugin/build artifacts)Think
react-native-firebaseis great? Please consider supporting the project with any of the below:React Native FirebaseandInvertaseon Twitter