With #992 and #991 done, the remaining Gradle isolation feature FG7 doesn't support is Isolated Projects, which parallelizes the configuration phase and requires that a project never reach into another project's model.
FG7 has exactly one violation. Gradle 9.6.1, -Dorg.gradle.unsafe.isolated-projects=true:
Project ':forge' cannot access 'Project.layout' functionality on another project ':'
plugin class 'net.minecraftforge.gradle.internal.ForgeGradlePlugin'
It comes from the two plugin.rootProjectDirectory() calls in MinecraftExtensionImpl, which place the Mavenizer repo and the per-dependency JSONs under the root project's directory. ProjectLayout.getSettingsDirectory() resolves to the same location without going through another Project, so this may be a drop-in swap — and it overlaps with #1057, which wants that location configurable anyway.
With #992 and #991 done, the remaining Gradle isolation feature FG7 doesn't support is Isolated Projects, which parallelizes the configuration phase and requires that a project never reach into another project's model.
FG7 has exactly one violation. Gradle 9.6.1,
-Dorg.gradle.unsafe.isolated-projects=true:It comes from the two
plugin.rootProjectDirectory()calls inMinecraftExtensionImpl, which place the Mavenizer repo and the per-dependency JSONs under the root project's directory.ProjectLayout.getSettingsDirectory()resolves to the same location without going through anotherProject, so this may be a drop-in swap — and it overlaps with #1057, which wants that location configurable anyway.