Add section on dependency resolution and exposure to README#266
Add section on dependency resolution and exposure to README#266matt-ramotar wants to merge 2 commits intouber:mainfrom
Conversation
|
Matt Ramotar seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
README.md
Outdated
|
|
||
| ## Dependency Resolution and Exposure | ||
|
|
||
| Motif requires explicit dependency declarations to properly resolve and inject dependencies across scopes. When a parent scope needs to provide a dependency to a child scope, the dependency must be explicitly exposed using the `@Expose` annotation. |
There was a problem hiding this comment.
Doesn't line ~140 of README roughly mentions it?
I agree we perhaps need to make the use of @Expose a more pronounced section given how important it is, but perhaps we can remove / restructure the existing paragraph so readers don't think they know everything there is to know about Expose after reading that first section?
There was a problem hiding this comment.
Totally fine with restructuring the existing paragraph
There was a problem hiding this comment.
Updated, thoughts? I think the explicit dependency declaration requirement is what is not completely clear
README.md
Outdated
|
|
||
| ## Dependency Resolution and Exposure | ||
|
|
||
| Motif requires explicit dependency declarations to properly resolve and inject dependencies across scopes. When a parent scope needs to provide a dependency to a child scope, the dependency must be explicitly exposed using the `@Expose` annotation. |
There was a problem hiding this comment.
This is valuable documentation, but can we add the other way to pass dependency to children as well?
interface ParentScope {
fun childScope(api: Api): ChildScope // Api is exposed to children through a scope factory method parameter.
@motif.Objects
abstract class Objects {
fun provideImpl(): Impl {
return Impl()
}
fun provideApi(impl: Impl): Api {
return impl
}
}
}
Description:
I think we should add a new section to the README titled "Dependency Resolution and Exposure" to provide more clarity on how Motif handles dependencies between parent and child scopes.
Related issue(s): #177