square / square/invert

Make Invert more build system agnostic

Open
#29 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
129
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Invert was originally built with just the Gradle build system in mind, but we've seen it working and providing values for other build systems as well. Most build systems seem to just leverage these primitives:

  • Modules (Dependencies, Plugins, Configurations)
  • Ownership

Note: We shouldn't "remove" any existing support for Gradle, or the ability to add onto it, but we're still early enough to be able to make that information pluggable and not alienate other usages.

Collection

Gradle Modules should just be one type of module type can be used. If we have a way of using a Gradle Plugin (or based on directory traversal) to determine projects and dependencies, it should be able to capture all we need.

Report

We have a dedicated section of the Invert report just to Gradle. We don't need that section when generating reports for other build systems.

Image

This also makes me realize we need to separate out the Kotlin specific features. (Created https://github.com/square/invert/issues/28)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping where Gradle-specific collection and reporting are implemented, then read issue #28 for the related Kotlin-specific separation. The work is done when modules and ownership are pluggable for other build systems while existing Gradle support remains intact and Gradle-only report sections are optional.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
build-system
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.