Proposal: Separate out Dependency/Plugin Collection from Stat Collection
Open
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 129
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
Right now StatCollectors are only provided the module's path, directory, and the git project's root directory. While this allows us to write many types of Collectors, it limits Invert in a few ways:
- Collectors don't have information about the dependency graph, plugins or configurations available to it. This means that these project level collectors have no way of doing any sort of decisioning based on that information.
- In large projects, the most expensive part of running Invert for a Gradle project is the resolving of dependencies and configurations. If this was instead done as a step, and then
StatCollectors could be run separately (outside of leveraging Gradle tasks for caching/parallelization) it would make the experience of authoring collectors much faster. - Supporting other Build Systems. We've proven that
Invertcan be be used withBAZEL,cmakeand probably most any build system. (https://github.com/square/invert/issues/29)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by tracing how StatCollectors receive project information and how Gradle dependency and configuration resolution currently occurs; done would require a decided design for separating collection from stat gathering and addressing other build systems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100