1

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...

2
  • I'd say adding support for a whole new platform is adding a feature.
    – user7043
    May 18, 2014 at 16:27
  • It depends on whether you considered running on other OS's a currently-supported but buggy feature VS something you could technically do but not an official feature. If the former, it's a patch; you're fixing the bugs. If the latter, it's a new minor version.
    – Doval
    May 18, 2014 at 17:46

1 Answer 1

2

If you already officially supported BarOS, but there were so many issues with it that nobody would use it, then providing proper support for BarOS would be a set of bug fixes and thus a patch release.

On the other hand, if you never officially supported BarOS, then adding official support for BarOS (regardless of how well it worked previously) is a new (backwards compatible) feature and therefor a minor release.

So, the answer to your question is that it depends on the official status of BarOS within your project so far.

2
  • In other words, the BarOS support implementation is not what increment the minor version - making it official is what causes the new minor version? So if I changed nothing in the code but declared that my project now supports BarOS(which would be a shitty thing to do, but lets say I do it for the sake of the question), it will be a minor version?
    – Idan Arye
    May 19, 2014 at 13:03
  • 1
    @IdanArye: Yes. The fact that people tried it on BarOS (without a statement that it is supported) and found that it worked somewhat doesn't imply that the feature "works on BarOS" is part of your product. If you now say that that feature is in (without making any actual changes), then that is a reason to release a minor version (and a reason to get loads of complaints that it actually doesn't work). May 19, 2014 at 13:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.