#116: koji_watcher: Pass ENVR instead of NVR ---------------------+------------------------------------------------------ Reporter: kparal | Owner: kparal Type: defect | Status: new Priority: major | Milestone: Component: harness | Version: 1.0 Keywords: | ---------------------+------------------------------------------------------ I have found a problem with current koji_watcher implementation. It passes package NVR to its tests. But if I want to limit max EVR in rpmguard test using koji_utils.list_previous_release(), I have no way to find out the current epoch of the received package. Which causes limitation to work incorrectly. Therefore I think the watcher should be changed to provide its tests with the whole ENVR in format '1:pidgin-2.5-1.fc12' or 'zip-0.4-2.fc12' (assuming epoch 0).
#116: koji_watcher: Pass ENVR instead of NVR ----------------------+----------------------------------------------------- Reporter: kparal | Owner: kparal Type: defect | Status: closed Priority: major | Milestone: Component: harness | Version: 1.0 Resolution: fixed | Keywords: ----------------------+----------------------------------------------------- Changes (by kparal):
* status: new => closed * resolution: => fixed
Comment:
Fixed in [0658141].
I have touched the watcher internals, if somebody can have a look at this patch, I would be glad.
#116: koji_watcher: Pass ENVR instead of NVR ----------------------+----------------------------------------------------- Reporter: kparal | Owner: kparal Type: defect | Status: closed Priority: major | Milestone: Component: harness | Version: 1.0 Resolution: fixed | Keywords: ----------------------+----------------------------------------------------- Comment (by wwoods):
Interesting. As I understand it from talking with mikem, koji specifically disallows duplicate NVRs (regardless of Epoch) which is why I left Epoch off in the first place.
If that's not the behavior you've seen, this change makes perfect sense. Can you give an example of a test case that fails when using NVR instead of ENVR?
#116: koji_watcher: Pass ENVR instead of NVR ----------------------+----------------------------------------------------- Reporter: kparal | Owner: kparal Type: defect | Status: closed Priority: major | Milestone: Component: harness | Version: 1.0 Resolution: fixed | Keywords: ----------------------+----------------------------------------------------- Changes (by kparal):
* cc: wwoods (added)
Comment:
From my trials it also seems that NVR is unique in koji. But if I don't know the epoch of the current package, I can't judge which package is the most recent before this one. Simply because epoch changes the whole thing. I can receive epoch for every package when using latest_by_tag() method, but I also need the epoch of the package I received on the command-line. (And then I can use simply rpmUtils.miscutils.compareEVR()).
Example: [[BR]] Imagine I receive package mc-1.5 on the command-line (epoch 1, but not mentioned).
Now when listing latest packages in koji, I find: [[BR]] 1:mc-1.6 [[BR]] 1:mc-1.5 [[BR]] 0:mc-4 [[BR]] 0:mc-3 [[BR]] 0:mc-2 [[BR]]
How can I judge which package is the "previous" one? The only solution is to utilize the knowledge that NVR conflicts are prohibited in koji (which I guessed but wasn't sure) and send another request "please tell me the epoch of mc-1.5". Only then I know that I received 1:mc-1.5 and the previous build is 0:mc-4. Which is possible, but it is simpler and more efficient to pass the epoch right on the command-line. What do you say, does it seem reasonable?
#116: koji_watcher: Pass ENVR instead of NVR ----------------------+----------------------------------------------------- Reporter: kparal | Owner: kparal Type: defect | Status: closed Priority: major | Milestone: Component: harness | Version: 1.0 Resolution: fixed | Keywords: ----------------------+----------------------------------------------------- Comment (by wwoods):
Yeah - relying on the (unwritten) assumption that koji requires all NVRs to be unique is confusing and may not necessarily be true forever. So it's probably safest to use ENVR instead, even if it's not strictly necessary right now.
Since it also makes things simpler and more efficient for our post-koji- build tests, this is definitely a good idea. Thanks for the explanation.
autoqa-devel@lists.fedorahosted.org