WhoBuilt

Improve all the repos – exploring Microsoft’s DevExp

Oct 21, 2021· 29 min· 3.1K views·Watch on YouTube

Speakers

Microsoft engineers and React Native maintainers Lorenzo Sciandra and Tommy Nguyen explain how Microsoft improves React Native developer experience across many repositories at Callstack’s RNEU 2021.

React Native across Microsoft

Microsoft teams work across many large codebases, often organized as monorepos with packages that depend on one another. React Native spread from Skype’s greenfield app to brownfield experiences in products such as Outlook and Teams. Teams build those experiences in their own repositories, then integrate them into host apps.

A local app for testing experiences

Sciandra describes the challenge of developing an experience without giving every developer access to a large host app codebase or requiring lengthy builds. React Native Test App provides a local sandbox that approximates the host environment while hiding much of the native setup. Nguyen demonstrates setting it up for React Native WebView, then changing the React Native version from 0.62.3 to 0.63.4.

Automating dependency alignment

Nguyen introduces Dep Check, a CLI that reads package dependencies and applies curated profiles. It can correct React dependency and peer dependency configuration, suggest a compatible WebView version, and recommend a React Native upgrade. Teams can run it across a repository, apply changes with a write option, or use it in CI to report suggestions on pull requests.

Sharing profiles and tools

Sciandra explains that shared Dep Check profiles help separate monorepos stay aligned on compatible package versions. Teams can export custom profiles for their packages and use them in other repositories. The speakers describe React Native Test App and Dep Check as open source tools available in their respective repositories.

Takeaways

  • A small local test app can let library developers iterate without building a large host application.
  • Centralizing native setup and upgrades can reduce repeated maintenance across teams.
  • Use dependency profiles to make package compatibility rules consistent across repositories.
  • Run dependency checks in CI and surface suggested fixes where developers review changes.
  • Share custom compatibility profiles when multiple repositories consume the same packages.

Mentioned in this talk

Search inside this talk

What was claimed 10

Related talks