Packaging knowledge

Supersedence and versioning

How a new version replaces the old one, why order matters and what happens when both are assigned at once.

Replacing instead of overwriting

A new version is not an additional package but a replacement. If both are assigned at the same time, assignment order decides, not the version number. The result: devices with both variants, or no visible change because the old package wins.

Assignment order

Supersedence is defined as a relationship: new replaces old. What matters is that the new assignment actually applies. Leave the old assignment in place next to the new one and you are testing order, not the new version.

Dependencies

A replacement can have a dependency: the new package needs a runtime, a certificate or other software. That dependency belongs inside the package, not in a second assignment that arrives “at some point”.

Falling back to the old version

Rollback is possible only if the old version still exists and can still be assigned. Delete it during the update and you have no way back. Keep it available until the new version runs on a sufficient number of devices.

Checks

Four things: does detection recognise the new version? Is the old assignment removed or replaced? Are there devices with both versions? Does uninstalling the old version still leave a clean result?

Answer those four and you have an update — not just a new package.

---