Status Update
Comments
ja...@sanson.nz <ja...@sanson.nz> #2
Seems like some undefined set of subprojects
& allprojects
APIs are compatible with project isolation, so this lint could take the form of discouraging the mutable bits of shared project configuration:
au...@google.com <au...@google.com> #3
As far as I can tell, it is only safe to do allProjects.forEach { it.isolated }
type calls, does that seem right?
pa...@gmail.com <pa...@gmail.com> #4
It definitely seems like the reasonable thing to say. I would imagine that allprojects { isolated.* }
is also valid then.
I would go and test on a small a project to see what fails/warns in Gradle and what doesn't.
According to docs, IsolatedProject
was added in 8.8, in 8.5..8.7 we could use certain Project
properties as far as I recall.
Based on the .isolated restriction I do wonder now if it is too early for a check like this? As the recommended replacement would be either use conventions/plugins, or a pre-alpha stage API. Which is probably fine in builds, but unlikely to be stable in a plugin. Maybe a default-disabled check that can be opted into explicitly?
au...@google.com <au...@google.com> #5
I don't feel like we can wait for isolated projects to be complete before doing work in this space. I'd rather have this check be on by default and you can turn it off if you think you know better.
pa...@gmail.com <pa...@gmail.com> #6
Fair, nice thinking! 👍
Description
Version used: N/A, latest at the moment is 1.0.0-alpha03
Implement this recommendation: