Skip to content

[Xamarin.AndroidX.Compose.UI / Foundation / Foundation.Layout] Stop stripping the whole package; ship real bindings #1416

@jonathanpeppers

Description

@jonathanpeppers

Companion to the Runtime issue. The three peer recipes Xamarin.AndroidX.Compose.UI, Xamarin.AndroidX.Compose.Foundation, and Xamarin.AndroidX.Compose.Foundation.Layout all carry the same <remove-node path="/api/package" /> policy and should ship real bindings on top of the Runtime change.

Working precedents in compose-net:

Requested change

For each of the three recipes:

  1. Delete <remove-node path="/api/package" />.
  2. Port the targeted <remove-node> entries from the linked file above. They cover: Modifier.Companion / Modifier.Node (CS0542 member-same-as-enclosing); MotionDurationScale.Key / InfiniteAnimationPolicy.Key (same CoroutineContext.Element.key pattern as Runtime); inline-class hash-mangled overloads on FrameRateKt/ScaleFactorKt/CornerSizeKt/LazyLayoutCacheWindowKt; abstract ModifierNodeElement / SubcomposeSlotReusePolicy / LazyLayoutPinnedItemList (auto-generated Invokers can''t satisfy abstract members); KeyMapping (returns java.lang.Enum<KeyCommand> which doesn''t project); PaddingValues.Absolute.
  3. UI casing: apply managedName="...UI..." everywhere a …ui… package appears (see the UI Metadata.xml linked above — 25+ packages). The default Ui casing is wrong for the C# convention; once these NuGets ship real types this becomes a permanent ABI decision.
  4. Add the <AndroidIgnoredJavaDependency> entries from each project''s csproj for collection-jvm, jspecify, and the -jvm/-android KMP variant clashes.
  5. Regenerate api/PublicApi*.txt for all three recipes.

Sequencing

Depends on the Runtime issue landing first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions