Macjutsu / super

S.U.P.E.R.M.A.N. optimizes the macOS software update experience.
Apache License 2.0
599 stars 81 forks source link

Feature Request: Require all updates before allowing upgrades #108

Closed wakco closed 10 months ago

wakco commented 1 year ago

Due to this thread on #eraseinstall on MacAdmin Slack, I realised it might be an idea to include an option to require that the current macOS version is fully updated before offering an upgrade.

Essentially startosinstall and the various Install macOS <version name>.app apps will complain if the macOS version currently installed is not up to date enough. i.e. the example in the thread, the existing install was macOS 11.3.1 Big Sur, of which the latest is 11.7.8, to which startosinstall complained about it.

Macjutsu commented 1 year ago

I've never seen this in action yet. Even in my "extreme" testing where I upgrade quite old versions of macOS. I will look into this as part of the v4.0 rewrite.

It's also interesting to note that macOS 13+ should really never need a full installer again as even the MDM workflow is "supposed" to be able to support upgrades via softwareupdate deltas.

wakco commented 1 year ago

I actually have, while startosinstall and the various Install macOS <version name>.app apps might claim they support upgrading from quite far back, that is only in reference to the major version, the minor version tends to require the latest updates more with the older major versions, i.e. even with macOS 12 Monterey, it is unlikely startosinstall will upgrade a 12.0, but probably will happily upgrade 12.1 or 12.2, macOS 11 Big Sur may not need to be 11.7.8, it may still require as far back as 11.4 (thread example was unable to upgrade 11.3.1), and for macOS 10.15 Catalina, it might still allow 10.15.6 but is most likely to require 10.15.7. I would expect even the deltas will have similar minimums for each major version, the difference there is softwareupdate is less likely to present deltas for unsupported versions, similar to how it doesn't when upgrades are delayed for 90 days.

Most of us do not tend to see this issue very often since we are also trying to keep even the minor updates, up to date. But I still thought it would be nice to have a setting to limit upgrades to the latest updates, as a way to help make the upgrade process as successful as possible.

TechTrekkie commented 1 year ago

I just tested upgrading from 11.2.3 to 13.4.1, 11.3.1 to 13.4.1, and 12.0 to 13.4.1 and was able to do so successfully. I didn't run into any issues with startosinstall in all three scenarios, so there doesn't seem to be any issue with upgrading from older versions but perhaps I'm missing something

wakco commented 1 year ago

More information needed, but I suspect in the original thread they might have been using an older (cached) copy of the macOS installer.

I still think this is a good idea, because like restarting first, helps to reduce possible problems with the upgrade.

Macjutsu commented 10 months ago

Please try to replicate in https://github.com/Macjutsu/super/releases/tag/v4.0.0-rc1.

If you can't replicate this by the release of v4.0.0 later this week, I'll be closing this issue.

wakco commented 10 months ago

I haven't even looked at v4 yet, (preparing for switching from Jamf Pro on premise to Jamf Cloud in January/February), but I was planning on doing that next month as part of the preparation. I'm happy to consider this a wish list item, especially as the basic IT support response can continue to be, when having problems like this, updating the OS before upgrading isn't exactly hard to do.

Macjutsu commented 10 months ago

The issue I have is that it's not something that would be trivial to add to super's logic.

This workflow would imply a multi-stage upgrade process wherein super must first know to only update and then after a restart, assuming the update was successfully applied... then start over with preparing for an upgrade.... then would super be expected to go through it's full barrage of waiting for the user to defer/restart or would it simply start the upgrade immediately?

The issue here is that it may take several hours to prepare the upgrade after the update completes due to how the softwareupdate process is not "asynchronous". I can't prepare both at the same time. The update must fully complete before an upgrade can begin.

wakco commented 10 months ago

I closed this as I believe this issue is rare enough that it is better as IT advice, if they get problems with upgrading, they should make sure the OS is fully updated first is simpler than trying to get super to make sure first, especially since in most cases it shouldn't have an issue.