github.com-facebook-fresco
all · 12 devs · built 2026-06-13
Repository snapshot
Monthly reports
Highlights
- Introduced new caching mechanisms in the *Image Pipeline*, including `SimilarImageLookup` [d04a77de · Neha Gupta] and `UnifiedCacheKeyFactory` [55ad40a9 · Neha Gupta], alongside an experimental separate non-bitmap image cache for A/B testing [32a79855 · Alexander Oprisnik].
- Enhanced *Image Pipeline* decoding with a quality-aware `BitmapTransformation` API [de4f23c3 · Neha Gupta], a configurable progressive JPEG throttle [a6b73694 · Neha Gupta], and memory optimizations for mutable bitmaps and `ARGB_8888` retry [d6220534 · Oluwatobi Victor Ateniola].
- Improved *Fresco Vito* with an "offer-back" integration for the memory cache [8a4f0f62 · Alexander Oprisnik] and accurate image origin tracking for local thumbnails [d0a0db6f · Jillian Lew] and intermediate network results [d5611bc7 · Jillian Lew].
- Added a circuit breaker for consecutive frame drop failures in `animated-drawable` [1d3adb69 · Gui Marinho] to improve animation stability and resource management.
- Addressed critical issues including a memory leak in *VitoViewImpl2* [09a9b97e · generatedunixname1205258961547606], a race condition in `ExtrasUtils.obtainExtras` [62e7c4d5 · generatedunixname1608173377072046], and a copy-paste bug affecting `forceReloadIfImageAlreadySet` in *Fresco Vito Litho integration* [17885da3 · Alan Lobo].
Observations
- The total commit volume decreased by 37% (44 commits this month vs 70-commit 2-month average), suggesting a shift in development pace.
- A significant achievement was the 59% reduction in waste score (1 this month vs 2-month average of 2), indicating a strong focus on delivering stable and correct code.
- Despite the lower commit volume, the grow score saw a modest 17% decrease (2 this month vs 2-month average of 2), while maintenance remained stable (+5% change), suggesting continued investment in new features and system health.
- Multiple maintenance activities involved bulk refactoring via codemods, such as parameter naming standardization [fe6481d0 · Daniel Hill] and redundant visibility modifier removal [7e393ee8 · Daniel Hill], improving code consistency.
- Several commits focused on improving null-safety and robustness, including adding `@Nullable` to `CacheKey` [cb9f35de · generatedunixname1333080415543951] and implementing null checks in `AbstractDraweeController` [cb5a7f89 · generatedunixname2004217137144586].
- Testing efforts were notable, with new unit tests for `ForwardingControllerListener2` [7775933c · generatedunixname921282244029529] and regression tests for *Vito* lifecycle [5bb18760 · Achille Pette] and `retriggerListeners` field behavior [8e3f2135 · Alan Lobo].
- The `animated-base` and `animated-drawable` modules saw refactorings that simplified interfaces like `AnimatedImageFactory` [d291ae30 · generatedunixname970978688699417] and `DrawListener` [f0dc7002 · generatedunixname970978688699417], potentially streamlining future animation development.
Performance over time
ETV stacked by Growth, Maintenance and Fixes — 90-day moving average, normalized to ETV / month.
Average performance per developer
ETV per active developer per month — 30-day moving average.
Active developers over time
Unique developers committing each day — 90-day moving average.
Knowledge concentration
How dependent is this repo on a small number of contributors? Higher top-1 share = higher key-person risk.
generatedunixname537391475639613 owns 31.3 % of commits.
Top contributors
Most impactful commits
Top 20 by ETV in the all-time window.
- 1.3ETVFix nullsafety issues in Showcase sample app Reviewed By: Nehgupta-1203 Differential Revision: D97321703 fbshipit-source-id: 75c13fadd1bc1df75a8fe502ef37653e1b482b73Alexander Oprisnik · 63ca55ee · 2026-03-26
- 1.1ETVConvert AbstractAdaptiveCountingMemoryCacheTest Test File to Kotlin Reviewed By: kartavya-ramnani Differential Revision: D81405436 fbshipit-source-id: 67f73e0d37cc9b544847bfa47a96603d893cdb8dAndy Wu · d8200b21 · 2025-08-31
- 0.9ETVConvert fbandroid/libraries/fresco/imagepipeline/src/main/java/com/facebook/imagepipeline/memory/BasePool to Kotlin Reviewed By: oprisnik Differential Revision: D77496928 fbshipit-source-id: 6c8fdbff0370f806bd790d977eb3f391c746d747Artem Kholodnyi · 5dba5496 · 2025-06-30
- 0.9ETVConvert FLog Reviewed By: kartavya-ramnani Differential Revision: D89898271 fbshipit-source-id: cd6d1e4491a03bfb82d3710358aee8f5a456422fArtem Kholodnyi · 6e299326 · 2025-12-30
- 0.9ETVConvert DiskStorageCacheTest Reviewed By: parth-menon Differential Revision: D83243423 fbshipit-source-id: 8c8cf2cf33352a66bc76919cdae861090f83e5caArtem Kholodnyi · a702451c · 2025-09-26
- 0.8ETVConvert imagepipeline/datasource Test Files to Kotlin Reviewed By: kartavya-ramnani Differential Revision: D79592664 fbshipit-source-id: b362ded7e8a97185da824b35d62ee1e349456693Andy Wu · 8f452202 · 2025-08-05
- 0.8ETVConvert DefaultDiskStorage Reviewed By: kartavya-ramnani Differential Revision: D89966345 fbshipit-source-id: e088881efac31ef68b95de1e5a8c1dc3a39fb97aArtem Kholodnyi · 9bf9ffdb · 2026-01-01
- 0.7ETVConvert ResizeAndRotateProducerTest from Java to Kotlin Reviewed By: oprisnik Differential Revision: D89894841 fbshipit-source-id: f8569b9a6fd51fe93ac992757d08e3aecf1b1babArtem Kholodnyi · f039d36a · 2025-12-30
- 0.6ETVConvert DiskStorageCache Reviewed By: oprisnik, kartavya-ramnani Differential Revision: D79559344 fbshipit-source-id: e7d06a1da79e723ecd5f145c0917c0d995012ec2Artem Kholodnyi · 4cc8080e · 2025-08-05
- 0.6ETVConvert the fresco.animation package tests to Kotlin Reviewed By: kartavya-ramnani Differential Revision: D77438357 fbshipit-source-id: 2314f0455100349f2adb23eb837f21f6151577beAndy Wu · 002b83cd · 2025-06-27
- 0.6ETVConvert imagepipeline-base/imageutils Test files to Kotlin Reviewed By: oprisnik Differential Revision: D79551361 fbshipit-source-id: fa305666273111dbbcd52716c87729ebd6ca4086Andy Wu · a4866c7b · 2025-08-04
- 0.6ETVRemove PowerMock from //fbandroid/libraries/fresco/imagepipeline/src/main/java/com/facebook/imagepipeline/producers Reviewed By: oprisnik Differential Revision: D71218543 fbshipit-source-id: d4c80c1782b25cef786ae9fab4f0b05f04f0313eJoshua Selbo · c4da280d · 2025-03-16
- 0.6ETVConvert Objects Reviewed By: kartavya-ramnani Differential Revision: D89891663 fbshipit-source-id: 5d51b0f369f245312210c6d96afcefbe56cd5a8fArtem Kholodnyi · 85d83e5a · 2025-12-30
- 0.6ETVfbandroid/libraries/fresco/imagepipeline-base/src/test/java/com/facebook/cache/disk/DiskStorageCacheTest.kt Reviewed By: oprisnik Differential Revision: D83643956 fbshipit-source-id: fe8326c40912a83c6183421cfabf76c3aca8a472generatedunixname537391475639613 · debb79e8 · 2025-10-02
- 0.6ETVAdd A/B test for separate non-bitmap image cache Reviewed By: Nehgupta-1203 Differential Revision: D105845355 fbshipit-source-id: 3ad4b5f4434886cfe4748e06fbe1c88d3a8f8cedAlexander Oprisnik · 32a79855 · 2026-05-21
- 0.5ETVSkip bitmap recycle() when CloseableReferences are NOOP Reviewed By: Nehgupta-1203 Differential Revision: D107138406 fbshipit-source-id: 1c20a35705bb9c8f0e3a49d679a3ecd9e606b60aAlexander Oprisnik · bb5d7b0d · 2026-06-10
- 0.5ETVConvert LruCountingMemoryCacheTest Test File to Kotlin Reviewed By: kartavya-ramnani Differential Revision: D81404527 fbshipit-source-id: 2119121a479a2783820f2eba008dc80c79ba6b0aAndy Wu · 5b152556 · 2025-08-31
- 0.5ETVMigrate from Java to Kotlin : DefaultDiskStorageTest.java to DefaultDiskStorageTest.kt Reviewed By: oprisnik Differential Revision: D87439201 fbshipit-source-id: b48167b97a520c439ac9a4b774519393531e38b7Kartavya Ramnani · 49ae24cb · 2025-11-20
- 0.5ETVConvert imagepipeline/common test files to Kotlin Reviewed By: kartavya-ramnani Differential Revision: D78616391 fbshipit-source-id: 90b0b1a3c8b49e7af2a363413d885c4c60a3918dAndy Wu · 5df8b515 · 2025-07-21
- 0.5ETVConvert imagepipeline-base/image Test Files to Kotlin Reviewed By: oprisnik Differential Revision: D79550825 fbshipit-source-id: e7f6f2f45d8645943c88b4dc66708891e9b69027Andy Wu · 01c6cd23 · 2025-08-04