Skip to content

Commit bbd0649

Browse files
committed
Fix usage of incorrect BuildLayout
There's two of them, both marked as an `@Service`. One of them is internal. I was using the internal one. Thank you Gradle.
1 parent 50db927 commit bbd0649

File tree

8 files changed

+30
-18
lines changed

8 files changed

+30
-18
lines changed

gradle-plugin/changelog-gradle/src/main/groovy/net/minecraftforge/gitversion/gradle/changelog/package-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* SPDX-License-Identifier: LGPL-2.1-only
44
*/
55
// TODO [GitVersion Gradle] Documentation
6+
/// The Changelog plugin, powered by Git Version, enables projects to generate a changelog based on Git version history.
67
@NotNullByDefault
78
package net.minecraftforge.gitversion.gradle.changelog;
89

gradle-plugin/settings.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ dependencyResolutionManagement {
3434
versionCatalogs.register('libs') {
3535
plugin 'licenser', 'net.minecraftforge.licenser' version '1.2.0' // https://plugins.gradle.org/plugin/net.minecraftforge.licenser
3636
plugin 'javadoc-links', 'io.freefair.javadoc-links' version '8.14' // https://plugins.gradle.org/plugin/io.freefair.javadoc-links
37-
plugin 'gitversion', 'net.minecraftforge.gitversion' version '3.0.0-beta.22' // https://plugins.gradle.org/plugin/net.minecraftforge.gitversion
38-
plugin 'changelog', 'net.minecraftforge.changelog' version '3.0.0-beta.22' // https://plugins.gradle.org/plugin/net.minecraftforge.changelog
37+
plugin 'gitversion', 'net.minecraftforge.gitversion' version '3.0.0-beta.25' // https://plugins.gradle.org/plugin/net.minecraftforge.gitversion
38+
plugin 'changelog', 'net.minecraftforge.changelog' version '3.0.0-beta.25' // https://plugins.gradle.org/plugin/net.minecraftforge.changelog
3939
plugin 'plugin-publish', 'com.gradle.plugin-publish' version '1.3.1' // https://plugins.gradle.org/plugin/com.gradle.plugin-publish
4040
plugin 'shadow', 'com.gradleup.shadow' version '9.0.2' // https://plugins.gradle.org/plugin/com.gradleup.shadow
4141

@@ -51,8 +51,8 @@ dependencyResolutionManagement {
5151

5252
// GradleUtils
5353
// https://plugins.gradle.org/plugin/net.minecraftforge.gradleutils
54-
library 'gradleutils-shared', 'net.minecraftforge', 'gradleutils-shared' version '3.0.0-beta.27'
55-
library 'gradleutils-plugin', 'net.minecraftforge.gradleutils', 'net.minecraftforge.gradleutils.gradle.plugin' version '3.0.0-beta.28'
54+
library 'gradleutils-shared', 'net.minecraftforge', 'gradleutils-shared' version '3.0.0-beta.30'
55+
library 'gradleutils-plugin', 'net.minecraftforge.gradleutils', 'net.minecraftforge.gradleutils.gradle.plugin' version '3.0.0-beta.30'
5656

5757
// Git Version
5858
library 'gson', 'com.google.code.gson', 'gson' version '2.13.1'

gradle-plugin/src/main/groovy/net/minecraftforge/gitversion/gradle/GitVersionExtensionImpl.groovy

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import org.gradle.api.model.ObjectFactory
1414
import org.gradle.api.plugins.ExtensionAware
1515
import org.gradle.api.provider.Property
1616
import org.gradle.api.provider.ProviderFactory
17-
import org.gradle.initialization.layout.BuildLayout
1817
import org.jetbrains.annotations.Nullable
1918

2019
import javax.inject.Inject
@@ -25,19 +24,17 @@ import javax.inject.Inject
2524
private final Property<Output> gitversion
2625

2726
protected abstract @Inject ObjectFactory getObjects()
28-
protected abstract @Inject BuildLayout getBuildLayout()
2927
protected abstract @Inject ProviderFactory getProviders()
3028

3129
@Inject
32-
GitVersionExtensionImpl(GitVersionPlugin plugin, ExtensionAware target) {
33-
@Nullable final project = target instanceof Project ? target : null
34-
30+
GitVersionExtensionImpl(GitVersionPlugin plugin, ExtensionAware target, Directory projectDirectory) {
3531
this.problems = this.objects.newInstance(GitVersionProblems)
3632
this.gitversion = this.objects.property(Output)
37-
.value(GitVersionValueSource.of(plugin, this.providers, project?.layout?.projectDirectory?.asFile ?: this.buildLayout.rootDirectory))
33+
.value(GitVersionValueSource.of(plugin, this.providers, projectDirectory))
3834
.tap { disallowChanges(); finalizeValueOnRead() }
3935

40-
project?.afterEvaluate { this.finish(it) }
36+
if (target instanceof Project)
37+
target.afterEvaluate { this.finish(it) }
4138
}
4239

4340
@CompileDynamic

gradle-plugin/src/main/groovy/net/minecraftforge/gitversion/gradle/GitVersionPlugin.groovy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,16 @@ abstract class GitVersionPlugin extends EnhancedPlugin<ExtensionAware> {
3131

3232
@Override
3333
void setup(ExtensionAware target) {
34-
if (target instanceof Project && target.layout.projectDirectory.asFile == this.buildLayout.rootDirectory.asFile) {
34+
// Gradle 9.0.0 removes the ability to move the settings.gradle file, so it is guaranteed to be the root directory
35+
if (target instanceof Project && this.projectLayout.projectDirectory.asFile == this.projectLayout.settingsDirectory.asFile) {
3536
var gitversion = target.gradle.extensions.findByType(GitVersionExtension)
3637
if (gitversion !== null) {
3738
target.extensions.add('gitversion', gitversion)
3839
return
3940
}
4041
}
4142

42-
var gitversion = target.extensions.findByType(GitVersionExtension) ?: target.extensions.create(GitVersionExtension.NAME, GitVersionExtensionImpl, this, target)
43+
var gitversion = target.extensions.findByType(GitVersionExtension) ?: target.extensions.create(GitVersionExtension.NAME, GitVersionExtensionImpl, this, target, this.workingProjectDirectory().get())
4344
if (target instanceof Settings) {
4445
target.gradle.extensions.add(GitVersionExtension.NAME, gitversion)
4546
target.gradle.beforeProject { Project project ->

gradle-plugin/src/main/groovy/net/minecraftforge/gitversion/gradle/GitVersionValueSource.groovy

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import groovy.transform.CompileStatic
88
import groovy.transform.PackageScope
99
import net.minecraftforge.gitversion.gradle.common.GitVersionTools
1010
import org.gradle.api.file.ConfigurableFileCollection
11+
import org.gradle.api.file.Directory
12+
import org.gradle.api.file.DirectoryProperty
1113
import org.gradle.api.provider.Property
1214
import org.gradle.api.provider.Provider
1315
import org.gradle.api.provider.ProviderFactory
@@ -27,23 +29,23 @@ import static net.minecraftforge.gitversion.gradle.GitVersionPlugin.LOGGER
2729
static interface Parameters extends ValueSourceParameters {
2830
ConfigurableFileCollection getClasspath()
2931

30-
Property<String> getProjectPath()
32+
DirectoryProperty getProjectPath()
3133
}
3234

3335
@Inject
3436
GitVersionValueSource() {}
3537

3638
protected abstract @Inject ExecOperations getExecOperations()
3739

38-
@PackageScope static Provider<GitVersionExtensionInternal.Output> of(GitVersionPlugin plugin, ProviderFactory providers, File projectDirectory) {
40+
@PackageScope static Provider<GitVersionExtensionInternal.Output> of(GitVersionPlugin plugin, ProviderFactory providers, Directory projectDirectory) {
3941
providers.of(GitVersionValueSource) { spec ->
4042
spec.parameters { parameters ->
4143
parameters.classpath.from(plugin.getTool(GitVersionTools.GITVERSION))
4244
// NOTE: We are NOT manually setting the java launcher this time
4345
// Gradle 9 requires Java 17 to run, and so does Git Version
4446
// We can count on the daemon JVM being 17 or higher without needing the project to apply the 'java' plugin
4547

46-
parameters.projectPath.set(projectDirectory.absolutePath)
48+
parameters.projectPath.set(projectDirectory)
4749
}
4850
}.map { Util.fromJson(it, GitVersionExtensionInternal.Output) }
4951
}
@@ -62,7 +64,7 @@ import static net.minecraftforge.gitversion.gradle.GitVersionPlugin.LOGGER
6264

6365
exec.args(
6466
'--json',
65-
'--project-dir', parameters.projectPath.get()
67+
'--project-dir', parameters.projectPath.locationOnly.get().asFile
6668
)
6769
}
6870

gradle-plugin/src/main/groovy/net/minecraftforge/gitversion/gradle/package-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* SPDX-License-Identifier: LGPL-2.1-only
44
*/
55
// TODO [GitVersion Gradle] Documentation
6+
/// The Git Version plugin enables builds to get version numbers based off of Git version history and tags.
67
@NotNullByDefault
78
package net.minecraftforge.gitversion.gradle;
89

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ dependencyResolutionManagement {
3030
// Plugins
3131
plugin 'javadoc-links', 'io.freefair.javadoc-links' version '8.14'
3232
plugin 'licenser', 'net.minecraftforge.licenser' version '1.2.0'
33-
plugin 'gradleutils', 'net.minecraftforge.gradleutils' version '3.0.0-beta.20'
33+
plugin 'gradleutils', 'net.minecraftforge.gradleutils' version '3.0.0-beta.30'
3434
plugin 'shadow', 'com.gradleup.shadow' version '9.0.2'
3535

3636
// Git

src/main/java/net/minecraftforge/gitver/api/GitVersion.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,16 @@ sealed interface Info extends Serializable permits GitVersionInternal.Info {
263263
*/
264264
String getProjectPath();
265265

266+
/**
267+
* Gets the relative path string of a given file.
268+
* <p>
269+
* This path string is calculated using the
270+
* {@linkplain java.nio.file.Path#relativize(java.nio.file.Path) relative path} from either the
271+
* {@linkplain #getProject() path}.
272+
*
273+
* @param file The file to get the relative path to
274+
* @return The relative path string
275+
*/
266276
String getRelativePath(File file);
267277

268278
/**

0 commit comments

Comments
 (0)