Skip to content

Add mobile package name to js_xlr_pipeline - #121

Draft
cehan-Chloe wants to merge 3 commits into
mainfrom
mobile-manifest
Draft

Add mobile package name to js_xlr_pipeline#121
cehan-Chloe wants to merge 3 commits into
mainfrom
mobile-manifest

Conversation

@cehan-Chloe

@cehan-Chloe cehan-Chloe commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

xlr_compile already stamps a package's npm name into manifest.json via XLR_PACKAGE_NAME (added in the prior commit). This adds the same for iOS and Android, so a plugin's manifest can carry all three platform names in one place instead of just the npm one.

  1. js_xlr_pipeline gets two new optional args, ios_package_name and android_package_name, alongside the existing package_name, and builds the package_names dict internally before calling xlr_compile — so callers keep passing flat string args
  2. xlr_compile's npm_package_name string arg is replaced with one package_names dict, keyed by platform:

Any key can be omitted — only the platforms present get an env var (XLR_PACKAGE_NAME / XLR_IOS_PACKAGE_NAME / XLR_ANDROID_PACKAGE_NAME) set on the compile action, matching how a plugin without a mobile counterpart works today. An unrecognized key (e.g. a typo) fails the build immediately with a clear error, rather than being silently dropped.

Verified: built //plugins/reference-assets/react:react_xlr in the player-ui/player repo (via local_path_override) with --stamp, and confirmed the generated manifest.json contains matching react/ios/android entries with the same stamped version. Also rebuilt all 6 existing js_xlr_pipeline consumers in that repo to confirm no regression — the 5 without the new args still emit react-only manifests.

{
    "pluginName": "reference-assets-web-plugin",
    "capabilities": {
        "Assets": [
            "Assets.InputAsset",
            "Assets.TextAsset",
            "Assets.ActionAsset",
            "Assets.CollectionAsset",
            "Assets.ChoiceAsset"
        ],
        "Views": [
            "Views.InfoAsset"
        ]
    },
    "customPrimitives": [
        "Expression",
        "Asset",
        "Binding",
        "AssetWrapper",
        "Schema.DataType",
        "ExpressionHandler",
        "FormatType",
        "ValidatorFunction"
    ],
    "packages": {
        "react": {
            "name": "@player-ui/reference-assets-plugin-react",
            "version": "1.2.0-next.7"
        },
        "ios": {
            "name": "PlayerUIReferenceAssets",
            "version": "1.2.0-next.7"
        },
        "android": {
            "name": "com.intuit.playerui.plugins:reference-assets",
            "version": "1.2.0-next.7"
        }
    }
}

@cehan-Chloe cehan-Chloe changed the title Add mobile package to manifest Add mobile package name to js_xlr_pipeline Sep 10, 2026
@cehan-Chloe cehan-Chloe added the minor Increment the minor version when merged label Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor Increment the minor version when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant