Skip to content

Commit

Permalink
Remove fail fast (#5290)
Browse files Browse the repository at this point in the history
* Simplify tests

* Improve naming

* Remove fail fast
  • Loading branch information
BraisGabin committed Sep 10, 2022
1 parent e3cae70 commit 19eed8a
Show file tree
Hide file tree
Showing 14 changed files with 8 additions and 68 deletions.
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

0 comments on commit 19eed8a

Please sign in to comment.