upgrade returns non-zero if already on latest version