By calling Config.resolve we enable substitution mechanism from Typesafe Config library. This is handy if one wants to break long list of filters into smaller variables (e.g. focused on one package) and concatenate them into one big list.
This commit introduces a way to configure MiMa to filter out reported binary incompatibilities. Configuration is done in by defining filtering rules in configuration file that is handled by Typesafe Config library. Path to configuration file is set with `--filters` command line option. The resulting syntax is a bit verbose but we get future configuration extensibility for free. We also get a way to put comments in configuration file which is very important if we want to document why given problem can be safely ignored. The other command line option this commit introduces is `--generate-filters` that generates configuration for filters to ignore all of currently reported problems. It can be combined with `--filters` option. The two additional highlights of this change: * Add factory method to `ProblemFilters` that creates problem filter out of string definition using reflection. * Add dependency on Typesafe Config library NOTE: This change does not introduce filtering by packages but only by specific problems. However, most of the necessary functionality to implement that feature is being introduced by this change so it should be relatively easy to add it if needed. NOTE: This change does not come with tests. There are no tests for CLI and I tried to introduce but it turned out to be too hard. The basic problem is that we have to operate on paths because CLI takes paths to files as arguments but there's no easy way to do that in traditional tests. Probably the best way would be to write custom test interfaces where we have access to all necessary paths but that's beyond this contribution. Fixes #13.
Moving to Sbt 0.12.1 (previous commit), caused the project to fail buid. Apparently, the former build definition was relying on un-specd Sbt's behavior.
Provide a canned filter ProblemFilters.exclude[ProblemType]("name") For each binary issue reported, show the syntax to ignore it. Fixes #3
Added ``sbt-buildinfo`` plugin to MiMa core project definition, so that the ``buildVersion`` defined inside ``Build.scala`` is now injected during sbt source-generation phase. Fixed #9
Otherwise can't edit in Eclipse without creating bogus diff