flowchart TB
inv["① Record the state, the holds
and set up the witness"]
sauv["② Back up
/etc/docker and the definitions"]
lr["③ Add live-restore by merging
jq, validate, then reload"]
sauv2["④ Back up
/etc/docker again"]
monte["⑤ Upgrade to the named version
unhold, install, hold"]
preuves{"⑥ PID, StartedAt, counter
and checksum unchanged?"}:::accent
garde["⑦ Keep the version
holds set again"]
retour["Go back to the previous version
unhold, --allow-downgrades, hold"]
limite["Daemon in start-limit-hit?
reset-failed, then start"]
inv ==> sauv
sauv ==> lr
lr ==> sauv2
sauv2 ==> monte
monte ==> preuves
preuves ==>|yes| garde
preuves -.->|no| retour
retour -.-> limite