Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
kgp = "2.3.0"
nmcp = "1.4.3"
nmcp-build-time = "1.4.4-SNAPSHOT-7b0410ef4061d1249c7b161698764b8194838354"
mosaic = "0.18.0"
mosaic = "0.19.0-gradleup.0"

[libraries]
agp = "com.android.tools.build:gradle:8.2.0"
Expand All @@ -18,8 +18,6 @@ dokka = "org.jetbrains.dokka:dokka-gradle-plugin:2.1.0-Beta"
google-auth = "com.google.auth:google-auth-library-oauth2-http:1.19.0"
gradle-api = "dev.gradleplugins:gradle-api:8.8"
gratatouille-gradle-plugin = "com.gradleup.gratatouille:com.gradleup.gratatouille.gradle.plugin:0.2.2"
inquirer = "com.github.kotlin-inquirer:kotlin-inquirer:0.1.0"
jansi = "org.fusesource.jansi:jansi:2.4.0"
jsonpath = "com.eygraber:jsonpathkt-kotlinx:3.0.2"
jsonpathkt = "com.eygraber:jsonpathkt-kotlinx:3.0.2"
kgp-compile-only = "org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.20-Beta1"
Expand All @@ -28,8 +26,9 @@ ksp-gradle-plugin = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plug
librarian-gradle-plugin = "com.gradleup.librarian:librarian-gradle-plugin:0.2.2-SNAPSHOT-05f300b66924ec4c98ed4afcc6eed459fd08806b"
maven-sympathy = "com.gradleup.maven-sympathy:maven-sympathy:0.0.2"
mockserver = "com.apollographql.mockserver:apollo-mockserver:0.0.3"
mordant = "com.github.ajalt.mordant:mordant:2.7.1"
mosaic-runtime = { module = "com.jakewharton.mosaic:mosaic-runtime", version.ref = "mosaic" }
# forked for https://github.com/JakeWharton/mosaic/pull/1100
# reminder to remove the gradleup repository from settings.gradle.kts when not forking anymore
mosaic-runtime = { module = "com.gradleup.mosaic:mosaic-runtime", version.ref = "mosaic" }
nmcp = { module = "com.gradleup.nmcp:com.gradleup.nmcp.gradle.plugin", version.ref = "nmcp" }
nmcp-tasks = { module = "com.gradleup.nmcp:nmcp-tasks", version.ref = "nmcp" }
nmcp-build-time = { module = "com.gradleup.nmcp:com.gradleup.nmcp.gradle.plugin", version.ref = "nmcp-build-time" }
Expand Down
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-9.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
59 changes: 7 additions & 52 deletions librarian-cli/api/librarian-cli.api
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,6 @@ public final class com/gradleup/librarian/cli/MainKt {
public static final fun main ([Ljava/lang/String;)V
}

public final class com/gradleup/librarian/cli/MultilineSecretComponent : com/github/kinquirer/core/Component {
public static final field $stable I
public fun <init> (Ljava/lang/String;)V
public fun isInteracting ()Z
public fun onEvent (Lcom/github/kinquirer/core/KInquirerEvent;)V
public fun render ()Ljava/lang/String;
public synthetic fun value ()Ljava/lang/Object;
public fun value ()Ljava/lang/String;
}

public final class com/gradleup/librarian/cli/Update_repoKt {
public static final fun main ([Ljava/lang/String;)V
public static final fun updateRepo ([Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun updateRepo$default ([Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
}

public final class com/gradleup/librarian/cli/UtilsKt {
public static final fun requireInteraction ()V
}

public final class com/gradleup/librarian/cli/VersionKt {
public static final field VERSION Ljava/lang/String;
}
Expand Down Expand Up @@ -61,8 +41,8 @@ public final class com/gradleup/librarian/cli/command/VersionContext {
public final fun getVersion ()Ljava/lang/String;
}

public final class com/gradleup/librarian/cli/command/init/GitHubSecretsKt {
public static final fun setSecrets (Ljava/nio/file/Path;)V
public final class com/gradleup/librarian/cli/command/Version_utilsKt {
public static final fun librarianCurrentVersion ()Ljava/lang/String;
}

public final class com/gradleup/librarian/cli/command/init/GradleWrapperCommand : com/github/ajalt/clikt/core/CliktCommand {
Expand All @@ -71,35 +51,10 @@ public final class com/gradleup/librarian/cli/command/init/GradleWrapperCommand
public fun run ()V
}

public final class com/gradleup/librarian/cli/component/Choice {
public static final field $stable I
public fun <init> (Ljava/lang/String;Ljava/lang/Object;)V
public final fun getData ()Ljava/lang/Object;
public final fun getText ()Ljava/lang/String;
}

public final class com/gradleup/librarian/cli/component/ListInputKt {
public static final fun ListInput (Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V
public static final fun ListInput2 (Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V
}

public final class com/gradleup/librarian/cli/component/TextInputKt {
public static final fun TextInput-ObWx_Vo (Ljava/lang/String;Lcom/jakewharton/mosaic/modifier/Modifier;ILkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V
}

public final class com/gradleup/librarian/cli/screen/AskVersionKt {
public static final fun AskVersion (Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V
}

public final class com/gradleup/librarian/cli/screen/MainScreenKt {
public static final fun MainScreen (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V
}

public final class com/gradleup/librarian/cli/screen/PrepareNextVersionScreenKt {
public static final fun CommitChangesScreen (Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V
}

public final class com/gradleup/librarian/cli/screen/SetVersionScreenKt {
public static final fun SetVersionScreen (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V
public final class com/gradleup/librarian/repo/Update_repoKt {
public static final fun librarianSetVersion (Lcom/gradleup/librarian/cli/command/VersionContext;)V
public static final fun main ([Ljava/lang/String;)V
public static final fun updateRepo (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
public static synthetic fun updateRepo$default (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
}

4 changes: 1 addition & 3 deletions librarian-cli/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,15 @@ Librarian.module(project)
dependencies {
implementation(project(":librarian-core"))
api(libs.clikt)
implementation(libs.inquirer)
implementation(libs.mordant)
implementation(libs.mosaic.runtime)

implementation(libs.jansi)
testImplementation(kotlin("test"))
}

val startScriptTaskProvider =
tasks.register("createStartScript", org.gradle.jvm.application.tasks.CreateStartScripts::class.java) {
outputDir = file("build/start_scripts/")
//mainClass.set("com.gradleup.librarian.repo.Update_repoKt")
mainClass.set("com.gradleup.librarian.cli.MainKt")
applicationName = "librarian"
classpath = files(configurations["runtimeClasspath"], tasks.named("jar").map { it.outputs.files.files })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@ package com.gradleup.librarian.cli.command

import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.kinquirer.KInquirer
import com.github.kinquirer.components.promptConfirm
import com.github.kinquirer.components.promptInput
import com.github.kinquirer.components.promptList
import com.gradleup.librarian.cli.promptChoices
import com.gradleup.librarian.cli.promptConfirm
import com.gradleup.librarian.cli.promptInput
import com.gradleup.librarian.core.tooling.GitHubRepository
import com.gradleup.librarian.core.tooling.getAvailableOrganizations
import com.gradleup.librarian.core.tooling.init.SupportedLicense
Expand Down Expand Up @@ -38,7 +37,7 @@ internal class Create : CliktCommand() {

with(Path(directory)) {
if (exists()) {
if(KInquirer.promptConfirm("'$directory' already exists. Overwrite?", false)) {
if(promptConfirm("'$directory' already exists. Overwrite?", false)) {
deleteRecursively()
} else {
exitProcess(1)
Expand All @@ -59,17 +58,17 @@ internal class Create : CliktCommand() {

""".trimIndent())

val gitHubProjectName = KInquirer.promptInput(message = "GitHub repository name", directory)
val gitHubProjectOwner = KInquirer.promptList(message = "GitHub repository owner", getAvailableOrganizations())
val license = KInquirer.promptList("License", SupportedLicense.entries.map { it.name }).toSupportedLicense()
val copyrightHolder = KInquirer.promptInput("Copyright holder", "$gitHubProjectName authors")
val groupId = KInquirer.promptInput("Maven group id", "io.github.${gitHubProjectOwner}.${gitHubProjectName}")
val pomDescription = KInquirer.promptInput("Maven pom description")
val pomDeveloper = KInquirer.promptInput("Maven pom developer", copyrightHolder)
val multiplatform = KInquirer.promptConfirm("Kotlin multiplatform project")
val javaCompatibility = KInquirer.promptInput("Java compatibility", "8")
val kotlinCompatibility = KInquirer.promptInput("Kotlin compatibility", librarianKotlinPluginVersion)
val indent = KInquirer.promptInput("Indent size", "4")
val gitHubProjectName = promptInput(name = "GitHub repository name", directory)
val gitHubProjectOwner = promptChoices(message = "GitHub repository owner", getAvailableOrganizations())
val license = promptChoices("License", SupportedLicense.entries.map { it.name }).toSupportedLicense()
val copyrightHolder = promptInput("Copyright holder", "$gitHubProjectName authors")
val groupId = promptInput("Maven group id", "io.github.${gitHubProjectOwner}.${gitHubProjectName}")
val pomDescription = promptInput("Maven pom description")
val pomDeveloper = promptInput("Maven pom developer", copyrightHolder)
val multiplatform = promptConfirm("Kotlin multiplatform project")
val javaCompatibility = promptInput("Java compatibility", "8")
val kotlinCompatibility = promptInput("Kotlin compatibility", librarianKotlinPluginVersion)
val indent = promptInput("Indent size", "4")

val repository = GitHubRepository(gitHubProjectOwner, gitHubProjectName)
print("Writing files...")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package com.gradleup.librarian.cli.command

import com.github.ajalt.clikt.core.CliktCommand
import com.github.kinquirer.KInquirer
import com.github.kinquirer.components.promptConfirm
import com.github.kinquirer.components.promptInput
import com.github.kinquirer.components.promptList
import com.gradleup.librarian.cli.command.init.setSecrets
import com.gradleup.librarian.cli.promptChoices
import com.gradleup.librarian.cli.promptConfirm
import com.gradleup.librarian.cli.promptInput
import com.gradleup.librarian.core.tooling.GH
import com.gradleup.librarian.core.tooling.GitHubRepository
import com.gradleup.librarian.core.tooling.getAvailableOrganizations
Expand All @@ -22,16 +21,16 @@ class CreateGitHubRepository : CliktCommand() {
override fun run() {

Path(".").apply {
val gitHubProjectName = KInquirer.promptInput(message = "GitHub repository name", this.absolute().normalize().name)
val gitHubProjectOwner = KInquirer.promptList(message = "GitHub repository owner", getAvailableOrganizations())
val gitHubProjectName = promptInput(name = "GitHub repository name", this.absolute().normalize().name)
val gitHubProjectOwner = promptChoices(message = "GitHub repository owner", getAvailableOrganizations())
val repository = GitHubRepository(gitHubProjectOwner, gitHubProjectName)
createGitHubRepository(repository, "")
}
}
}

internal fun Path.createGitHubRepository(repository: GitHubRepository, defaultDescription: String): UploadResult {
val upload = KInquirer.promptConfirm(
val upload = promptConfirm(
"Create public GitHub repository at ${repository.owner}/${repository.name}?",
default = true
)
Expand All @@ -41,8 +40,8 @@ internal fun Path.createGitHubRepository(repository: GitHubRepository, defaultDe

runCommand("gh", "repo", "create", "--public", "-s", ".", "--push", "${repository.owner}/${repository.name}",)

val gitHubDescription = KInquirer.promptInput("GitHub description", defaultDescription)
val gitHubTopics = KInquirer.promptInput("GitHub topics (use comma separated list)", "kotlin").split(",").map { it.trim() }
val gitHubDescription = promptInput("GitHub description", defaultDescription)
val gitHubTopics = promptInput("GitHub topics (use comma separated list)", "kotlin").split(",").map { it.trim() }
println("Setting GitHub metadata...")
initMetadata(gitHubDescription, null, gitHubTopics)

Expand All @@ -54,7 +53,7 @@ internal fun Path.createGitHubRepository(repository: GitHubRepository, defaultDe
gh.createBranch("gh-pages")
gh.enablePages("gh-pages")

val secrets = KInquirer.promptConfirm(
val secrets = promptConfirm(
"Set your project secrets now?",
default = true
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
package com.gradleup.librarian.cli.command

import com.github.ajalt.clikt.core.CliktCommand
import com.github.kinquirer.KInquirer
import com.github.kinquirer.components.promptConfirm
import com.github.kinquirer.components.promptInput
import com.github.kinquirer.components.promptInputPassword
import com.gradleup.librarian.cli.promptConfirm
import com.gradleup.librarian.cli.promptInput
import com.gradleup.librarian.cli.promptPassword
import com.gradleup.librarian.core.tooling.armored
import com.gradleup.librarian.core.tooling.secretKeyRing
import kotlin.io.path.Path
import kotlin.io.path.writeText

class GenerateKey: CliktCommand() {
override fun run() {
val name = KInquirer.promptInput("Real name")
val email = KInquirer.promptInput("Email")
val password = KInquirer.promptInputPassword("Private key password")
val name = promptInput("Real name")
val email = promptInput("Email")
val password = promptPassword("Private key password")

Path("librarian_private_key.asc").writeText(secretKeyRing(name, email, password).secretKey().armored())

println("Your private key has been saved as 'librarian_private_key.asc', keep it safe.")

val upload = KInquirer.promptConfirm("Upload your key to ")
val upload = promptConfirm("Upload your key to ")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ package com.gradleup.librarian.cli.command

import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.core.subcommands
import com.github.kinquirer.KInquirer
import com.github.kinquirer.components.promptConfirm
import com.github.kinquirer.components.promptInput
import com.github.kinquirer.components.promptList
import com.gradleup.librarian.cli.promptConfirm
import com.gradleup.librarian.cli.command.init.ActionsCommand
import com.gradleup.librarian.cli.command.init.ChangelogCommand
import com.gradleup.librarian.cli.command.init.CodeStyleCommand
Expand All @@ -16,6 +13,9 @@ import com.gradleup.librarian.cli.command.init.LicenseCommand
import com.gradleup.librarian.cli.command.init.GitHubSecretsCommand
import com.gradleup.librarian.cli.command.init.GitHubMetadataCommand
import com.gradleup.librarian.cli.command.init.WriterSideCommand
import com.gradleup.librarian.cli.exit
import com.gradleup.librarian.cli.promptChoices
import com.gradleup.librarian.cli.promptInput
import com.gradleup.librarian.core.tooling.init.SupportedLicense
import com.gradleup.librarian.core.tooling.init.currentYear
import com.gradleup.librarian.core.tooling.init.guessLicenseOrNull
Expand Down Expand Up @@ -59,8 +59,8 @@ internal class Init : CliktCommand(invokeWithoutSubcommand = true) {
val license: SupportedLicense
if (licenseCandidates.isEmpty()) {
val defaultCopyrightOwners = "${gitHubRepository?.name ?: name} authors"
license = KInquirer.promptList("License", SupportedLicense.entries.map { it.name }).toSupportedLicense()
val copyrightHolder = KInquirer.promptInput("Copyright holder", defaultCopyrightOwners)
license = promptChoices("License", SupportedLicense.entries.map { it.name }).toSupportedLicense()
val copyrightHolder = promptInput("Copyright holder", defaultCopyrightOwners)
println("Creating LICENSE...")
initLicense(license, currentYear(), copyrightHolder)
} else if (licenseCandidates.size == 1) {
Expand Down Expand Up @@ -92,12 +92,12 @@ internal class Init : CliktCommand(invokeWithoutSubcommand = true) {

val defaultDevelopers = "${gitHubRepository?.name ?: name} authors"

val groupId = KInquirer.promptInput("Maven group id")
val pomDescription = KInquirer.promptInput("Maven pom description")
val pomDeveloper = KInquirer.promptInput("Maven pom developer", defaultDevelopers)
val projectUrl = gitHubRepository?.url() ?: KInquirer.promptInput("Maven pom project url")
val javaCompatibility = KInquirer.promptInput("Java compatibility", "8")
val kotlinCompatibility = KInquirer.promptInput("Kotlin compatibility", librarianKotlinPluginVersion)
val groupId = promptInput("Maven group id")
val pomDescription = promptInput("Maven pom description")
val pomDeveloper = promptInput("Maven pom developer", defaultDevelopers)
val projectUrl = gitHubRepository?.url() ?: promptInput("Maven pom project url")
val javaCompatibility = promptInput("Java compatibility", "8")
val kotlinCompatibility = promptInput("Kotlin compatibility", librarianKotlinPluginVersion)

initLibrarian(
javaCompatibility = javaCompatibility,
Expand All @@ -110,7 +110,7 @@ internal class Init : CliktCommand(invokeWithoutSubcommand = true) {
)

if (gitHubRepository != null) {
val addDocumentationSite = KInquirer.promptConfirm("Add Writerside documentation site?", true)
val addDocumentationSite = promptConfirm("Add Writerside documentation site?", true)
if (addDocumentationSite) {
// Writer side "edit on GitHub" requires GitHub
initWriterside(gitHubRepository)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ internal class MainCommand: CliktCommand(invokeWithoutSubcommand = true) {
val version by option().flag()

init {
subcommands(Create(), CreateGitHubRepository(), Init(), TagAndBump(), TriggerTagAndBump(), GenerateKey(), UploadKey() )
subcommands(Create(), CreateGitHubRepository(), Init(), GenerateKey(), UploadKey() )
}

override fun run() {
Expand Down

This file was deleted.

Loading
Loading