On 03/24/2011 08:23 PM, Lamar Owen wrote:
> If I may ask a CentOS QA process question, then, is what is the QA on making sure that the package that gets pushed to -testing and then to -updates is the latest build of a particular EVR tuple? Just curious, since buildtime seems a reasonable thing to use for that sort of thing. Or, for that matter, that the QA feedback is for the correct build of a particular EVR for a package?
There are three things here that are important :
1) the QA team guys are very wired up to this process - and are very
aware of the fact that packages will change with no EVR change; they are
also aware of the fact that the testing that were doing is from <whats
out there now> => <what we want to put out there > ( as opposed to <what
we tested yesterday> => < what we want to test today> )
2) We only ever sign packages once they are accepted; and only signed
packages are pushed publicly
3) Every package build ( so srpm -> binary rpm conversion ) runs with a
uniq build-tag; the buildtag has no relation to package name-E:VR.arch
or anything like that. Its a purely generated ID. So its still possible
to go back and get stats, logs etc for every build that we did.
irrespective of what we did ( eg: there are lots of things that were
exclusive arch: s390 :D )
None of that probably answers your question. So here is how the 'move to
repo happens'. By hand :) or the system is smart enough to replace all
binary rpms with newer builds if the srpm metadata is the same. So you
can ever only have one <name>.<arch> in the os/repo as output from one
srpm; and their buildid needs to match ( which will handle corner cases
like a subpackage going away etc ); for updates/<arch>/repo there can
only be one name-E:VR.arch from one source rpm; and since the test is
only run when a new set of binaries are output, the latest will always
win[1]
- KB
[1]: this is not always true or the desired result, and needs manual
intervention.