Skip to content

Commit

Permalink
Fix/multiple publications (#3)
Browse files Browse the repository at this point in the history
* update Gradle 8.1.1

* update JUnit, Kotest, BCV-MU

* improve settings.gradle.kts used in tests, to filter repository content to only include the dev-publish plugin

* tidy up settings.gradle.kts

* big ol' refactor

- split up DevPublishPlugin into smaller classes
- fix problem where a change in a single publication would cause the other publications to be lost
- create a build service to prevent concurrency issues
- create base DevRepoTask for all dev-publish tasks
- mark some properties as `@DevPublishInternalApi`

* update KDoc for DevPublishPluginExtension properties

* actually update Gradle to 8.1.1...

* remove most of the shared-build-service config because it's not really necessary, and even if it was necessary it doesn't really work gradle/gradle#17559
  • Loading branch information
aSemy authored May 1, 2023
1 parent 757e9f6 commit b786f47
Show file tree
Hide file tree
Showing 21 changed files with 715 additions and 320 deletions.
29 changes: 17 additions & 12 deletions api/dev-publish-plugin.api
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ public final class dev/adamko/gradle/dev_publish/DevPublishPlugin : org/gradle/a
public static final field DEV_PUB__MAVEN_REPO_NAME Ljava/lang/String;
public static final field DEV_PUB__PUBLICATION_INCOMING_DEPENDENCIES Ljava/lang/String;
public static final field DEV_PUB__PUBLICATION_PROVIDED_DEPENDENCIES Ljava/lang/String;
public static final field DEV_PUB__TASK_GROUP Ljava/lang/String;
public static final field DEV_PUB__UPDATE_DEV_REPO_TASK_NAME Ljava/lang/String;
public fun <init> (Lorg/gradle/api/provider/ProviderFactory;Lorg/gradle/api/file/ProjectLayout;Lorg/gradle/api/file/FileSystemOperations;Lorg/gradle/api/model/ObjectFactory;)V
public synthetic fun apply (Ljava/lang/Object;)V
public fun apply (Lorg/gradle/api/Project;)V
Expand All @@ -20,16 +18,9 @@ public final class dev/adamko/gradle/dev_publish/DevPublishPlugin$configureMaven
public final synthetic fun execute (Ljava/lang/Object;)V
}

public final class dev/adamko/gradle/dev_publish/DevPublishPlugin$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action {
public fun <init> (Lkotlin/jvm/functions/Function1;)V
public final synthetic fun execute (Ljava/lang/Object;)V
}

public abstract class dev/adamko/gradle/dev_publish/DevPublishPluginExtension {
public fun <init> ()V
public abstract fun getChecksumsStore ()Lorg/gradle/api/file/DirectoryProperty;
public abstract fun getDevMavenRepo ()Lorg/gradle/api/file/DirectoryProperty;
public abstract fun getStagingDevMavenRepo ()Lorg/gradle/api/file/DirectoryProperty;
}

public abstract class dev/adamko/gradle/dev_publish/data/PublicationData : org/gradle/api/Named {
Expand All @@ -42,19 +33,33 @@ public abstract class dev/adamko/gradle/dev_publish/data/PublicationData : org/g
public abstract interface annotation class dev/adamko/gradle/dev_publish/internal/DevPublishInternalApi : java/lang/annotation/Annotation {
}

public abstract class dev/adamko/gradle/dev_publish/tasks/GeneratePublicationHashTask : org/gradle/api/DefaultTask {
public abstract class dev/adamko/gradle/dev_publish/tasks/BaseDevPublishTask : org/gradle/api/DefaultTask {
public static final field Companion Ldev/adamko/gradle/dev_publish/tasks/BaseDevPublishTask$Companion;
public static final field TASK_GROUP Ljava/lang/String;
public fun <init> ()V
}

public final class dev/adamko/gradle/dev_publish/tasks/BaseDevPublishTask$Companion {
}

public final class dev/adamko/gradle/dev_publish/tasks/DevPublishTasksContainer$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action {
public fun <init> (Lkotlin/jvm/functions/Function1;)V
public final synthetic fun execute (Ljava/lang/Object;)V
}

public abstract class dev/adamko/gradle/dev_publish/tasks/GeneratePublicationDataChecksumTask : dev/adamko/gradle/dev_publish/tasks/BaseDevPublishTask {
public fun <init> (Lorg/gradle/api/file/FileSystemOperations;)V
public final fun generate ()V
public abstract fun getOutputDirectory ()Lorg/gradle/api/file/DirectoryProperty;
public abstract fun getPublicationData ()Lorg/gradle/api/NamedDomainObjectContainer;
}

public abstract class dev/adamko/gradle/dev_publish/tasks/UpdateDevRepoTask : org/gradle/api/DefaultTask {
public abstract class dev/adamko/gradle/dev_publish/tasks/UpdateDevRepoTask : dev/adamko/gradle/dev_publish/tasks/BaseDevPublishTask {
public fun <init> (Lorg/gradle/api/file/FileSystemOperations;)V
public fun from (Lorg/gradle/api/provider/Provider;)V
public abstract fun getDevRepo ()Lorg/gradle/api/file/DirectoryProperty;
public abstract fun getPublicationsStore ()Lorg/gradle/api/file/DirectoryProperty;
public abstract fun getRepositoryContents ()Lorg/gradle/api/file/ConfigurableFileCollection;
public abstract fun getStagingRepo ()Lorg/gradle/api/file/DirectoryProperty;
public final fun updateDevRepo ()V
}

3 changes: 1 addition & 2 deletions buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ rootProject.name = "buildSrc"

pluginManagement {
repositories {
gradlePluginPortal()
mavenCentral()
gradlePluginPortal()
}
}

@Suppress("UnstableApiUsage")
dependencyResolutionManagement {

repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)

repositories {
Expand Down
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[versions]

junit = "5.9.2"
kotest = "5.5.5"
junit = "5.9.3"
kotest = "5.6.0"

gradlePlugin-pluginPublishPlugin = "1.1.0"
gradlePlugin-bcvMu = "0.0.3"
gradlePlugin-bcvMu = "0.0.5"

[libraries]

Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
7 changes: 4 additions & 3 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,6 @@ done
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum

Expand Down Expand Up @@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then
done
fi


# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
Expand Down
12 changes: 1 addition & 11 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ rootProject.name = "dev-publish-plugin"

pluginManagement {
repositories {
gradlePluginPortal()
mavenCentral()
gradlePluginPortal()
}
}

Expand All @@ -13,16 +13,6 @@ dependencyResolutionManagement {

repositories {
mavenCentral()
gradlePluginPortal()

ivy("https://services.gradle.org/") {
name = "Gradle Services"
patternLayout {
// https://services.gradle.org/distributions/gradle-8.0.2-bin.zip
artifact("[organisation]/[module]-[revision]-bin.zip")
}
metadataSources { artifact() }
}
}
}

Expand Down
Loading

0 comments on commit b786f47

Please sign in to comment.