We can't target any user without fixing these 5 things
William Jon McCann
william.jon.mccann at gmail.com
Thu Oct 8 23:21:16 UTC 2009
On Thu, Oct 8, 2009 at 4:31 PM, Christopher Aillon <caillon at redhat.com> wrote:
> (hm, apparently my VPN connection died on the plane when I thought I had
> sent this last Saturday...)
> I think perhaps the single largest issue we have is a lack of
> reliability/predictability during a Fedora release stream (e.g. post-release
> updates, rawhide). It's great that we have predictable schedules, and that
> we have predictable feature sets. What sucks is that nobody knows how well
> those feature sets will work, and just as importantly, nobody knows what
> types of package updates (wrt ABI compat, rebases, etc) to expect in the
> Fedora update streams. Things which work on release day may break later on
> due to some packages getting de-stabilizing updates, some not. We ask
> maintainers to use their judgement, and when people complain, we explain
> that we don't control it, and it's up to the maintainer. This clearly does
> not work as this is a frequent topic of contention on various mailing lists,
> and is not really beneficial to any class of user.
> Additionally, nobody knows whether rawhide on any given day will be usable,
> and it still has a negative stigma attached to it: some engineers who
> provide rawhide packages don't even use rawhide, which is causing rawhide
> and thus the upcoming releases to get less testing. I do not think that we
> can really provide top quality software if we can't even use what we build
> at any given point. We are more focused with getting features in then with
> getting them in and having them work. We are happy to break things in
> rawhide and say "well, it's rawhide, i'll fix it in a few days".
> If we want to target Fedora for any class of user, we need to think and act
> for the user. Right now, we're clearly not even acting for the people that
> do use our distribution. I think we should fix that before we can even
> begin to define what our target user should be. If we can't do these five
> things, then I think any discussion involving target users is rather
> pointless, and quite honestly, we are doomed to fail, IMHO. (Note that some
> of these items may be best specified by e.g. FESCo, but I think they reflect
> a significant enough change in the way we do things that the Board should
> push for and stand behind these).
> 1. Define a list of core/critical-path functionality that packagers are
> required to ensure they do not break. Define a plan of action for what
> happens if such functionality becomes broken. See example. Bonus points:
> come up with an easy to follow "smoketest" for how to determine whether
> something on the list is broken.
> 2. Define update criteria for our release streams: what types of updates
> we expect, and what types of updates we do not want in each stream. Define
> a plan of action for what happens if an update fails to comply. See
> 3. Set up something similar to Mozilla's "Sheriffs". The Sheriff will
> be a rotating role and shall be responsible for coordination and enforcing
> of the previous two rules. If an issue arises, the sheriff will attempt to
> contact the packager responsible, and attempt to get them to fix or revert
> the issue. If this isn't possible within 15 minutes, the sheriff will find
> a provenpackager to do so.
> 4. Improve our test suites. Provide $coolstuff incentive for people who
> contribute (the most?) valid test cases.
> 5. Start an initiative to automate as much of the above as possible.
> Possibly as GSoC projects. Particularly, I'd like to see a tinderbox which
> creates VMs from a buildroot+ks file, runs automated tests for the critical
> path, and outputs the PASS/FAIL results. I'd also like to have a
> post-commit hook which reminds people to not break stuff and to be available
> to the sheriff on IRC.
>  Example: Core/critical-path is a system must boot up, get a display
> manager with XYZ video cards, be able to log in successfully, be able to get
> a working network via ethernet (and if available, via xyz wireless cards),
> have audio work on XYZ audio cards, and be able to successfully use
> yum/rpm/PackageKit. In the event any package breaks this functionality, the
> package must be fixed immediately (within 15? minutes of noticing) or the
> changed is reverted, package untagged and rebuilt. If N violations occur,
> provenpackager status is revoked.
>  Example: For rawhide, do not break dependencies without announcing in
> advance about why you are doing so to fedora-devel-list, and not receiving
> objections. For Fedora releases, updates must not break ABI or dependencies
> without getting an exception granted from FESCo. In the event any package
> fails to comply, the change is immediately reverted, and mail sent to the
> packager owner. If N violations occur, provenpackager status is revoked.
>  https://wiki.mozilla.org/Sheriff_Duty
Also see https://fedoraproject.org/wiki/Desktop/Whiteboards/UpdateExperience
Would be great to start working on these important problems.
More information about the fedora-advisory-board