Bug 1225442

Summary: warn people if they want to upgrade a not fully updated system
Product: [Fedora] Fedora Reporter: Kamil Páral <kparal>
Component: dnf-plugins-extrasAssignee: Jaroslav Mracek <jmracek>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: jkadlcik, jmracek, rpm-software-management, tflink, vmukhame, zbyszek
Target Milestone: ---Keywords: EasyFix, FutureFeature, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: dnf-plugins-extras-2.0.2-1.fc26 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-09 16:00:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Kamil Páral 2015-05-27 11:37:00 UTC
Description of problem:
TL;DR version: Please warn people if they try to upgrade a not fully updated system.

Longer version, with some background:

Our release criteria say:
"For each one of the release-blocking package sets, it must be possible to successfully complete an upgrade from a **fully updated installation** of the previous stable Fedora release with that package set installed."

Similar recommendation is in our upgrading guide on fedora wiki. However, documentation is one thing, and reality is another. We should try to make our software work as painlessly and out-of-the-box as we can, even for users who don't read documentation (what a heretic idea!:-)).

With Fedora 22 release, we have uncovered quite a few issues with outdated systems:
Fedora 20 will not have necessary gpg keys (bug 1220358), Fedora 21 will just hang at boot (bug 1223735).
None of these issues are catastrophic, there's no data loss, they're just inconvenient and require the person to search online for a solution or ask in support channels. Some people might be put off, many of them will manage just fine.

However, I believe we should strive for a better user experience, where we try to detect issues in advance, or at least warn people about potential complications in advance. This approach would also help us in the future, when some catastrophic issues might appear with outdated systems.

As a result of this, I believe we should:

1. run something like `dnf check-update` during fedup startup and warn users if their system is not fully up-to-date. Something like this:
> Checking system updates... done.
> WARNING: This system is not fully up-to-date. It is strongly suggested
> that you fully update and reboot your system first, before starting the
> upgrade process. Upgrading an outdated system is unsafe and might cause
> various unexpected issues.
> Do you still want to continue with the upgrade? [y/N]: 

2. add this advice also to `man fedup`

Even though it adds some complexity (running dnf check-update), there's really no better place to put this warning into than the upgrade tool itself. Thank you.

Version-Release number of selected component (if applicable):

Comment 1 Fedora Admin XMLRPC Client 2015-10-19 18:31:06 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 2 Kamil Páral 2015-10-20 08:11:42 UTC
This idea easily applies even to dnf-plugin-system-upgrade, I believe.

Comment 3 Fedora Admin XMLRPC Client 2017-02-13 21:14:54 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 4 Jaroslav Mracek 2017-06-08 15:14:10 UTC
I create a pull request that provide warning and enhance documentation of system upgrade (https://github.com/rpm-software-management/dnf-plugins-extras/pull/97). Hope that the proposed solution is sufficient.

Comment 5 Kamil Páral 2017-06-09 12:51:43 UTC
That message will be printed out after "dnf system-upgrade download" is executed?  I assume it will shortly be scrolled out of view by the actual "download" output, and therefore many people will fail to notice that.

It would be better if you could print something like:
"You system is not fully updated. Please run "dnf update --refresh" first. Running a system upgrade right now is not recommended. Do you want to ignore this warning and continue? [y/n]"

and make the user notice that and make an explicit choice about this.

Comment 6 Jaroslav Mracek 2017-06-11 17:52:38 UTC
Thanks for response but I would like to provide some notes:

The first of all the message cannot be ignored easily, because even it is printed at top, but at that point you have to download (wait) all of repos for new distro therefore you have plenty of time to read the warning and the message is in bolt. 

The second:
We cannot use this strong message: "You system is not fully updated. Please run "dnf update --refresh" first. 
Reason is simple - you will be very surprise but we don't know if there are some installable upgrades for current distro (sorry but skipping details). 

The third:
The information how to use the system upgrade you can found on fedora wiki (nice page that can be easily googled out), and also in man page of dnf plugin (less detailed description but sufficient).

Please lets move the further discussion to PR, because it can be still improved.

Comment 7 Jaroslav Mracek 2017-06-14 06:56:13 UTC
I added user confirmation request in PR:

sudo dnf system-upgrade download --releasever 26
Do not continue unless your system is fully upgraded ("dnf --refresh upgrade")! Do you want to continue [y/N]: 
Error: Operation aborted.

Hope that it helps.

Comment 8 Kamil Páral 2017-06-14 08:10:41 UTC
Thanks, Jaroslav.

Comment 9 Fedora Update System 2017-08-07 12:51:56 UTC
dnf-2.6.3-1.fc26 dnf-plugins-extras-2.0.2-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-4813633f96

Comment 10 Fedora Update System 2017-08-08 01:25:08 UTC
dnf-2.6.3-1.fc26, dnf-plugins-extras-2.0.2-1.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-4813633f96

Comment 11 Fedora Update System 2017-08-09 16:00:38 UTC
dnf-2.6.3-1.fc26, dnf-plugins-extras-2.0.2-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.