What are the great examples of a software  maintaining forward (upward) compatibility between versions?
Extra question: in which cases such a software is required  to maintain forward (upward) compatibility between versions?
 This includes free / non-free, open / closed source, commercial / non-commercial software of any application domain.
 For instance, by application domain standards, by established practices / expectations in the end user community, etc.
Note: could not find the following tags: