Skip to content

Commit

Permalink
Set default KtLint version to '0.41.0'.
Browse files Browse the repository at this point in the history
Use KtLint classes when doing serialization/deserialization and KtLint version is '0.41.0'.
  • Loading branch information
Tapchicoma committed Apr 6, 2021
1 parent 09fcfa7 commit 85e6600
Show file tree
Hide file tree
Showing 17 changed files with 274 additions and 93 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- ?
### Changed
- Updated Gradle to `6.8.3` version
- Updated default KtLint version to `0.41.0`
### Fixed
- Plugin fails to apply on non-Kotlin projects ([#443](https://github.com/JLLeitschuh/ktlint-gradle/issues/443))
### Removed
Expand Down
2 changes: 1 addition & 1 deletion plugin/buildSrc/src/main/kotlin/PluginDependencies.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
object PluginVersions {
val kotlin = "1.4.30"
val ktlintPlugin = "9.3.0"
val ktlint = "0.40.0"
val ktlint = "0.41.0"
val gradlePublishPlugin = "0.12.0"
val androidPlugin = "4.1.0"
val semver = "1.1.1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package org.jlleitschuh.gradle.ktlint
import net.swiftzer.semver.SemVer
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.component.ModuleComponentIdentifier
import org.gradle.api.artifacts.component.ModuleComponentSelector
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.gradle.api.artifacts.result.ResolvedDependencyResult
import org.gradle.api.attributes.Bundling
import org.gradle.util.GradleVersion

internal const val KTLINT_CONFIGURATION_NAME = "ktlint"
Expand All @@ -23,16 +23,16 @@ internal fun createKtlintConfiguration(target: Project, extension: KtlintExtensi
if (state != Configuration.State.UNRESOLVED) return@apply

description = KTLINT_CONFIGURATION_DESCRIPTION
val dependencyProvider = target.provider<Dependency> {

// Starting from KtLint 0.41.0 version published artifact has two variants: "external" and "shadowed"
attributes {
it.attribute(Bundling.BUNDLING_ATTRIBUTE, target.objects.named(Bundling::class.java, Bundling.EXTERNAL))
}

val dependencyProvider = target.provider {
val ktlintVersion = extension.version.get()
target.logger.info("Add dependency: ktlint version $ktlintVersion")
target.dependencies.create(
mapOf(
"group" to resolveGroup(ktlintVersion),
"name" to "ktlint",
"version" to ktlintVersion
)
)
target.dependencies.create("${resolveGroup(ktlintVersion)}:ktlint:$ktlintVersion")
}
dependencies.addLater(dependencyProvider)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ internal constructor(
)

/**
* The version of ktlint to use.
* The version of KtLint to use.
*/
val version: Property<String> = objectFactory.property { set("0.40.0") }
val version: Property<String> = objectFactory.property { set("0.41.0") }

/**
* Enable verbose mode.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,5 @@ private fun <T : BaseKtLintCheckTask> GenerateReportsTask.commonConfiguration(
outputColorName.set(pluginHolder.extension.outputColorName)
ignoreFailures.set(pluginHolder.extension.ignoreFailures)
verbose.set(pluginHolder.extension.verbose)
ktLintVersion.set(pluginHolder.extension.version)
}
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ abstract class BaseKtLintCheckTask @Inject constructor(
params.additionalEditorconfigFile.set(additionalEditorconfigFile)
params.formatSource.set(formatSources)
params.discoveredErrorsFile.set(discoveredErrors)
params.ktLintVersion.set(ktLintVersion)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ abstract class GenerateReportsTask @Inject constructor(
@get:Input
internal abstract val verbose: Property<Boolean>

@get:Input
internal abstract val ktLintVersion: Property<String>

init {
// Workaround for https://github.com/gradle/gradle/issues/2919
onlyIf {
Expand Down Expand Up @@ -122,6 +125,7 @@ abstract class GenerateReportsTask @Inject constructor(
param.reporterId.set(loadedReporter.reporterId)
param.reporterOutput.set(reporterOutput)
param.reporterOptions.set(generateReporterOptions(loadedReporter))
param.ktLintVersion.set(ktLintVersion)
}
}

Expand All @@ -131,6 +135,7 @@ abstract class GenerateReportsTask @Inject constructor(
param.ignoreFailures.set(ignoreFailures)
param.verbose.set(verbose)
param.generatedReportsPaths.from(loadedReporters.values)
param.ktLintVersion.set(ktLintVersion)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ internal abstract class LoadReportersTask @Inject constructor(
param.customReporters.set(customReporters)
param.loadedReporters.set(loadedReporters)
param.loadedReporterProviders.set(loadedReporterProviders)
param.ktLintVersion.set(ktLintVersion)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.jlleitschuh.gradle.ktlint.worker

import com.pinterest.ktlint.core.LintError
import net.swiftzer.semver.SemVer
import org.gradle.api.GradleException
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.RegularFileProperty
Expand All @@ -16,7 +17,13 @@ internal abstract class ConsoleReportWorkAction : WorkAction<ConsoleReportWorkAc
private val logger = Logging.getLogger("ktlint-console-report-worker")

override fun execute() {
val errors = loadErrors(parameters.discoveredErrors.asFile.get())
val errors = KtLintClassesSerializer
.create(
SemVer.parse(parameters.ktLintVersion.get())
)
.loadErrors(
parameters.discoveredErrors.asFile.get()
)

if (parameters.outputToConsole.getOrElse(false)) {
val verbose = parameters.verbose.get()
Expand All @@ -26,7 +33,7 @@ internal abstract class ConsoleReportWorkAction : WorkAction<ConsoleReportWorkAc
.lintErrors
.filter { !it.second }
.forEach {
it.first.lintError.logError(filePath, verbose)
it.first.logError(filePath, verbose)
}
}
}
Expand Down Expand Up @@ -66,5 +73,6 @@ internal abstract class ConsoleReportWorkAction : WorkAction<ConsoleReportWorkAc
val ignoreFailures: Property<Boolean>
val verbose: Property<Boolean>
val generatedReportsPaths: ConfigurableFileCollection
val ktLintVersion: Property<String>
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.jlleitschuh.gradle.ktlint.worker

import net.swiftzer.semver.SemVer
import org.gradle.api.GradleException
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.MapProperty
Expand All @@ -12,9 +13,17 @@ import java.io.PrintStream
internal abstract class GenerateReportsWorkAction : WorkAction<GenerateReportsWorkAction.GenerateReportsParameters> {

override fun execute() {
val discoveredErrors = loadErrors(parameters.discoveredErrorsFile.get().asFile)
val ktLintClassesSerializer = KtLintClassesSerializer
.create(
SemVer.parse(parameters.ktLintVersion.get())
)

val discoveredErrors = ktLintClassesSerializer.loadErrors(parameters.discoveredErrorsFile.get().asFile)
val currentReporterId = parameters.reporterId.get()
val reporterProvider = loadReporterProviders(parameters.loadedReporterProviders.asFile.get())
val reporterProvider = ktLintClassesSerializer
.loadReporterProviders(
parameters.loadedReporterProviders.asFile.get()
)
.find { it.id == currentReporterId }
?: throw GradleException("Could not find ReporterProvider \"$currentReporterId\"")

Expand All @@ -31,7 +40,7 @@ internal abstract class GenerateReportsWorkAction : WorkAction<GenerateReportsWo
val filePath = lintErrorResult.lintedFile.absolutePath
reporter.before(filePath)
lintErrorResult.lintErrors.forEach {
reporter.onLintError(filePath, it.first.lintError, it.second)
reporter.onLintError(filePath, it.first, it.second)
}
reporter.after(filePath)
}
Expand All @@ -45,5 +54,6 @@ internal abstract class GenerateReportsWorkAction : WorkAction<GenerateReportsWo
val reporterId: Property<String>
val reporterOutput: RegularFileProperty
val reporterOptions: MapProperty<String, String>
val ktLintVersion: Property<String>
}
}
Loading

0 comments on commit 85e6600

Please sign in to comment.