This is a recent email to the ubuntu-devel mailing list that describes not only recent changes to the do-release-upgrade process, but how it works in general. It is also posted here.
If you are unaccustomed to the command-line…first of all, you should learn the command line. But for now, the do-release-upgrade utility is used to upgrade from one Ubuntu release to another. The graphical desktop utility utilizes this as well.
From: Brian Murray
Subject: Changes to do-release-upgrade and meta-release files
To: Ubuntu Development
I’ve recently made some changes to how do-release-upgrade, called by
update-manager when you choose to upgrade releases, behaves and thought
it’d be a good time to clarify how things work and the changes made.
When do-release-upgrade is called it reads a meta-release file from
changelogs.ubuntu.com to determine what releases are supported and to
which release to upgrade. The exact meta-release file changes depending
on what arguments, –proposed or –devel-release, are passed to
do-release-upgrade. The meta-release file is used to determine which
tarball to download and use to actually perform the upgrade. So if you
are upgrading from Ubuntu 17.04 to Artful then you are actually using
the the ubuntu-release-upgrader code from Artful.
One change implemented some time ago was support for the release
upgrade process to skip unsupported releases if you are running a
supported release. For example, when Ubuntu 16.10 (Yakkety Yak) becomes
end of life and you upgrade from Ubuntu 16.04 (Xenial Xerus) with
“Prompt=normal” (found in /etc/update-manager/release-upgrades) then
Ubuntu 16.10 will be skipped and you will be upgraded to Ubuntu 17.04
(Zesty Zapus). This ensures that you are running a supported release and
helps to test the next LTS upgrade path i.e. from Ubuntu 16.04 to Ubuntu
18.04. Similarly, when Ubuntu 17.04 becomes end of life an upgrade from
Ubuntu 16.04, with “Prompt=normal”, will upgrade you to Ubuntu 17.10.
I’ve also just modified the documentation regarding the ‘-d’ switch
for ubuntu-release-upgrader and update-manager to make it clear that
‘-d’ is for upgrading from the latest supported release (Ubuntu 17.04
right now) to the development release of Ubuntu. The documentation used
to incorrectly imply that any release could be updated to the
development release, something that would be an unsafe upgrade path.
Additionally, the meta-release-development and
meta-release-lts-development files were modified to only contain
information about releases relevant to the upgrade path. So
meta-release-lts-development is currently empty and
meta-release-development only contains information about Ubuntu 17.04
and Artful Aadrvark which will become Ubuntu 17.10.
I hope this makes things a bit clearer!