Coder Social home page Coder Social logo

ivancarras / graphfity Goto Github PK

View Code? Open in Web Editor NEW
35.0 2.0 2.0 161 KB

Graphfity is a Gradle Plugin which creates a dependency node diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module application

License: Apache License 2.0

Kotlin 100.00%
android kotlin kotlindsl groovy gradle-plugin androidstudio graph graphviz architecture multimodule-android-app

graphfity's Issues

Graphfity task 2 exceptions: ":app does not correspond to any project", " Invocation of 'Task.project' by task ':graphfity' at execution time is unsupported."

Gradle 8.7
Android Studio Jellyfish
Windows 11

  • Root build.gradle:
import com.github.ivancarras.graphfity.plugin.main.GraphfityPluginExtension

buildscript {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        google()
    }
    dependencies {  }
}

plugins {
    id("com.github.ivancarras.graphfity") version "1.1.0"
} 

configure<GraphfityPluginExtension> {
    nodeTypesPath.set("./nodeTypes.json")
}
  • Default nodeTypes.json is present in the root directory.

  • Graphviz is installed and added to path

  • Running
    gradle graphfity
    results in 2 exceptions:
    FAILURE: Build completed with 2 failures.

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':graphfity'.
> The property provided as projectRootPath: :app does not correspond to any project
2: Task failed with an exception.
-----------
* What went wrong:
Configuration cache problems found in this build.

1 problem was found storing the configuration cache.
- Task `:graphfity` of type `com.github.ivancarras.graphfity.plugin.task.GraphfityTask`: invocation of 'Task.project' at execution time is unsupported.
  See https://docs.gradle.org/8.7/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution

Having run with --no-configuration-cache option for 30 minutes, the script still produced no output.

New functionality

  1. Add ability to structure vertically (or horizontally) by layers/levels.

E.g. we may want to show first :app, then below all :feature, then below all :domain, then all :data, and so on.
Suggestion for json structure: level: "auto" - layered by regex pattern, "no" - disable layering (default), 1...999 - specific layer position.

  1. Add the ability to control max items in a row (something similar to column count).
    So image may be rather tall then wide

  2. Add ability to pick line type: curved, orthogonal, etc.

  3. Add ability to change dependency line color by regex. E.g. we may want to show :app module at a top, but we may want to hide arrows lets say for :impl modules.
    Suggestion for json structure: lineConfig: "^.\.impl.$ -> #00FFFFFF, ^.data$ -> #000, ^.domain$ -> #30D6D6D6"

Not compatible with Gradle 8.0

I'm getting these runtime error.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.