Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove fail fast #5290

Merged
merged 3 commits into from Sep 10, 2022
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -107,16 +107,6 @@ class CliArgs {
)
var buildUponDefaultConfig: Boolean = false

@Parameter(
names = ["--fail-fast"],
description = "DEPRECATED: please use '--build-upon-default-config' together with '--all-rules'. " +
"Same as 'build-upon-default-config' but explicitly running all available rules. " +
"With this setting only exit code 0 is returned when the analysis does not find a single code smell. " +
"Additional configuration files can override rule properties which includes turning off specific rules."
)
@Deprecated("Please use the buildUponDefaultConfig and allRules flags instead.", ReplaceWith("allRules"))
var failFast: Boolean = false

@Parameter(
names = ["--all-rules"],
description = "Activates all available (even unstable) rules."
Expand Down
Expand Up @@ -22,8 +22,7 @@ internal fun CliArgs.createSpec(output: Appendable, error: Appendable): Processi

rules {
autoCorrect = args.autoCorrect
@Suppress("DEPRECATION")
activateAllRules = args.failFast || args.allRules
activateAllRules = args.allRules
maxIssuePolicy = when (val count = args.maxIssues) {
null -> RulesSpec.MaxIssuePolicy.NonSpecified // prefer to read from config
0 -> RulesSpec.MaxIssuePolicy.NoneAllowed
Expand Down
Expand Up @@ -8,8 +8,6 @@ import org.assertj.core.api.Assertions.assertThatExceptionOfType
import org.assertj.core.api.Assertions.assertThatIllegalArgumentException
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource
import java.nio.file.Path
import java.nio.file.Paths

Expand Down Expand Up @@ -111,15 +109,10 @@ internal class CliArgsSpec {
}
}

@Nested
inner class `--all-rules and --fail-fast lead to all rules being activated` {

@ParameterizedTest
@ValueSource(strings = ["--all-rules", "--fail-fast"])
fun `all rules active`(flag: String) {
val spec = parseArguments(arrayOf(flag)).toSpec()
assertThat(spec.rulesSpec.activateAllRules).isTrue()
}
@Test
fun `--all-rules lead to all rules being activated`() {
val spec = parseArguments(arrayOf("--all-rules")).toSpec()
assertThat(spec.rulesSpec.activateAllRules).isTrue()
}

@Nested
Expand Down
Expand Up @@ -42,10 +42,10 @@ class WorkaroundConfigurationKtSpec {
}

@Nested
inner class `fail fast override` {
inner class `activate all rules override` {

private val config = ProcessingSpec {
config { resources = listOf(resourceUrl("/configs/fail-fast-will-override-here.yml")) }
config { resources = listOf(resourceUrl("/configs/activate-all-rules-will-override-here.yml")) }
rules { activateAllRules = true }
}.let { spec ->
spec.workaroundConfiguration(spec.loadConfiguration())
Expand Down
Expand Up @@ -81,7 +81,7 @@ class ConfigurationsSpec {

private val config = ProcessingSpec {
config {
resources = listOf(resourceUrl("/configs/fail-fast-wont-override-here.yml"))
resources = listOf(resourceUrl("/configs/activate-all-rules-wont-override-here.yml"))
useDefaultConfig = true
}
rules { activateAllRules = true }
Expand Down
Expand Up @@ -507,7 +507,6 @@ class DetektTaskDslSpec {
| debug = true
| parallel = true
| disableDefaultRuleSets = true
| failFast = true
| allRules = true
| autoCorrect = true
| buildUponDefaultConfig = true
Expand Down Expand Up @@ -546,11 +545,6 @@ class DetektTaskDslSpec {
assertThat(result.output).contains("--all-rules")
}

@Test
fun `enables fail fast`() {
assertThat(result.output).contains("--fail-fast")
}

@Test
fun `enables auto correcting`() {
assertThat(result.output).contains("--auto-correct")
Expand Down Expand Up @@ -652,7 +646,6 @@ class DetektTaskDslSpec {
| parallel = true
| disableDefaultRuleSets = true
| buildUponDefaultConfig = true
| failFast = false
| allRules = false
| ignoreFailures = false
| autoCorrect = false
Expand Down
Expand Up @@ -17,7 +17,6 @@ import io.gitlab.arturbosch.detekt.invoke.DebugArgument
import io.gitlab.arturbosch.detekt.invoke.DefaultReportArgument
import io.gitlab.arturbosch.detekt.invoke.DetektInvoker
import io.gitlab.arturbosch.detekt.invoke.DisableDefaultRuleSetArgument
import io.gitlab.arturbosch.detekt.invoke.FailFastArgument
import io.gitlab.arturbosch.detekt.invoke.InputArgument
import io.gitlab.arturbosch.detekt.invoke.JdkHomeArgument
import io.gitlab.arturbosch.detekt.invoke.JvmTargetArgument
Expand Down Expand Up @@ -132,15 +131,6 @@ abstract class Detekt @Inject constructor(
get() = buildUponDefaultConfigProp.getOrElse(false)
set(value) = buildUponDefaultConfigProp.set(value)

@get:Internal
internal abstract val failFastProp: Property<Boolean>

@Deprecated("Please use the buildUponDefaultConfig and allRules flags instead.", ReplaceWith("allRules"))
var failFast: Boolean
@Input
get() = failFastProp.getOrElse(false)
set(value) = failFastProp.set(value)

@get:Internal
internal abstract val allRulesProp: Property<Boolean>
var allRules: Boolean
Expand Down Expand Up @@ -235,7 +225,6 @@ abstract class Detekt @Inject constructor(
DebugArgument(debugProp.getOrElse(false)),
ParallelArgument(parallelProp.getOrElse(false)),
BuildUponDefaultConfigArgument(buildUponDefaultConfigProp.getOrElse(false)),
FailFastArgument(failFastProp.getOrElse(false)),
AllRulesArgument(allRulesProp.getOrElse(false)),
AutoCorrectArgument(autoCorrectProp.getOrElse(false)),
BasePathArgument(basePathProp.orNull),
Expand All @@ -262,10 +251,6 @@ abstract class Detekt @Inject constructor(

@TaskAction
fun check() {
if (failFastProp.getOrElse(false)) {
logger.warn("'failFast' is deprecated. Please use 'buildUponDefaultConfig' together with 'allRules'.")
}

DetektInvoker.create(task = this, isDryRun = isDryRun).invokeCli(
arguments = arguments.get(),
ignoreFailures = ignoreFailures,
Expand Down
Expand Up @@ -12,7 +12,6 @@ import io.gitlab.arturbosch.detekt.invoke.CreateBaselineArgument
import io.gitlab.arturbosch.detekt.invoke.DebugArgument
import io.gitlab.arturbosch.detekt.invoke.DetektInvoker
import io.gitlab.arturbosch.detekt.invoke.DisableDefaultRuleSetArgument
import io.gitlab.arturbosch.detekt.invoke.FailFastArgument
import io.gitlab.arturbosch.detekt.invoke.InputArgument
import io.gitlab.arturbosch.detekt.invoke.JvmTargetArgument
import io.gitlab.arturbosch.detekt.invoke.ParallelArgument
Expand Down Expand Up @@ -79,11 +78,6 @@ abstract class DetektCreateBaselineTask : SourceTask() {
@get:Optional
abstract val buildUponDefaultConfig: Property<Boolean>

@get:Input
@get:Optional
@Deprecated("Please use the buildUponDefaultConfig and allRules flags instead.", ReplaceWith("allRules"))
abstract val failFast: Property<Boolean>

@get:Input
@get:Optional
abstract val ignoreFailures: Property<Boolean>
Expand Down Expand Up @@ -132,7 +126,6 @@ abstract class DetektCreateBaselineTask : SourceTask() {
DebugArgument(debug.getOrElse(false)),
ParallelArgument(parallel.getOrElse(false)),
BuildUponDefaultConfigArgument(buildUponDefaultConfig.getOrElse(false)),
FailFastArgument(@Suppress("DEPRECATION") failFast.getOrElse(false)),
AutoCorrectArgument(autoCorrect.getOrElse(false)),
AllRulesArgument(allRules.getOrElse(false)),
BasePathArgument(basePathProp.orNull),
Expand All @@ -148,10 +141,6 @@ abstract class DetektCreateBaselineTask : SourceTask() {

@TaskAction
fun baseline() {
if (@Suppress("DEPRECATION") failFast.getOrElse(false)) {
logger.warn("'failFast' is deprecated. Please use 'buildUponDefaultConfig' together with 'allRules'.")
}

DetektInvoker.create(task = this).invokeCli(
arguments = arguments.get(),
ignoreFailures = ignoreFailures.getOrElse(false),
Expand Down
Expand Up @@ -59,9 +59,6 @@ open class DetektExtension @Inject constructor(objects: ObjectFactory) : CodeQua

var parallel: Boolean = DEFAULT_PARALLEL_VALUE

@Deprecated("Please use the buildUponDefaultConfig and allRules flags instead.", ReplaceWith("allRules"))
var failFast: Boolean = DEFAULT_FAIL_FAST_VALUE

var allRules: Boolean = DEFAULT_ALL_RULES_VALUE

var buildUponDefaultConfig: Boolean = DEFAULT_BUILD_UPON_DEFAULT_CONFIG_VALUE
Expand Down
Expand Up @@ -62,7 +62,6 @@ internal fun Project.registerDetektTask(
it.parallelProp.convention(provider { extension.parallel })
it.disableDefaultRuleSetsProp.convention(provider { extension.disableDefaultRuleSets })
it.buildUponDefaultConfigProp.convention(provider { extension.buildUponDefaultConfig })
it.failFastProp.convention(provider { @Suppress("DEPRECATION") extension.failFast })
it.autoCorrectProp.convention(provider { extension.autoCorrect })
it.config.setFrom(provider { extension.config })
it.ignoreFailuresProp.convention(project.provider { extension.ignoreFailures })
Expand Down Expand Up @@ -96,7 +95,6 @@ internal fun Project.registerCreateBaselineTask(
it.parallel.convention(project.provider { extension.parallel })
it.disableDefaultRuleSets.convention(project.provider { extension.disableDefaultRuleSets })
it.buildUponDefaultConfig.convention(project.provider { extension.buildUponDefaultConfig })
@Suppress("DEPRECATION") it.failFast.convention(project.provider { extension.failFast })
it.autoCorrect.convention(project.provider { extension.autoCorrect })
it.basePathProp.convention(extension.basePath)
it.allRules.convention(provider { extension.allRules })
Expand Down
Expand Up @@ -14,7 +14,6 @@ private const val PARALLEL_PARAMETER = "--parallel"
private const val DISABLE_DEFAULT_RULESETS_PARAMETER = "--disable-default-rulesets"
private const val BUILD_UPON_DEFAULT_CONFIG_PARAMETER = "--build-upon-default-config"
private const val AUTO_CORRECT_PARAMETER = "--auto-correct"
private const val FAIL_FAST_PARAMETER = "--fail-fast"
private const val ALL_RULES_PARAMETER = "--all-rules"
private const val REPORT_PARAMETER = "--report"
private const val GENERATE_CONFIG_PARAMETER = "--generate-config"
Expand Down Expand Up @@ -109,8 +108,6 @@ internal data class BuildUponDefaultConfigArgument(
override val value: Boolean
) : BoolCliArgument(value, BUILD_UPON_DEFAULT_CONFIG_PARAMETER)

internal data class FailFastArgument(override val value: Boolean) : BoolCliArgument(value, FAIL_FAST_PARAMETER)

internal data class AllRulesArgument(override val value: Boolean) : BoolCliArgument(value, ALL_RULES_PARAMETER)

internal data class AutoCorrectArgument(override val value: Boolean) : BoolCliArgument(value, AUTO_CORRECT_PARAMETER)
1 change: 0 additions & 1 deletion scripts/compare_releases.main.kts
Expand Up @@ -75,7 +75,6 @@ class CompareReleases : CliktCommand() {
"--input",
analysisPath,
"--build-upon-default-config",
"--fail-fast",
"--config",
configPath,
"--excludes",
Expand Down