{"action":"opened","issue":{"url":"https://api.github.com/repos/revapi/revapi/issues/29","repository_url":"https://api.github.com/repos/revapi/revapi","labels_url":"https://api.github.com/repos/revapi/revapi/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/revapi/revapi/issues/29/comments","events_url":"https://api.github.com/repos/revapi/revapi/issues/29/events","html_url":"https://github.com/revapi/revapi/issues/29","id":142302151,"number":29,"title":"Aggregated plain text report for copy-pasting in release notes","user":{"login":"vmassol","id":628267,"avatar_url":"https://avatars.githubusercontent.com/u/628267?v=3","gravatar_id":"","url":"https://api.github.com/users/vmassol","html_url":"https://github.com/vmassol","followers_url":"https://api.github.com/users/vmassol/followers","following_url":"https://api.github.com/users/vmassol/following{/other_user}","gists_url":"https://api.github.com/users/vmassol/gists{/gist_id}","starred_url":"https://api.github.com/users/vmassol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vmassol/subscriptions","organizations_url":"https://api.github.com/users/vmassol/orgs","repos_url":"https://api.github.com/users/vmassol/repos","events_url":"https://api.github.com/users/vmassol/events{/privacy}","received_events_url":"https://api.github.com/users/vmassol/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-03-21T10:01:14Z","updated_at":"2016-03-21T10:01:14Z","closed_at":null,"body":"On the XWiki project, we put all backward compatibility violations in our Release not'es. For example this is what we had for our last release that was using CLIRR: http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/ReleaseNotesXWiki80#HAPIBreakages\r\n\r\nNow that we'd like to move to revapi we need a simple way to generate such a report (without having to manually go over the logs of the hundreds of maven modules that we have).\r\n\r\nThis is currently our process for generating those CLIRR reports during a release:\r\nhttp://dev.xwiki.org/xwiki/bin/view/ReleasePlans/ReleasePlanHelp#HManually\r\n\r\nNamely:\r\n* Find all places where we have clirr excludes in our poms and remove them (so that violations are genertaed)\r\n* run clirr on all modules and output the result in a file for each module\r\n* aggregate the content from all those violations and copy paste in our releases notes by manually matching the justifications for the excludes\r\n\r\nDo you think you could help us come up with a better automated solution with revapi?\r\n\r\nWhat would help I guess is the ability to generate an aggregated (as in maven reactor) plain text report of violations for all modules and without having to remove the violations\r\n\r\nThanks a lot\r\n\r\nBTW when I run \"mvn clean reapi:report\" from the command line on xwiki-commons/xwiki-commons-core/xwiki-commons-component, I get:\r\n\r\n````\r\n[ERROR] Failed to execute goal org.revapi:revapi-maven-plugin:0.4.2:report (default-cli) on project xwiki-commons-component-api: Execution default-cli of goal org.revapi:revapi-maven-plugin:0.4.2:report failed. NullPointerException -> [Help 1]\r\norg.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.revapi:revapi-maven-plugin:0.4.2:report (default-cli) on project xwiki-commons-component-api: Execution default-cli of goal org.revapi:revapi-maven-plugin:0.4.2:report failed.\r\n\tat org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)\r\n\tat org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)\r\n\tat org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)\r\n\tat org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)\r\n\tat org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)\r\n\tat org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)\r\n\tat org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)\r\n\tat org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)\r\n\tat org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)\r\n\tat org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)\r\n\tat org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)\r\n\tat org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)\r\n\tat org.apache.maven.cli.MavenCli.main(MavenCli.java:197)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:497)\r\n\tat org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)\r\n\tat org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)\r\n\tat org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)\r\n\tat org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)\r\nCaused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.revapi:revapi-maven-plugin:0.4.2:report failed.\r\n\tat org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)\r\n\tat org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)\r\n\t... 20 more\r\nCaused by: java.lang.NullPointerException\r\n\tat org.revapi.maven.ReportMojo.getDescription(ReportMojo.java:263)\r\n\tat org.revapi.maven.ReportMojo.executeReport(ReportMojo.java:235)\r\n\tat org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:255)\r\n\tat org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:143)\r\n\tat org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)\r\n\t... 21 more\r\n````\r\n"}}