Re: Fedora Lifecycles: imagine longer-term possibilities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Realistically, the only thing that fits the interests of Fedora
packagers, the cadence and interdependencies of the projects Fedora
ships, is a form of rolling release.

We are not a Microsoft that can tell its software groups “from now on
you release with this cadence and support for this period” (and
Microsoft gave up on that approach too). Hell Fedora cadencing was
designed around the stated needs of the GNOME project, RH employs key
GNOME devs, and GNOME requires releng exemptions for pretty much every
Fedora release. That tells loads about the utter lack of respect
upstreams have for Fedora cadencing attempts.

Rings have always been an unicorn concept, we can’t even manage to keep
our comps up to date for christsakes, any solution that posits a perfect
package classification and breakup in modules or rings, and is
maintained long term, is utterly utopic except for very small tightly
controlled parts of the distribution. And don’t forget rings/modules add
a version/time axis that is not required in comps.

So the basic question is how to conciliate a rolling release with the
needs of hardware sellers.

I'd say that requires:

* releasing initial installation states one or several times a year (1,
2, 3, or 4). Anything exposed in the official installer is part of this
state. Anything added post-install or some other way does not get a
Fedora commitment.

* committing to making unattended full upgrades work from any
intermediary state, more recent than the last Nth installation state, to
the most recent installation state
  * reboots in upgrade environments are permitted, as long as those envs
do not require human intervention
  * requiring users to blow up their disk with a new clean install
because we don’t want to automate part of the upgrade is not permitted
  * that means testing to death upgrade paths from any state between n-1 
and n to the initial-n state for every n value, and making sure the
resulting initial-n is consistent with the initial-n values taken into
account in the rest of the testing
  * that means testing to death any N-1 chain of jumps from initial-n to
initial-n+1

* committing to making unattended point upgrades work from any state
past the latest installation state to the current upgrade tip

* committing that any hardware combo, that works in the Yth installation
state, will still work at least till the Y+Z state, unless stated
otherwise (and yes that requires identifying bad hardware that will stop
being supported during the Z-step era, and defining at Y release time
the free memory/disk/cpu margins that need to be taken for Z-step to be
viable, and checking those in the installer)

* that effectively means:
  * the only supported state is the current upgrade tip,
  * you have an N-era window where upgrades to the current tip are
supported baring hardware problems
  * you have a Z-era window where upgrades to the current tip should not
require hardware changes
  * any software state older than the latest installation state may
require long reboots in automated upgrade environments

* and because all this is too restrictive to some, and mightily hard to
do without any early bird testing, you add a dev mode that unlocks early
access to rawhide-style packages and installation options that may not
work for N/Z windows. In dev mode there are no commitment to length of
hardware support, and the only supported upgrade paths are point
upgrades within the current upgrade cycle.

That gives packagers two package streams to care about, devel and
stable, which is pretty much what a lot of them do today.

And that only answers the “how to get more users” question.

The “how to get more packagers” question requires investing heavily in
rpm and buildsys tech to automate aggressively all the steps that should
not require manual packager processing, but do today.

ie have people look at guidelines/review/updates, and ask themselves
systematically “is there any part of the work the packager is doing that
does not absolutely require human brains and could be automated one way
or another”. And then make this automation happen. ie clean up the years
of technical debt produced by “volunteer packager time is free, rhel
packagers do what they’re ordered to, rpm is mature, make no radical
changes”. rpm and deb “won”, no distro based on another tech succeeded
in reaching mass appeal for years, that does not mean they are done. The
software env changed a lot since rpm was designed. It needs a serious
refresh, and not “this is how we’ve been doing things since forever”.

Make it easier and cheaper for packagers to produce good packages,
you'll have more packagers and a more attractive distro. Contrary to
popular thinking making easier to produce garbage has little appeal
except to people that just want to be rid of the deployment chore.

Regards,

-- 
Nicolas Mailhot
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux