2

This is more of a theoretical question. Can we assume that two versions of software are backward compatible if all intermediate versions are backward compatible?

In the diagram, assume that 1.1 is backward compatible with 1.0. 1.2 is backward compatible with 1.1 and 2.0 is backward compatible with 1.2.

Does it follow that 2.0 is backward compatible with 1.0?

SW release

1 Answer 1

2

It depends, here is my thought on a track that breaks compatibility, but keeps other version compatible on each other:

  • 1.1 could introduce a new feature X, which does not break backwards compatibility with 1.0
  • 1.2 could change X, but keep it backwards compatible with 1.1
  • 2.0 could change X, but keep it backwards compatible with 1.2

1.0 does not have feature X or its upgraded data model, something that 2.0 now depends on, thus it is not backwards compatible.

2
  • I don't follow your example. If v1.0 has features A, B, C, and the client uses those features, when upgrading to v2.0, what does it matter to the client if feature X is introduced?
    – kuporific
    Commented Aug 12, 2022 at 19:51
  • Because upgrading to v2.0 might need data generated by feature X in v1.1 and break the upgrade path even if these users do not use feature X. Commented Aug 13, 2022 at 8:35

Your Answer

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

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