Let's say I use Semantic Versioning for a my project. I'm developing it under FooOS, but the language uses virtual machine(either interpreted language or bytecode based) so any operation system can run it. The thing is, the project interacts heavily with OS-managed things(e.g. pipes, processes, the file system) so if you try running it under a different operation system - BarOS - it gets so buggy and so many things don't work that the project is practically useless.
Now, at some point I want to make my project work for BarOS, and I want to release a version just to add that support. The question is - does that count as a minor version or as a patch?
It seems like it's a patch:
All I do is fixing all the bugs that appear when running the project under BarOS.
Users of my project shouldn't notice any change in functionality, since they are using FooOS in the first place.
For BarOS users my whole project is new - but getting new users is not something that should result in a version increment.
But even with all that reasoning, it just doesn't seem right to label a release as big as new OS support as a patch...