2

We're working on an application that is being used by multiple customers, each having a different version of the app.

Our team is currently following the Git Flow branching strategy, but we've been hitting a wall on maintaining a single master branch.

For example:

  • Customer A has v1.1.2
  • Customer B has v1.1.4

We have fixed a vulnerability for Customer B in v1.1.4, and updated the version to v1.1.5 in the master branch. Now Customer B has asked for the patch fix in their version, but does not wish to update to v1.1.4 as of yet. This fix then gets versioned as v1.1.2.1 (still on its release branch).

We are currently maintaining multiple release branches and pulling in feature branches in as needed, but we feel this isn't scalable in the long-run.

Is there a recommended solution or branching strategy for this?

kwchee
  • 21
  • 2

4 Answers4

0

Maybe you should create release every x.x.x version also fix your bugs on x.x.x.x versions and your customers can use this versions. So there can be many x.x.x version. You can think this x.x.x versions are kinda major.

Arif Dogan
  • 35
  • 1
  • 8
0

Did you tried looking for oneflow approach where you create the new branch from previous release.

Try having a look in this https://www.endoflineblog.com/gitflow-considered-harmful

Jaswinder Singh
  • 731
  • 5
  • 20
0

There are two main updates - new features and security updates. The new features can be maintained per customer as per the version numbers. However, the security updates can be given as a patch that is available from v1.x.x onwards. This would decouple the vulnerability fixes and the feature updates. You could put the patches in a specific branch and someone could merge their given branch with the latest on the security patches branch.

You could send an email everytime there are new security patches.

berlin
  • 506
  • 4
  • 14
0

My suggestion is to move your Softwares components to multiple seperate repositories.

You can then include them as subrepositories in different states in the different branches/repositories (you would have tp create a branch or repo for each customer).

Torge Rosendahl
  • 482
  • 6
  • 17