0

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.

Joe Santos
  • 28
  • 3
  • I'm pretty sure that for a scenario like this you want to build all versions from the same source tree and not from different branches. I.e. there should be *one* 1.5.1 branch/tag and something in the build should be able to build those 27 (at worst) combinations from that one source tree. How feasible that is depends on what kinds of modifications you need to make everything build. – Joachim Sauer Sep 14 '20 at 06:15
  • That is not always possible. For example: Laravel 8 requires PHP 7.4 and the PHPUnit setUp() method has a different signature that is not compatible with PHP 7.2. – Joe Santos Sep 14 '20 at 11:23
  • You can still have different versions of the source files that differ, but just inside a single git commit (i.e. in separate directories and not in separate branches). *Hopefully* those changes are few and can mostly be abstracted away. – Joachim Sauer Sep 14 '20 at 12:28

1 Answers1

2

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

eftshift0
  • 26,375
  • 3
  • 36
  • 60
  • Everything I've seen so far about it leads me to this direction. My issue with this approach is that there will be **four** names and version appended. It's gonna be very cluttered. – Joe Santos Sep 14 '20 at 12:43