diff --git a/CHANGELOG b/CHANGELOG index eb75308..0014081 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,21 @@ CHANGELOG ========= +4.0.0 +----- + +* [BREAKING] Use `kemitix-quality-maven-plugin` to replace some plugins - required 100% code and mutation coverage by default +* Upgrade `maven-antrun-plugin` 1.3 -> 1.8 +* Upgrade `maven-release-plugin` 2.3.2 -> 2.5.3 +* Upgrade `maven-javadoc-plugin` 2.10.4 -> 3.0.0-M1 +* Upgrade `maven-dependency-plugin` 2.8 -> 3.0.2 +* Upgrade `maven-assembly-plugin` 2.2-beta-5 -> 3.1.0 +* Upgrade `maven-deploy-plugin` 2.8 -> 2.8.2 +* Upgrade `maven-compiler-plugin` _ -> 3.7.0 +* Upgrade `maven-project-info-reports-plugin` _ -> 2.9 +* Upgrade `maven-surefire-plugin` _ -> 2.20.1 +* Upgrade `maven-failsafe-plugin` _ -> 2.20.1 + 3.2.4 ----- diff --git a/README.md b/README.md index ec759b7..5721f4d 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,8 @@ desired value. * project.build.sourceEncoding * project.reporting.outputEncoding * kemitix.build.directory -* kemitix-checkstyle-ruleset.version -* kemitix-checkstyle-ruleset.level +* kemitix-quality-maven-plugin.version * lombok.version -* digraph-dependency.version -* digraph-dependency.basePackage -* required-maven.version -* maven-enforcer-plugin.version * maven-javadoc-plugin.version * maven-source-plugin.version * maven-gpg-plugin.version @@ -36,48 +31,17 @@ desired value. * maven-compiler-plugin.version * maven-surefire-plugin.version * maven-failsafe-plugin.version -* maven-pmd-plugin.version -* huntbugs.version -* jacoco-maven-plugin.version -* highwheel-maven.version -* pitest.version * maven-jxr-plugin.version -* jacoco-class-line-covered-ratio -* jacoco-class-instruction-covered-ratio -* jacoco-class-missed-count-maximum * java.version * versions.version * coveralls-maven-plugin.version -## Checkstyle +## Kemitix Quality -The Checkstyle plugin is configured using the -`kemitix-checkstyle-ruleset-maven-plugin`. +The [kemitix-quality-maven-plugin](https://github.com/kemitix/kemitix-quality-maven-plugin) +provides several preconfigured quality related plugins. -The `kemitix-checkstyle-ruleset` provides five levels of checks. The -default is set to `5-complexity`, the most strict. It runs during the -`validate` phase. - -### Configuration - -Set the property `kemitix-checkstyle-ruleset.level` to one of the -following values to select a less-strict ruleset: - -* 1-layout -* 2-naming -* 3-javadoc -* 4-tweaks -* 5-complexity - -## Maven Enforcer Plugin - -Ensures that a suitable version of Maven is being used. - -Runs it's `display-info` and `enforce` goals during the `validate` phase. - -### Configuration - -* requireMavenVersion: ${required-maven.version} +N.B. The Kemitix Quality plugin required 100% code instruction coverage and mutation ratio. See the project page for details of adjusting these levels if needed. ## Maven Compiler Plugin @@ -115,52 +79,6 @@ goal during the `verify` phase. No configuration applied beyond the defaults. -## Maven PMD Plugin - -The [Maven PMD Plugin](https://maven.apache.org/plugins/maven-pmd-plugin/index.html) -runs the [PMD](http://pmd.sourceforge.net/) code analysis. - -Runs its [pmd](https://maven.apache.org/plugins/maven-pmd-plugin/pmd-mojo.html) -and [cpd](https://maven.apache.org/plugins/maven-pmd-plugin/cpd-mojo.html) goals -during the `compile` phase. - -### Configuration - -No configuration applied beyond the defaults. - -## Huntbugs Maven Plugin - -The [Huntbugs Maven Plugin](https://github.com/amaembo/huntbugs) is a -static code analyser. - -Runs during the `compile` phase. - -### Configuration - -No configuration applied beyond the defaults. - -## Jacoco Maven Plugin - -The [Jacoco Maven Plugin](http://eclemma.org/jacoco/trunk/doc/maven.html) -provides code coverage analysis after your tests have run. - -### Configuration - -#### Classes - -For each class not excluded the Lines Covered Ratio must be at least 50%. - -For each class not excluded the Instructions Covered Ration must be at least -80%. - -Excluded from analysis: - -* `*Test` - test classes -* `*IT` - integration test classes -* `*Main` - main classes -* `*Application` - application classes -* `*Configuration` - (Spring) configuration classes - ## Maven Source Plugin The [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/) @@ -204,67 +122,6 @@ produces cross-referenced HTML pages of your source code. No configuration applied beyond the defaults. -## Highwheel Plugin - -The [Highwheel Plugin](https://github.com/hcoles/highwheel) -generates a report for packages and classes at `target/highwheel/index.html` -that highlights where there are cyclic dependencies between packages and between -classes. - -### Configuration - -The plugin will `analyse` the project during the `verify` phase. - -## Pitest Plugin - -The [Pitest Plugin](http://pitest.org/) -provides mutation testing for classes found in the generated `target` -directory. - -### Configuration - -The plugin with perform mutation tests during the `verify` phase. - -By default, classed named `Immutable*`, will not be included. -(e.g. classes generated by `org.immutables:value`) - -The following properties can adjust the default configuration. - -#### `pitest.skip` - -Default is `false`. - -Set this to `true` to disable the **Pitest Plugin**. - -#### `pitest.coverage` - -Default is `0`%. (i.e. disabled) - -Line coverage at which to fail build. - -#### `pitest.mutation` - -Default is `0`%. (i.e. disabled) - -Mutation score threshold at which to fail build. - -#### `pitest.failWhenNoMutations` - -Default is `true`. - -Set this to `false` to not fail build when there are no mutations. - -## Digraph Dependency Plugin - -The [Digraph Dependency Plugin](https://github.com/kemitix/digraph-dependency-maven-plugin) -generates a DOT file diagram showing the dependencies between packages in a project. - -### Configuration - -The plugin will generate the `target/digraph.dot` file during the `validate` phase. - -Set the `digraph-dependency.basePackage` property to the root package to graph. - ## Coveralls The [Coveralls Maven Plugin](https://github.com/trautonen/coveralls-maven-plugin) diff --git a/pom.xml b/pom.xml index 3060ca0..d472e68 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ net.kemitix kemitix-parent - 3.2.4 + 4.0.0 pom Kemitix Parent @@ -37,40 +37,29 @@ UTF-8 UTF-8 target - 3.3.0 - 5-complexity - 1.16.18 - 0.9.0 - net.kemitix + 0.2.1 + net.kemitix + 1.16.18 + 1.8 3.0.0 2.5.2 + 2.5.3 3.6 - 2.10.4 + 3.0.0-M1 3.0.1 1.6 2.8.2 - 3.6.1 - 2.20 - 2.20 - 3.8 - 0.0.11 - 0.7.9 - 1.2 - 1.2.0 + 3.7.0 + 3.0.2 + 3.1.0 + 2.20.1 + 2.20.1 2.5 + 2.9 - 0.50 - 0.80 - 0 1.8 - 0 - 0 - false - true 2.4 - 3.0.4 - 1.4.1 4.3.0 @@ -101,7 +90,6 @@ org.apache.maven.plugins maven-javadoc-plugin - ${maven-javadoc-plugin.version} attach-javadocs @@ -116,7 +104,6 @@ org.apache.maven.plugins maven-source-plugin - ${maven-source-plugin.version} attach-sources @@ -131,7 +118,6 @@ org.apache.maven.plugins maven-gpg-plugin - ${maven-gpg-plugin.version} ${gpg.passphrase} @@ -149,7 +135,6 @@ org.apache.maven.plugins maven-deploy-plugin - ${maven-deploy-plugin.version} @@ -185,258 +170,148 @@ ${kemitix.build.directory} + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + org.apache.maven.plugins + maven-deploy-plugin + ${maven-deploy-plugin.version} + + + org.apache.maven.plugins + maven-clean-plugin + ${maven-clean-plugin.version} + + + org.apache.maven.plugins + maven-antrun-plugin + ${maven-antrun-plugin.version} + + + org.apache.maven.plugins + maven-install-plugin + ${maven-install-plugin.version} + + + org.apache.maven.plugins + maven-site-plugin + ${maven-site-plugin.version} + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + -Xlint:unchecked + + true + true + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + net.kemitix + kemitix-quality-maven-plugin + ${kemitix-quality-maven-plugin.version} + + + + validate + verify + + + + + + org.apache.maven.plugins + maven-dependency-plugin + ${maven-dependency-plugin.version} + + + org.apache.maven.plugins + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + org.apache.maven.plugins + maven-release-plugin + ${maven-release-plugin.version} + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + org.apache.maven.plugins + maven-failsafe-plugin + ${maven-failsafe-plugin.version} + + + integration-test + + integration-test + + + + verify + + verify + + + + + + org.eluder.coveralls + coveralls-maven-plugin + ${coveralls-maven-plugin.version} + + + org.codehaus.mojo + versions-maven-plugin + ${versions.version} + + + + net.kemitix - kemitix-checkstyle-ruleset-maven-plugin - ${kemitix-checkstyle-ruleset.version} - - - verify - - check - - - - - ${kemitix-checkstyle-ruleset.level} - - - - net.kemitix - digraph-dependency-maven-plugin - ${digraph-dependency.version} - - ${digraph-dependency.basePackage} - - - - verify - - digraph - - - - - - org.apache.maven.plugins - maven-enforcer-plugin - ${maven-enforcer-plugin.version} - - - enforce-maven - validate - - display-info - enforce - - - - - - - ${required-maven.version} - - - ${java.version} - - - - - - org.apache.maven.plugins - maven-clean-plugin - ${maven-clean-plugin.version} - - - org.apache.maven.plugins - maven-install-plugin - ${maven-install-plugin.version} - - - org.apache.maven.plugins - maven-site-plugin - ${maven-site-plugin.version} - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - -Xlint:unchecked - - true - true - ${java.version} - ${java.version} - ${project.build.sourceEncoding} - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - org.apache.maven.plugins - maven-failsafe-plugin - ${maven-failsafe-plugin.version} - - - integration-test - - integration-test - - - - verify - - verify - - - - - - org.eluder.coveralls - coveralls-maven-plugin - ${coveralls-maven-plugin.version} - - - org.apache.maven.plugins - maven-pmd-plugin - ${maven-pmd-plugin.version} - - - pmd - verify - - pmd - - - - cpd - verify - - cpd - - - - - - one.util - huntbugs-maven-plugin - ${huntbugs.version} - - - verify - - huntbugs - - - - - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} - - - - prepare-agent - - - - report - prepare-package - - report - - - - default-check - - check - - - - - - - CLASS - - *Test - *IT - *Main - *Application - *Configuration - *Immutable* - - - - LINE - COVEREDRATIO - ${jacoco-class-line-covered-ratio} - - - INSTRUCTION - COVEREDRATIO - ${jacoco-class-instruction-covered-ratio} - - - CLASS - MISSEDCOUNT - ${jacoco-class-missed-count-maximum} - - - - - - - - org.pitest - highwheel-maven - ${highwheel-maven.version} - - - verify - - analyse - - - - - - org.pitest - pitest-maven - ${pitest.version} - - - verify - - mutationCoverage - - - - - ${pitest.skip} - false - *.Immutable* - ${pitest.coverage} - ${pitest.mutation} - ${pitest.failWhenNoMutations} - - - - org.codehaus.mojo - versions-maven-plugin - ${versions.version} - + kemitix-quality-maven-plugin + + + org.apache.maven.plugins + maven-project-info-reports-plugin + ${maven-project-info-reports-plugin.version} + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + org.apache.maven.plugins maven-surefire-report-plugin @@ -447,31 +322,6 @@ maven-jxr-plugin ${maven-jxr-plugin.version} - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} - - - org.apache.maven.plugins - maven-pmd-plugin - ${maven-pmd-plugin.version} - - true - - - - org.pitest - pitest-maven - ${pitest.version} - - - - report - - - - org.codehaus.mojo versions-maven-plugin