What Fedora needs is some direction - and online upgrades

Some of the biggest problems I see in Fedora these days are the following:

1. Lack of direction

Since Fedora is a distribution for developers by developers in order
to test out new technology, the main tree ends up being a
hodge-podge of whatever each individual maintainer feels like
working on. Unless there is an individual or small group of
individuals that desires things to be a certain way, then you have
to abide by those rules (take for example, no kmods in Fedora).

If Fedora had a better sense of what it should be doing it would
polarize developers along the same path rather than everyone working
for their own goals.

For example, I haven't seen any real ground-startling features for
Fedora 7 or 8. Sure, Fedora 7 had "the merge", but that mostly was
for maintainers benefit (arguably) and again was driven by very
few people. For Fedora 8 one of the "big features" was supposed to
be a rework of the init system, but that's again been pushed off.
Instead we get features like "online desktop" and "NetworkManager".
While these do improve user experience, they are very small nitches
that don't involve developers for all of Fedora - just tiny groups
of people. Everyone else is left to do whatever they want, so long
as they don't piss off one of the groups that are in control.

  1. Upgrades aren't supported - All hail Anaconda - the great ~~upgrader~~installer!

    Fedora (and RHEL/CentOS) needs to be able to upgrade online, using a tool like yum (or smart, or apt - I don't really care which tool it is - right now it seems smart could handle it better than yum). Most of the other distros can do this without problems (Gentoo, Ubuntu, Debian).

  2. No optional featuresets for packages - You have packages that either include the feature or do not.

I'm not sure how to fix the problems, but I do know that Fedora needs to make the following happen:

1. Make upgrades work - Even with Anaconda it wasn't possible to upgrade from FC-6 to F-7 without broken packages - an online upgrade would have arguable gone better, but it "wasn't supported". "yum upgrade" should work like "apt-get upgrade" between versions.

With the rolling release like we've been having the past couple
versions, it's very easy for someone with an up-to-date release have
newer packages than are available with the release of the
next version.

Case in point: FC-6 had KDE 3.5.7, but F-7 shipped with KDE 3.5.6.
Immediately after release 3.5.7 was available as an update for F-7,
but an upgrade from FC-6 to F-7 wasn't supported due to libata
changes (hda-&gt;sda). This stuff needs worked out so that you can
update from one version to the next easily.
  1. Optional package features - Offer packages that can somehow enable/disable features based on what other packages are installed. Be able to install package foo that has either mysql or postgresql support, or both - even if they're compile flags. That is to say, if I have mysql currently installed, and I install foo, I get foo w/ mysql. Or if I try to install foo without mysql or postgresql, provide some way of saying that they can be supported if you install them.

Both of these problems are hard. They require coordination across all of the package maintainers. Perhaps they're features that could polarize the maintainers to a common goal and make Fedora better.