On 12/4/2017 10:31 PM, Lukasz Lenart wrote:
> I'm not sure if JDepend would be the same
You're right that it's not same and as popular as. However it's listed
in `External Analysers` of official documentation [1] so I hope it
should work.
I mentioned it because it seems with GitHub plugin can comment on PRs
nice warnings.
For example it seems we can set "Maximum distance of a package allowed"
and it may can comment a warning on a PR which exceeds this maximum ("A
package squarely on the main sequence is optimally balanced with respect
to its abstractness and stability. Ideal packages are either completely
abstract and stable (x=0, y=1) or completely concrete and instable (x=1,
y=0)").
Or for example "Maximum instability of a package allowed" [3] could be
set ("This metric is an indicator of the package's resilience to change").
There are other nice metrics present [4] e.g. "Maximum number of other
packages allowed to depend upon classes within the package" or "Maximum
number of other packages that the classes in the package are allowed to
depend upon".
The only bad thing (maybe, I'm not sure) that I found is every package
has to have `package-info.java` elsewhere Sonar is not able to assign
issues. In other side maybe it's nice to have these and tune each
package to keep them healthy during our daily development via several
pull requests. I think it will make reviewing easier also.
Anyway we can also do these without Sonar and `package-info.java` but
needs time to script.
I don't know if we don't or do like `package-info.java` for each
package. But if we don't have issue (I don't have), and if JDepend
plugin can work with GitHub plugin to comment issues on PR (I think it
can) then I really down with it :)
Thank you so much for your attention,
Yasser.
[1] https://docs.sonarqube.org/display/PLUG/Plugin+Library
[2]
https://github.com/willemsrb/sonar-jdepend-plugin/blob/master/src/main/java/nl/futureedge/sonar/plugin/jdepend/rules/DistanceFromMainSequenceRule.java#L50
[3]
https://github.com/willemsrb/sonar-jdepend-plugin/blob/master/src/main/java/nl/futureedge/sonar/plugin/jdepend/rules/InstabilityRule.java#L50
[4]
https://github.com/willemsrb/sonar-jdepend-plugin/blob/master/src/main/java/nl/futureedge/sonar/plugin/jdepend/rules