google/dagger — pull request #96 by cgruber (2014-12-19 18:43:09+00:00)
Title: Merge from moe_writing_branch_from_02a32292dab18eafe393676bf6d3a32725219078

Merge in change from google internal repository. Notable large changes are:

* Introduce Producers core API (though generators not present yet). Producers are an asynchronous dependency graph suitable for creating worker graphs. More detail on those will be added to documentation later.
* Scope validations between components is stricter.
- Singleton components cannot depend on non-Singleton components.
- Custom scopes (always supported) are now required for multiple-scope situations
- Inter-component scope relationships are evaluated to ensure they don't circle back (Singleton -> Request -> Singleton).
- Some scope validation can be turned down to warning or off to permit Dagger1 project migration (see ComponentProcessor javadoc for options)
* Some bug-fixes and cleanup

Note: Some regressions have been noted - notably with dependency cycle reporting. If you get a stack overflow, you have a dependency cycle that is blowing up our reporting. It's a known error we're fixing.