Thanks for expanding the way I think about gradle. It didn’t even occur to me that settings.gradle is a gradle file and thus I can write things like if statements in there. I didn’t realize that was what you were saying until you provided your example. What would have been very helpful is to have something to search on or some doc that indicates “if you used to do this, then you now need to do it this other way” sort of guide. In my opinion - this answer is far more “clunky” than I would like because now i have to explain to people how to trigger this alternate behavior. I might not have set the stage so let me try again - maybe it might sway you.
I have 150 projects. From those 150, “core” developers building the engine so to speak care about 5 projects and no more. UI developers care about the same 5 core projects plus 10 extra (15 total). Then there are “plugin developers” they care about 5 + 10 + 100, and “extension developers” who care about the 5 core projects + 15 projects that aren’t “ui” or “plugin” projects. All of these developers can’t check in the settings file for that respective group using the if(file.exists) approach. Now what I can do is put down a marker file that is basically a property file which says “activate core”, “activate ui”, “activate plugin”, “activate extensions”. That will work so that’s the route i’ll go but I thought if I outlined the build more you might get a different vibe for the complexity of this legacy build.
I still fundamentally disagree with the position you (or all of the buildship devs) take with respect to the options. Developers want to do things they way they want to do them, by restricting a developer from shooting their own foot because the buildship team is encouraging the “right” behavior can very well lead to alienating the people that use the tool.
At the same time, I appreciate your work on this project. I do wish you’d all reconsider being dogmatic about enforcing “the right kind of setup” as you all see it and consider that other people might have differing opinions as to “the right kind of setup”. I still feel strongly that the buildship tool should not be trying to ‘fix gradle’ (so to speak). If gradle supports it - and if people use it, buildship should support it. I can make this work though now that I have an approach that would work.