All Versions
16
Latest Version
Avg Release Cycle
34 days
Latest Release
26 days ago

Changelog History
Page 1

  • v2.27

    March 13, 2020

    What's New

    1. Fix #955: No longer generate MembersInjectors for types without local injection sites. (20f6442)
    2. Fix #1414: Allow multiple scoped component dependencies (113c498) 👍 3. Fix #1734: Add support constructor with content layout id for AndroidX (22b2726) 🚚 4. Fix #1740: Remove a usage of Guava API not available in the '-android' variant in case of processor classpath conflicts. (bfb87d5)
    3. Fix #1665: Add an explicit check for member injection of Kotlin object classes rather than crashing. (550d696)
    4. Fix: #1612: Fix duplicate binding errors when a component dependency has the same method defined multiple times via multiple interfaces (0bb69e9)

    Experimental Error Message Format

    🚀 This release includes a flag for using the new experimental error message format. The format and some content of error messages will be changed with this flag in order to improve readability. Please leave feedback on issue #1769. Pending feedback, this format will eventually become the default and replace current error messages.

    To opt-in to the new format use -Adagger.experimentalDaggerErrorMessages=enabled.

    Currently, this flag:

    • Shortens all class names to the simple class name. A legend is output at the bottom of the errors to map short names to fully qualified names.
    • Reports errors as a single error for each root component.
    • ➕ Adds color to error tags to visibly separate individual errors
    • ⬇️ Reduces some extraneous information from some messages.
  • v2.26

    January 30, 2020

    What's new

    🚚 1. Fix #1700: Remove usages of non-Android Guava APIs. (0925e8f)

    1. Fix #1720: Fix incremental dagger-android-processor in kapt when using dagger.android.experimentalUseStringKeys. (6a0ce58)
    2. Fix #1721: Migrate dagger-android to AndroidX. (f45213e) 👍 4. Better support for binding declarations within Kotlin companion objects of @Module annotated classes. (8190c7c)

    Known breaking changes

    Companion object modules are no longer allowed on Component#modules list (8190c7c)

    It is now an error to add an @Module annotated companion object class to Component#modules (or Subcomponent#modules) list. Instead, only the outer class should be added to the module list.

    // Only add this class to the Component#modules list.@Moduleabstract class FooModule { @Binds abstract fun bindFoo(impl: FooImpl): Foo// @Module is no longer needed here!companion object { // @JvmStatic is no longer needed here!@Provides fun provideBar(): Bar = Bar() } }
    

    🚀 Note: For backwards compatibility, we still allow @Module on the companion object and @JvmStatic on the provides methods. However, @Module on the companion object is now a no-op and all of its attributes (e.g. "includes") will be ignored. In future releases, we will make it an error to use @Module on a companion object.

    Dagger Android artifacts now use Androidx (f45213e)

    👍 The following artifacts have been migrated from the support library to AndroidX:

    • com.google.dagger:dagger-android:2.26
    • 👍 com.google.dagger:dagger-android-support:2.26

    👍 This change may break users who have not already migrated to AndroidX. The fix is to either migrate your app to AndroidX, or switch back to the support library artifacts which are now available at:

    • com.google.dagger:dagger-android-legacy:2.26
    • 👍 com.google.dagger:dagger-android-support-legacy:2.26
  • v2.25.4

    December 27, 2019

    What's new

    🐛 Bug fixes

  • v2.25.3

    December 16, 2019
  • v2.25.2

    October 23, 2019

    Known breaking changes

    • The Kotlin change in 2.ii (below) will break users who were passing in object module
      🏗 instances into a Component builder method rather than using @JvmStatic.
      🏗 To fix this issue, remove the call to the builder method -- the module instance is
      🏗 no longer needed and the Component builder method will no longer be generated.

    What's new

    🐛 Bug fixes

    1. Fix duplicate missing binding error messages. (2411074)
    2. Fix dagger-spi pom file from dependency cycle. (3699697)
    3. Fix issue with missing shaded deps from release 2.25 (efe1b00)

    👍 Kotlin support

    1. Qualifier annotations on fields can now be understood without
      The need for @field:MyQualifier (646e033)
    2. @Module object classes no longer need @JvmStatic on the
      provides methods. (0da2180)

    🐎 Performance Improvements

    1. Build performance:
    2. Runtime performance:
      • _Factory proxy methods can now be accessed without
        class loading the factory (a258d37).
  • v2.25

    October 21, 2019
  • v2.24

    July 25, 2019
    • 🗄 Deprecations/removals
      • dagger.android's Has{Activity,Fragment,Service,ContentProvider,BroadcastReceiver} interfaces are now removed in favor of HasAndroidInjector (which can handle any type). HasAndroidInjector was added in 2.23, and is supported together with the old types in that version. (3bd8f70)
    • 🐛 Bug fixes
      • Duplicate keys were erroneously not detected when MapKey.unwrapValue=false which may have resulted in a runtime error (depending on whether fastInit mode was used). This is now detected and failed at compile time. (8b5dbea)
    • 🐎 Build performance
      • Gradle's incremental annotation processing is now enabled for all builds (50bc180)
  • v2.23.2

    June 19, 2019

    🚀 In addition to the 2.23.1 release notes, this release:

    • 🛠 Fixes a bug where an @Inject method has a parameter name that is valid on the JVM but invalid for the Java language (and can come up in some cases in Kotlin: a11605c)
    • ⚠ Suppresses all unchecked/rawtypes warnings in Dagger generated code (ce23333)
  • v2.23.1

    May 30, 2019

    🚀 In addition to the 2.23 release notes, this release fixes support for gradle incremental annotation processing (a91d962)

  • v2.23

    May 28, 2019
    • Validation/strictness
      • Generated components are no longer public unless the component type is public (298dea8)
      • @BindsInstance annotations are now more strictly validated (d3ed46d)
    • 🐎 Build performance
      • Generated code is no longer formatted by default. Use -Adagger.formatGeneratedSource=enabled to turn it on. (fcd069c)
      • General build performance improvements (7e374b5)
    • Android
      • Added dagger.android.HasAndroidInjector, which will soon replace the Has*Injector interfaces. This one interfaces coalesces the others and should be functionally equivalent. (8f01526)
    • Full Binding Graph Validation
      • Rename -Adagger.moduleBindingValidation to -Adagger.fullBindingGraphValidation. The old name continues to work as an alias. (add5a74)
      • Do full binding graph validation for components and subcomponents, not just modules. (15d20f8)
    • 🐛 Bug Fixes
      • Fixed an issue where @BindsInstance on a Builder setter method's parameter caused a failure in codegen if the parameter had a different name than the method itself (#1464). (8051d28)