Search code examples
gitgithubversionversioningapi-versioning

How can I version multiple release branches supporting different depedency versions?


We have a library at my organization that depends on 4 different things:

  • The librdkafka library
  • The ext-rdkafka PHP extension
  • PHP language
  • The Laravel framework

We want to support all currently supported version of them. Currently the last three items have three supported version each, that amounts to 27 combinations (not really, the lastest version of Laravel, for example, requires the latest PHP version, but let's assume the worst).

With that scenario in mind, we would have 27 release branches. My question is how should we version them to keep them at an "equal" level?

For example, if our next release is 1.5, we can't have 1.5.1, 1.5.2, and so on, because they just support different dependency versions, they are not newer. The code provides the exact same functionality. I have looked around the web and haven't found any articles on this situation. Source materials and examples appreciated.


Solution

  • Don't think it!s the most elegant but you might add more stuff into the version.... say:

    1.5.1-lrdk2.4.5-rdkp5.6.4-p7.3-l5.4
    

    Making versions up, in case it's not obvious