Added ability to publish patches for non-latest version

Also, started to work on semantic versioning check, more specifically, started to implement comparing function types for compatibility.
Please always align a `case` with the patterns. The patterns should be indented two spaces from where the case starts.