JohnPoelstra/ImproveRawhideF10

From FedoraProject

Jump to: navigation, search

Contents

Background

Brain Stormers


Overview of Issues and Solutions Discussed:

Getting a Complete Tree

Problem: Consumers of rawhide need a way to know that they have the right/correct/complete/consistent tree for a particular date. Every composed tree has a .treeinfo file. The presence of this file does not guarantee that all the other associated packages for that compose are present too

Decision tree for people wanting to install rawhide

  1. is today's tree on the mirror?
  2. Is today's tree worth getting? In other words, "does it have a chance of installing?"
  3. If #1 and #2 are "yes" then #4; else WaitForTomorrow()
  4. Synchronize local copy with mirror
  5. Is the tree I have locally internally consistent and match up with .treeinfo


Best solution going forward

  1. Verify date in .treeinfo (today's date or --date)
  2. verify checksums of repodata.xml (whatever runs last)
    1. change pungi to create checksum of repodata.xml and add to .treeinfo
    2. change pungi to create checksum of kernel, initrd and add to .treeinfo
  3. verify contents of repomd.xml (slow)
  4. verify packages based on repodata (very slow)

Open Items

  1. Need a script or tool written to address solutions steps: 2,3, and 4

Multiple Days of Rawhide

Possible solutions

Consensus on best go-forward plan

Create a new tool:

Update

Archive of rawhide trees now made available by non-koji hub system: http://kojipkgs.fedoraproject.org/mash/

Last Known Good Tree

Important Rawhide Distinctions

Very important and different ways rawhide is used:

  1. Rawhide as a repo of packages
  2. Rawhide as an installable distribution

Open questions and known issues

  1. Can we re-validate composes?
  2. What is our definition of "good"?
  3. There are no current checks performed before trees go to mirrors
  4. Could we fix the problem by performing tests and if the tree is "not "good it doesn't go to the mirror?
  5. How do we determine what is "good enough" to push, but not "good enough" to tag as "good"?
  6. What about providing more snapshots?
  7. Can we do better notification of snapshots to maintainers so that they "land" AND "park" content for snapshots far enough in advance versus "crashing into the runway" at the last minute.
  8. How about about a generic tool that combines livecd-iso-to-disk and diskboot.img?

Snapshots

In F9 we had the following snapshots:

Other thoughts:

Possible action plan

  1. Create more visibility that snaps will be created
  2. Post testopia results for snaps
  3. Create more automation as we go
  4. Mirrored snapshots for full availability and testing
  5. Include smaller package set?
  6. Create snapshots more often (every week?)
  7. Good install trees or snapshots are named by their creation date or milestone

Defining GOOD

Here is what we think Good should mean in the following situations and how to arrive there.

rawhide a REPO

  1. repodata
  2. enough packages (multilib)
  3. key packages (kernel, glibc, rm)
  4. non-insane broken deps
  5. has a valid comps.xml

rawhide as an INSTALL SOURCE

  1. repodata
  2. enough packages (multilib, not missing a complete arch)
  3. key packages (kernel, glibc, rm)
  4. non-insane broken deps
  5. has a valid comps.xml
  6. has complete images
  7. boots
  8. gets to stage 2 of anaconda--the greeting message
  9. testopia rawhide validation set

rawhide as a SNAPSHOT (last known good)

  1. repodata
  2. enough packages (multilib, not missing a complete arch)
  3. key packages (kernel, glibc, rm)
  4. non-insane broken deps
  5. has a valid comps.xml
  6. has complete images
  7. boots
  8. gets to stage 2 of anaconda--the greeting message
  9. testopia rawhide validation set
  10. Has ISOs of proper size (this should be an automated check)
  11. run snapshot testopia validation suite

rawhide as a MAJOR MILESTONE

  1. repodata
  2. enough packages (multilib, not missing a complete arch)
  3. key packages (kernel, glibc, rm)
  4. non-insane broken deps
  5. has a valid comps.xml
  6. has complete images
  7. boots
  8. gets to stage 2 of anaconda--the greeting message
  9. testopia rawhide validation set
  10. Has ISOs of proper size (this should be an automated check)
  11. run milestone testopia validation suite