Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get Started
Design and Develop
Publish
Reference
Support

React Native 0.83 Migration: Library Developer Guidance

This page applies if you are developing a library (system library or shared package) rather than an app. For app migration, see Migrate Apps to React Native 0.83.

Peer dependency configuration

Libraries must use peerDependencies (not dependencies) for the Vega runtime. If you add the runtime in dependencies, it causes module ID conflicts at runtime when apps and libraries use different RN versions.

{
  "peerDependencies": {
    "@amazon-devices/react-native-kepler": ">=4.0.0 <5.0.0"
  },
  "devDependencies": {
    "@amazon-devices/react-native-kepler": "^4.0.0"
  }
}

Version range guidelines

Scenario peerDependencies range
No source code changes + uses RN APIs ">=2.0.0" (open range)
No source code changes + no RN usage Remove entirely
Source code changes between versions "~4.0.0" or "^4.0.0" (restrictive)

Library detection indicators

Your package is a system library if it has any of the following:

  • SystemModules/ directory in project root
  • kepler-system-conf.toml file
  • kepler-compatibility.json file

Additional considerations

  • Changes to library APIs affect all consumers. Test with at least one consumer app before publishing.
  • Update library version and changelog appropriately.
  • Consider backward compatibility for existing consumers.
  • Ensure isolatedModules type exports use export type syntax.

Last updated: Jul 09, 2026