If you depend on androidx.hilt:hilt-common or androidx.hilt:hilt-work they will need to be updated to at least 1.1.0-alpha01.
Also note that Dagger’s KSP processors are still in the alpha stage. So far we’ve focused mainly on trying to ensure correctness rather than optimize performance. Please apply due diligence when enabling ksp and report any bugs or performance issues at https://github.com/google/dagger/issues. The current list of known issues can be found here.
There are also a few potentially breaking changes included with this release. These changes were made to better support Dagger usage with Kotlin sources, and make the migration from KAPT to KSP more seamless. We don’t expect these changes to affect most users. Please see below for more details.
Breaking changes
The dagger.ignoreProvisionKeyWildcards is now enabled by default
This may break apps that are providing the same binding with different wildcards, e.g. Foo<Bar> and Foo<? extends Bar>.
Unlike KAPT, KSP takes nullability into account when checking if a type is assignable to another type. This changes the behavior of Dagger’s @Binds usage validation such that a type that was assignable in KAPT may no longer be assignable in KSP. For example:
// Incorrect: this compiles successfully in KAPT but the compilation fails in KSP
@Binds fun bind(impl: FooImpl<Bar?>): Foo<Bar>
Fix: To fix this breakage, users should update the parameter or return type in the method such that they are actually assignable when taking nullability into account. For example:
// Correct: this compiles successfully in KAPT and KSP
</tr></table>
If you depend on androidx.hilt:hilt-common or androidx.hilt:hilt-work they will need to be updated to at least 1.1.0-alpha01.
Also note that Dagger’s KSP processors are still in the alpha stage. So far we’ve focused mainly on trying to ensure correctness rather than optimize performance. Please apply due diligence when enabling ksp and report any bugs or performance issues at https://github.com/google/dagger/issues. The current list of known issues can be found here.
There are also a few potentially breaking changes included with this release. These changes were made to better support Dagger usage with Kotlin sources, and make the migration from KAPT to KSP more seamless. We don’t expect these changes to affect most users. Please see below for more details.
Breaking changes
The dagger.ignoreProvisionKeyWildcards is now enabled by default
This may break apps that are providing the same binding with different wildcards, e.g. Foo<Bar> and Foo<? extends Bar>.
Unlike KAPT, KSP takes nullability into account when checking if a type is assignable to another type. This changes the behavior of Dagger’s @Binds usage validation such that a type that was assignable in KAPT may no longer be assignable in KSP. For example:
// Incorrect: this compiles successfully in KAPT but the compilation fails in KSP
@Binds fun bind(impl: FooImpl<Bar?>): Foo<Bar>
Fix: To fix this breakage, users should update the parameter or return type in the method such that they are actually assignable when taking nullability into account. For example:
// Correct: this compiles successfully in KAPT and KSP
</tr></table>
Changed Gradle Metadata to include dependency versions directly. This may address "Could not find some-dependency" errors that some users have reported (which might be a result of users' excluding guava-parent). (c6d35cf1a5)
collect: Changed Multisets.unmodifiableMultiset(set).removeIf(predicate) to throw an exception always, even if nothing matches predicate. (61dbccfda3)
graph: Fixed the behavior of Graph/ValueGraph views for a node when that node is removed from the graph. (950799691c)
io: Fixed Files.createTempDir and FileBackedOutputStream under Windows services, a rare use case. (The fix actually covers only Java 9+ because Java 8 would require an additional approach. Let us know if you need support under Java 8.) (f87f68cd3e)
net: Made MediaType.parse allow and skip over whitespace around the / and = separator tokens in addition to the ; separator, for which it was already being allowed. (2786f83291)
util.concurrent: Tweaked Futures.getChecked constructor-selection behavior: The method continues to prefer to call constructors with a String parameter, but now it breaks ties based on whether the constructor has a Throwable parameter. Beyond that, the choice of constructor remains undefined. (For this and other reasons, we discourage the use of getChecked.) (59cfb2267a)
Updates org.slf4j:slf4j-simple from 2.0.3 to 2.0.9
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the java-production-dependencies group with 6 updates:
2.44.2
2.48.1
2.44.2
2.48.1
32.0.0-jre
32.1.3-jre
3.1.4
3.1.8
2.0.3
2.0.9
2.0.3
2.0.9
Updates
com.google.dagger:dagger
from 2.44.2 to 2.48.1Release notes
Sourced from com.google.dagger:dagger's releases.
... (truncated)
Commits
2d9ba60
2.48.1 release378535e
Refactor ResolvedBindings and LegacyBindingGraph to include the ComponentPath.fd907cb
Allow sharding for Dagger compiler tests.558cc51
Fix Dagger's incremental processing for KSP.5cc209c
[Refactor]: This CL refactors a few things inComponentDescriptor
.e8f5f2b
Drop latest XProcessing jars into Dagger.7412301
Internal changes76bde06
Rollback of "[Refactor] Remove duplicated logic inBindingGraphFactory
"e651294
Fix Lint crash with AGP 8.1.0. See google/dagger#4023...47953aa
[Refactor] Remove duplicated logic inBindingGraphFactory
.Updates
com.google.dagger:dagger-compiler
from 2.44.2 to 2.48.1Release notes
Sourced from com.google.dagger:dagger-compiler's releases.
... (truncated)
Commits
2d9ba60
2.48.1 release378535e
Refactor ResolvedBindings and LegacyBindingGraph to include the ComponentPath.fd907cb
Allow sharding for Dagger compiler tests.558cc51
Fix Dagger's incremental processing for KSP.5cc209c
[Refactor]: This CL refactors a few things inComponentDescriptor
.e8f5f2b
Drop latest XProcessing jars into Dagger.7412301
Internal changes76bde06
Rollback of "[Refactor] Remove duplicated logic inBindingGraphFactory
"e651294
Fix Lint crash with AGP 8.1.0. See google/dagger#4023...47953aa
[Refactor] Remove duplicated logic inBindingGraphFactory
.Updates
com.google.guava:guava
from 32.0.0-jre to 32.1.3-jreRelease notes
Sourced from com.google.guava:guava's releases.
... (truncated)
Commits
Updates
com.github.ben-manes.caffeine:caffeine
from 3.1.4 to 3.1.8Release notes
Sourced from com.github.ben-manes.caffeine:caffeine's releases.
Commits
b0723da
minor build plugin upgrades82cf9a3
Fix issue #1111 by not creating methodType on each invocation (to work around...b1462dd
simplify and document the coalescing bulkloader example (fixes #7)f3a9345
document the write-behind-rxjava example2c7b878
Improve hibernate example and add resilience example using failsafec2befe9
Bump EnricoMi/publish-unit-test-result-action from 2.8.0 to 2.9.0 (#1109)30b3813
upgrade error prone and hibernate6f0f14e
Bump com.uber.nullaway:nullaway from 0.10.11 to 0.10.12 (#1108)17677fa
Bump org.checkerframework:checker-qual from 3.36.0 to 3.37.0 (#1107)67b36d6
Bump crate-ci/typos from 1.16.1 to 1.16.2 (#1105)Updates
org.slf4j:slf4j-api
from 2.0.3 to 2.0.9Updates
org.slf4j:slf4j-simple
from 2.0.3 to 2.0.9Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show