GithubHelp home page GithubHelp logo

Comments (8)

rharter avatar rharter commented on June 23, 2024

from focus.

Nava2 avatar Nava2 commented on June 23, 2024

Oh absolutely I don't think it's caused by the plugin. I'm curious if you've got any suggestions on chasing down the issue. I find it odd that we're getting projects applied that should be unfocused. I'm sure it's in our build, but the gradle logs are keeping their secrets to themselves.

from focus.

rharter avatar rharter commented on June 23, 2024

from focus.

Nava2 avatar Nava2 commented on June 23, 2024

I'll verify soon, but that is pretty entertaining that I happened to randomly pick a task that happened to have the clean contract that's incompatible with the entire premise.

I really appreciate the time, I'll have to check this in a few days. I'll close off the issue after I verify. Thank you!

from focus.

Nava2 avatar Nava2 commented on June 23, 2024

😢 Seems like that wasn't the issue. I'm unable to import the project into IntelliJ after :focus -- same error. I think I'll have to do some process of elimination with all the different plugins.

from focus.

elshad-faire avatar elshad-faire commented on June 23, 2024

We finally figured out what the issue is. More details in gradle/gradle#27115

In short, the problem is how the include function in settings.gradle.kts works:

"As an example, the path a:b adds a project with path a:b, name b and project directory $rootDir/a/b. It also adds the a project with path :a, name a and project directory $rootDir/a, if it does not exist already."

We have so many cases that a and a:b are both Gradle projects.

I am wondering if the Dropbox team faced this problem. If so how you went about resolving it? cc @rharter

from focus.

rharter avatar rharter commented on June 23, 2024

Hmm, are you saying that you have a project structure like

.
└── a/
    ├── build.gradle
    ├── src/
    │   └── main
    └── b/
        ├── build.gradle
        └── src/
            └── main

And your generated focus.settings.gradle contains include(":a:b"), but you don't want it to include :a and it does?

If so, that's not something we've seen at Dropbox and, unfortunately, I can't even think of a way to work around that. That suggests that there's no way to include project :a:b without including :a, and the point of the Focus plugin is to only include the required projects. If we were to consider :a a "required" project in this case then we would also have to include it's dependencies, and that quickly nullifies any benefit of the Focus plugin.

from focus.

elshad-faire avatar elshad-faire commented on June 23, 2024

Yes you have summarized the problem correctly. And yes this is not a focus plugin issue. It is a gradle issue.

I think this issue can be closed. Maybe action item could be to improve the documentation to mention about this case and then point to the suggestion at gradle/gradle#27115 (comment).

from focus.

Related Issues (20)

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.