Summary: | Enhance Jenkins CI to run clirr/japicmp on the nightly builds to find API-breakage earlier | ||
---|---|---|---|
Product: | POI | Reporter: | Dominik Stadler <dominik.stadler> |
Component: | POI Overall | Assignee: | POI Developers List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | ||
Priority: | P2 | ||
Version: | 3.15-dev | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux |
Description
Dominik Stadler
2016-09-14 19:41:37 UTC
Another tool in this area is http://revapi.org/ See https://builds.apache.org/view/POI/job/POI-API-Check/ for an initial try at a CI config which performs API comparison with a previous version of POI. I selected japicmp because clirr seems to be dormant and revapi was complicated to start on the commandline without actual maven build... I will work some more on it to put this into the build.xml so developers can run it locally as well. I have now added an initial version of adding tasks for japicmp to the Gradle build via r1764960, this is not yet perfect, but is an initial attempt at providing this. https://github.com/melix/japicmp-gradle-plugin/issues/6 asked for a release of the Gradle plugin for japicmp to use some not-yet released features, it was quickly resolved by the author, but is not yet visible and thus not used in the build.gradle yet. As part of our regression tests, we could also test for breakages of downstream projects, so long as they are set up with automated builds. We test for downstream regressions with Tika, but could open this up to more downstream projects. It probably wouldn't be too difficult to find widely-used open-source projects that use POI on a project dependency search engine. An example of this being done on pint, a python project: https://github.com/hgrecco/pint/issues/404#issuecomment-233824545 I fear this won't be easy with some of the deprecations and removals that we plan to do. I would expect that any larger project quickly has at least some code-pieces that need adjustment, or? We could prepare the necessary changes in forks, but it becomes a bit cumbersome to keep many such projects building fine... |