All Versions
Latest Version
Avg Release Cycle
7 days
Latest Release
527 days ago

Changelog History
Page 8

  • v0.29.0 Changes


    • New: Additional Sections debugging APIs:
      • Make Change.getRenderInfos() public.
      • Add ChangesInfo.getAllChanges().
    • Fix: Don't crash on dangling mount content.

    For more details, see the full diff.

  • v0.28.0 Changes


    • New: Plain code Codelabs with README instructions. Try them out in [codelabs](codelabs).
    • New: Add interface ChangesetDebugConfiguration.ChangesetDebugListener for listening for ChangeSet generation in Sections.
    • Fix: Cleanup some unused code.

    For more details, see the full diff.

  • v0.27.0 Changes


    • Breaking: Change in PerfEvents:
      • Remove FrameworkLogEvents.EVENT_CREATE_LAYOUT, FrameworkLogEvents.EVENT_CSS_LAYOUT, and FrameworkLogEvents.EVENT_COLLECT_RESULTS: these are replaced by the sub-spans "start_create_layout"/"end_create_layout", "start_measure"/"end_measure", and "start_collect_results"/"end_collect_results" under the existing top-level EVENT_CALCULATE_LAYOUT_STATE event. The PerfEvent.markerPoint() API can be used to log these sub-spans. (b859605)
      • Remove FrameworkLogEvents.PREPARE_MOUNT without replacement: this didn't provide much value. (4917370)
      • Remove FrameworkLogEvents.DRAW without replacement: this was not free to maintain and didn't provide much value. (9e548cb)
    • Breaking: The Default Range Ratio for Sections/RecyclerBinder is changed from 4 screens worth of content in either direction to 2. This should improve resource usage with minimal effects on scroll performance. (9b4fe95)
    • Breaking: ComponentsSystrace.provide(): ComponentsSystrace now assumes an implementation will be provided before any other Litho operations occur. (457a20f)
    • New: ComponentsLogger implementations can now return null for event types they don't care about. (4075eb7)
    • New: Add RecyclerCollectionEventsController.requestScrollBy(). (0146857)
    • New: Add preliminary Robolectric v4 support. (4c2f657, etc.)
    • New: More efficient code generation for state updates in Components and Sections. (8c5c7e3, etc.)
    • Fix: Remove usage of API 19+ Objects class in cached value API. (aabb24a)
    • Fix: Unset Components scope when creating a new ComponentContext in ComponentTree. (05f11a7)
    • Fix: Fix perf logging for dirty mounts. (3ad8bfb)
    • Fix: Don't crash when @OnCalculateCachedValue takes no args. (2a0f524)
    • Fix: Reduce number of systrace markers in collectResults: these were skewing the perceived size of LayoutState.collectResults in production and weren't actionable. (3107467)

    For more details, see the full diff.

  • v0.26.1 Changes


    • ๐Ÿ›  Fix: Picks 513cf91 to fix an issue with the Flipper integration.
  • v0.26.0 Changes


    • Breaking: Fix the lazy State update semantics. (de3d938)
    • Breaking: Rename LayoutHandler to LithoHandler and add DefaultLithoHandler. (h69cba5, 0d0bb0b)
    • Breaking: Update Yoga version to 1.14.0. Fixes #536. (c16baf6)
    • Breaking: Release sections' ComponentTrees when RecyclerCollectionComponent is detached. (8893049)
    • Breaking: Only enable incremental mount if parent incremental mount is enabled. (c88a660)
    • Experimental: Make state updates faster by only recreating the subtrees which are being updated and reuse (read "clone") the untouched subtrees while calculating a new layout. You can try it out by setting ComponentsConfiguration.isReconciliationEnabled() flag globally or using ComponentTree.Builder.isReconciliationEnabled() for specific trees.
    • New: Add a RecyclerBinder.replaceAll(List<RenderInfo>) method. (#451)
    • New: Add documentation.
    • Fix: Eliminate Gradle deprecated methods. (#526)
    • Fix: Cleanup tests and unused code.
    • Fix: Remove object pooling everywhere.
    • Fix: Make Robolectric tests work. (a92018a)

    For more details, see the full diff.

  • v0.25.0 Changes


    • Breaking: Migrate support lib dependencies to AndroidX. (de3097b)
    • Breaking: Remove DisplayListDrawable and other DisplayList-related features. (29f42fa)
    • Breaking: Remove References API. (b1aa39a)
    • New: Remove object pooling for most internal objects.
    • New: Replace powermock-reflect with internal Whitebox implementation. (ad899e4)
    • New: Enable Gradle incremental AnnotationProcessing. (a864b5a)
    • New: Allow TextInput to accept null as inputBackground. (d1fd03b)
    • New: Add documentation.
    • Fix: Suppress focus temporarily while mounting. (d93e2e0)
    • Fix: When clearing press state, also cancel pending input events. (451e8b4)
    • Fix: Correctly calculate VisibilityChangedEvent in MountState. (66d65fe)
    • Fix: Thread safety issue of ViewportChanged listeners of ViewportManager. (9da9d90)

    For more details, see the full diff.

  • v0.24.0 Changes


    Breaking: The default for state updates has changed from sync to async. At Facebook this meant we ran a codemod script on the codebase and changed all state update methods to the explicit Sync variant ("Sync" is just appended to the end of the state update call), then changed the default. The reason for this is to not change existing behavior in case it breaks something, since there are many callsites. The script is committed and available at [scripts/](scripts/ We recommend using it if you have any concerns about state update calls automatically becoming async. As a reminder, when you add a @OnUpdateState method, it generates three methods: updateState(), updateStateSync(), and updateStateAsync(). Previously updateState() == updateStateSync(). Now, updateState() == updateStateAsync().

    For more details, see the full diff.

  • v0.23.0 Changes


    • Breaking: KeyHandlers now get registered in EndToEnd tests (9836497). This is a an edge-case, but potentially behavior-changing.
    • New: Add support for Cached Values.
    • New: isEquivalentTo now uses reflection for size reasons unless the target is a MountSpec or SectionSpec. (2e27d99)
    • Fix: Potential NPE in RecyclerEventsController. (8e29036)

    For more details, see the full diff.

  • v0.14.0 Changes

    July 24, 2020

    ๐Ÿ’ฅ Breaking changes:

    • Relicensing under Apache 2.0!
    • Moving off of Yoga legacy stretch behaviour
    • โœ‚ Remove storing the event handler name in the EventHandler class

    What's new:

    • โœ… TestSpec matchers for @InjectProps
    • Working Ranges API

    ๐Ÿ‘Œ Improvements/Fixes:

    • Mark @InjectProp with isLazy flag
    • ๐Ÿ‘ Allow @InjectProp in onCreateMountContent
    • ๐Ÿ– Handle setting a manual null key on a component
    • ๐Ÿ‘ Allow parameterized types to be returned from delegate methods
    • 0๏ธโƒฃ Disable Pull To Refresh by default for horizontally scrolling RecyclerCollectionComponents