decouple the teambit.harmony/bit dependency from core aspects #9375
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bit aspect (
teambit.harmony/bit
) depends on all core aspects. This is needed because this aspect is the main entry of bit, it loads all those core aspects and also we want to this aspect to get a new version every time a core-aspect has changed, so then when running bit, all the core aspect are always up to date.However, some core aspects, e.g.
Generator
aspect were depended on Bit aspect (practically forming a circular dependency) for mainly two tasks: loadBit() and getting core-ids. Because of this circular, changing core aspects triggers an auto-tag of most of the core aspects. Leading to unnecessary tags and slow deployment.This PR breaks this direction of dependency by injecting the APIs needed to those aspects from the loadBit function. It's not pretty, but it's much better than how it is now.