bump: print skip status, message(s), and errors
`brew livecheck` surfaces the skip reason or message in its output (e.g., "deprecated", "skipped - Legacy version") but `brew bump` effectively ignores the `:status` and `:messages` values from `Livecheck::SkipConditions` and only prints "skipped" instead. Sometimes the reason can be inferred from parenthetical annotations (e.g., "(deprecated)" after the current version) but explicit output like "skipped - deprecated" is easier to read when skimming. Omitting a skip message from a `livecheck` block is only done to produce a predictable "skipped" string that can be used for comparison but we can handle that in a more robust way. A related issue we're now facing is that deprecated packages are producing an "unable to get versions" message rather than "skipped". This adds noise and makes it more challenging to identify real livecheck failures in bump output. This addresses these issues by modifying bump to print the skip `:status` and `:messages` values in the output. The way I've handled this, bump will also print error messages. In the process, this adds a `message?` method to check whether a value is a message string, replacing existing conditions that insufficiently check whether a value is a message using strict comparisons like `x != "skipped"` or `x != "unable to get versions"` and ignoring the possibility of error strings. This is still an imperfect way of identifying message strings but it should be an improvement over the status quo. In the future, it may be better to store message strings as something other than a `Cask::DSL::Version` object, so we can distinguish messages from versions without targeting a specific string pattern.
S
Sam Ford committed
76c471fc56b26c24fc13dfde4dac3534d771adbf
Parent: 2316400