On Thu, 2011-01-13 at 05:45 -0500, Josef Skladanka wrote:
Of course, moving koji_url to autoqa.conf is great idea! On the other
hand
I would not move the cachedir there, since it's quite watcher-specific
and should not change after the watchers first run (since we need to load
the stored data from the respective cachefile), hence the hardcoded way.
I agree, doesn't make sense to have each watchers cachedir in
autoqa.conf. I was thinking we might want the cachedir root, shared by
all watchers (/var/cache/autoqa), configurable in autoqa.conf.
Definitely falls into the "future optimization" category :)
> You've taken an interesting/new approach by re-using the
existing
> post-koji-build watcher. A few related comments ...
>
> 1. I see you are kicking off 'post-koji-build' autoqa jobs for new
> -pending tags. My impression was the output of the current
> 'post-koji-build' watcher wouldn't change. Am I incorrect?
> (possibly related to point#3 below)
> 3. I'm a little confused as to how the new watcher relates to
> post-bodhi-update. Does support for monitoring the -pending
> tag, replace the need for post-bodhi-update? Anything related
> to monitoring the -pending tag is new mechanism for monitoring
> for proposed bodhi updates, right?
Yes, -pending tag represents the 'Bodhi event', because Bodhi assigns
the -pending tag after doing it's magic, so we can easily track it
using data from koji (i.e. the changes of the 'content' tagged with
the respective -pending tag)
Ad "output of koji won't change": I've briefly
discussed this with
kparal and in the next release I'd like to distinguish the events
by adding a specific parameter to autoqa, so we won't need to 'guess'
it based on the watcher name. As you and me discussed some time ago with
wwoods, the watchers watch for 'events' (e.g. post-koji-watcher triggers
'new package in koji' event, the post-bodhi-update triggers the bodhi event).
At the moment, we're distinguishing the events using the name of
the respective watcher (which made perfect sense up until now), but
in the next release, I'd like to add a parameter to autoqa, which would
specify the type of event (e.g. "--event=new_package_in_koji"), so
we do not need to rely on the watcher name.
I see what you mean, but I'm hesitant to break the separation that has
existed between the watchers in the upcoming next release, and fix it
later.
For example, we have a different potential set of tests that are
triggered by 'post-koji-build' and by 'post-bodhi-update'. I understood
these tickets to mean we wanted to 1) adjust the existing
post-bodhi-update watcher to use the more reliable koji -pending tags
for monitoring, and 2) Add a batch event for bodhi-updates. Since both
watchers need similar code, I expected there to be a lot of sharing, but
I think we still need to distinguish between the two different test
events.
For example, if I run the new koji watcher ...
# python hooks/post-koji-build/watch-koji-builds.py --dryrun
autoqa post-koji-build --kojitag dist-f13-updates-candidate --arch x86_64
oxygen-gtk-1.0.1-1.fc13
This looks correct, and matches what the previous post-koji-watcher would emit.
autoqa post-koji-build --kojitag dist-f13-updates-pending --arch
x86_64 pam_ssh-1.97-4.fc13
This seems incorrect, since it will schedule post-koji-build tests for
that update. We'd want the set of tests defined for bodhi updates. I'd
expect to see this scheduled as ...
autoqa post-bodhi-update --title pam_ssh-1.97-4.fc13 --updateid
FEDORA-2011-0146 --target-tag dist-f13-updates --arch i686 --arch
x86_64 --arch noarch pam_ssh-1.97-4.fc13
Whether the underlying mechansim is querying bodhi, or inspecting koji
-pending tags, our tests need to distinguish between these different
events still.
For batch jobs ...
autoqa post-koji-build-batch --kojitag
dist-f13-updates-testing-pending kdepim-runtime-4.4.9-1.fc13
6:kdepim-4.4.9-2.fc13
Same as above, this isn't a koji build event that we are monitoring, it
should be a bodhi-update event, right? More appropriately,
bodhi-update-batch. I would expect to see this triggered something
like ...
autoqa post-bodhi-update-batch --target-tag dist-f13-updates-testing
--arch i686 --arch x86_64 --updateid FEDORA-2011-0146 --updateid
FEDORA-2011-0147 kdepim-runtime-4.4.9-1.fc13 6:kdepim-4.4.9-2.fc13
At the moment, the post-bodhi watcher is still active, so I did not
feel the need to implement this functionality right now, but it's
true, that this might be confusing.
> 2. Perhaps related to above, I see where you are removing duplicate
> jobs from the updates-candidate set, can you talk to this a bit
> more?
OK, in Koji, we have XYZ-updates-candidate tag. This tag contains
all the builds, which are not in XYZ-updates or XYZ core stable repo.
The "all not in stable" quantifier is important, because when Bodhi
wants to 'push' some update, it _adds_ the XYZ-pending tag to the
-updates-candidate tag. So when a build is tagged with -pending, it
has (at least) two tags at the same time: -updates-candidate & -pending.
We assume, that if the package has -pending tag, it was already tested
in the -updates-candidate stage, so I'm removing it from the -updates-candidate
listing, so the tests do not run twice needlessly.
Hope it makes sense :)
It does, but I think we do want to schedule both events (koji build and
bodhi update). The set of tests that respond to the koji build events
are different from the set that responds to bodhi updates. All related
to my earlier comment.
I think we are combining the event being monitored and the
implementation for monitoring the event. But I keep thinking the event
is separate and distinct, while the implementation can be
shared/similar. Apologies if I'm completely missing something with the
patchset. If so, it might be easier for me to catch-up with you on
IRC/phone.
Thanks again,
James