Learning what constitutes upgradability
We all download and use various software. We also consume software as a service that is hosted by a provider. In any case, as a developer, we bind ourselves to a particular version of the software/service. For example, when you download Geth to run an Ethereum node, you download a specific version of Geth and use the features provided by that version. There could be multiple versions available prior to the downloaded version and they might have many similar, or, at the same time, not so similar, features. What this means is that every time there is a new version of any software/service, there are generally significant changes and improvements over the prior version.
These significant changes and improvements could be in the form of the introduction of new features, existing feature enhancement, bug fixes, issue resolution, or a variety of other reasons typically related to software, such as base platform upgrades and fixes.
We know...