* Refactor publishing build config
This removes the use of `subprojects` block as it can't be used effectively
with composite builds.
* Make it easy to use detekt-gradle-plugin in a composite build
Replace `include("detekt-gradle-plugin")` with
`includeBuild("detekt-gradle-plugin")` in settings.gradle.kts
* Move nexus-staging-plugin config back to build-logic
This will help reduce build times when changes are made to the precompiled
script plugins used in the build. This is because a change in buildSrc
causes the whole project to become out-of-date [0]. Using an included build
instead works around this problem.
[0] https://docs.gradle.org/7.2/userguide/organizing_gradle_projects.html#sec:build_sources
* Update Kotlin to 1.5
* Add workaround for Kotlin 1.5 memory leak in Gradle
* API changes
* Don't treat warnings as errors on the detekt-gradle-plugin module
* Use idiomatic repository declarations
* Prefer Maven Central to JCenter
* Limit JCenter to kotlinx-html-jvm module only
* Remove unnecessary repository declarations
* Agree to build scan T&Cs in settings where the plugin is applied
* Refactor
* Fix some issues in the build config examples
* Apply binary-compatibility-validator plugin only in subprojects that need it
* Don't configure Java source/target compatibility
There's no Java source code in the repository
* Don't unnecessarily declare plugins in root project build
* Apply binary compatibility plugin to Detekt
* Exclude internal api
* Add an additional new line
* Fix comment to point out the problem in gradle setup
* Remove TODO as forbidden comment
* Get rid of cli and core dependency for generator
* Remove generic argument parsing made for sharing but introduced complexity
* Do not use expensive shadow plugin on internal generator module
* Apply shadow plugin for cli in packaging
* Generate documentation after compilation of rules
* Trigger generateDocumentation when formatting rules are changed
* Further reduce complexity of parsing args
* Start generateDocumentation directly from gradle
* Test additional error paths of CliArgs
* Extract detekt related build logic to own script in buildSrc
* Add buildSrc/build folder to excludes
* Extract github release to own releasing build file
* Extract common and publishing build part
* Extract versions and sonar plugins to housekeeping script
* Move dokka plugin to buildSrc
* Move jacoco setup to commons plugin
* Automate version updates
* Rename publishing to packaging to avoid conflict with org.gradle.publishing
* Do not increment the version on build configuration phase
* State why build scan is left in settings build file
* Implement task to generate the doc version
* Implement task to update the self analysis version
* Revert dryRun
* Move everything self analysis related to an own section
* Split top level gradle build file into more readable sections
* Extract common detekt configuration properties to constants
* Move jacoco config to own section
* Update dependencies for 1.7.1 release
* Delete obsolete ROADMAP file
* Update gradle wrapper to 6.3 supporting JDK14
* Use github-release plugin to publish changelogs to GitHub
* Use 1.7.1 gradle plugin for self analysis
* Use findProperty to force null on missing
* Convert the gradle plugin to a sub project
This leads to:
- faster build file evaluate, no need to wait for the composite build file evaluation
- cleaner build files, less duplications
- more up-to-date tasks
- faster builds, clean build is ~30 seconds faster
* Setup for easy local gradle plugin changes
* #1515. Add rule to check license header.
* TODO. Tests.
* Add location to `Config`.
* Set Config location.
* Implement license header caching based on a FileProcessListener
* Introduce new SetupContext api which is able to provide rule authors with processing settings like the configuration path
* Revert yaml config change
Co-authored-by: Denys M <dector9@gmail.com>
* Don't compile the snippet codes in the test by default
If you want to check that your code in the snippets compiles you can use the flag
-Pcompile-test-snippets=true in gradle
* Configure travis and appvenyor to compile the snippets
* Upgrade Spek to v2.0.8
* Disable Spek timeouts
* Fix Spek exceptions with by memoized clause
'subject' can not be accessed in this context.
java.lang.AssertionError: 'subject' can not be accessed in this context.
* Use a Spek fixture for holding the result
The tests don't use memoized for holding the result of subject.lint().
Instead the tests use a fixture for holding the linted code.
https://www.spekframework.org/core-concepts/#scope-values
* Gradle 5.6
* Define plugin versions in gradle.properties
* Work around Gradle 6 behaviour change
In Gradle 6 the default DuplicateStrategy is FAIL. This reverts to previous
behaviour to avoid an error due to two ktlint rulesets declaring a
RuleSetProvider service which, when merged, results in duplicate paths.
These files have no effect in detekt so the duplication can be ignored.
The duplicate path is "META-INF/services/com.pinterest.ktlint.core.RuleSetProvider"
* Fix issues found by :detekt-gradle-plugin:validateTaskProperties
* Generate default config at user-specified path
* Set a default path for detekt's config file
* Write default config file to default config path
* Update config to use new config layout convention
* Update baseline file location
* Catch possible error if `config` collection is not expected size
* Use Property's setter instead of using an extra one
* ignoreFailures isn't Optional
It must always have a value.
* Remove explicit setting for ignoreFailures