BendEg
BendEg

Reputation: 21098

How to create a patch system

I have a question about best practice to make our software "patch-able".

Some information abour our product/company:

  1. We create our software use C#/WPF
  2. Use Visual Studio 2013
  3. Have some setup-maker (Advanced installer)
  4. Use TFS for source control.

Every time we create a release, we put it into a new branch in the tfs, so that the structure look like this:

Now i have the problem, that i don't know how to make our product patch-able, without making a patch for every version. Because if a bug is in version 1.0.0.0 and 2.2.0.0 and i don't want to install the newest version (3.3.0.0), i need to fix both versions (1.x and 2.x).

Is there a way to make this more elegant and comfortable for me?

Thank you!

Upvotes: 3

Views: 1625

Answers (2)

You should move to a continuous delivery model. You need to Change the way that you have engineered your product so that you can install any version over the top of any other version. If you also make sure that you have a solid definition of done, and a short delivery cycle then you will never need to install a patch. Just ship a new version with features that you are not ready to show turned off.

Check out http://stories.visualstudio.com to see howba large product solved the issue.

If you are thinking "that looks too hard" then you are likely have too much technical debt (or more acuratly unhedged fund) and you need to address that first.

Look into feature flags for code and Ready Roll or SSDT for databases.

Upvotes: 1

NDJ
NDJ

Reputation: 5194

from my experience, not really - I used to work on a very large project which had clients using many different versions, bug fixes were applied to all versions and patched - this was often a manual (and tedious) process, as the code base had often changed sufficiently between versions so you couldn't simply merge changes. Try to encourage clients to upgrade when possible, and where possible make use of TFS' merge functionality.

Upvotes: 3

Related Questions