typesafehub/migration-manager — pull request #30 by gkossakowski (2013-02-11 23:40:04+00:00)
Title: Add problem filtering capability to cli frontend.

This pull request 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 pull request:
* Add factory method to `ProblemFilters` that creates problem filter
out of string definition using reflection.
* Add dependency on Typesafe Config library

NOTE: This pull request 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 pull request so it should be
relatively easy to add it if needed.

NOTE: This pull request 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.