Wednesday, 2019-06-05

corvusyeah, it'll be harder to do correctly since they're on different mm systems00:01
corvushowever, for an announce-only list, should still be feasible.00:01
fungiyep, manageable00:06
*** pwhalen has quit IRC00:06
*** sanjayu__ has quit IRC00:27
*** mattw4 has quit IRC00:44
*** spsurya has joined #zuul01:18
*** rlandy has quit IRC01:31
*** rfolco has quit IRC01:46
*** rfolco has joined #zuul01:47
*** threestrands has joined #zuul04:15
*** pcaruana has joined #zuul04:30
*** flepied has joined #zuul05:37
*** themroc has joined #zuul06:56
*** hashar has joined #zuul07:03
*** sshnaidm|off is now known as sshnaidm07:06
*** gtema has joined #zuul07:08
*** yolanda has joined #zuul07:15
*** gtema has quit IRC07:32
*** jpena|off is now known as jpena07:56
*** evrardjp has joined #zuul08:04
*** sshnaidm is now known as sshnaidm|afk08:07
*** panda|ruck has quit IRC08:14
*** panda has joined #zuul08:28
*** gtema has joined #zuul08:36
*** threestrands has quit IRC08:39
*** openstackgerrit has quit IRC08:47
*** panda is now known as panda|ruck08:52
tristanCHello, could this fix be reviewed please: https://review.opendev.org/659026 ?09:28
*** hashar has quit IRC09:33
*** sanjayu__ has joined #zuul09:41
*** sanjayu__ has quit IRC09:52
tristanCcorvus: deployments using git.zuul-ci.org/zuul-jobs now have a config error "Unknown project zuul/zuul-jobs" for the zuul-jobs-test-registry job.09:56
*** openstackgerrit has joined #zuul10:03
openstackgerritTristan Cacqueray proposed zuul/zuul master: web: remove SafeLoader left-over from ZuulJSONEncoder  https://review.opendev.org/65902610:03
openstackgerritTristan Cacqueray proposed zuul/zuul master: config: add tenant.toDict() method and REST endpoint  https://review.opendev.org/62134410:05
*** sshnaidm|afk is now known as sshnaidm10:25
*** badboy has joined #zuul10:30
*** ParsectiX has joined #zuul10:33
*** gtema has quit IRC10:39
*** gtema has joined #zuul10:40
openstackgerritTristan Cacqueray proposed zuul/zuul master: jsonutil: do not encode SourceContext or ZuulMark  https://review.opendev.org/66329810:50
openstackgerritTristan Cacqueray proposed zuul/zuul master: config: add tenant.toDict() method and REST endpoint  https://review.opendev.org/62134410:55
*** themroc has quit IRC11:04
*** jpena is now known as jpena|lunch11:07
*** themroc has joined #zuul11:07
*** panda|ruck is now known as panda|ruck|eat11:19
*** mgoddard has joined #zuul11:19
*** sanjayu__ has joined #zuul11:44
*** yolanda has quit IRC11:48
*** hashar has joined #zuul11:59
*** jpena|lunch is now known as jpena12:01
*** rlandy has joined #zuul12:15
*** badboy has quit IRC12:17
openstackgerritMark Meyer proposed zuul/zuul master: Create a basic Bitbucket build status reporter  https://review.opendev.org/65833512:22
openstackgerritMark Meyer proposed zuul/zuul master: Create a basic Bitbucket event source  https://review.opendev.org/65883512:22
openstackgerritMark Meyer proposed zuul/zuul master: Upgrade formatting of the patch series.  https://review.opendev.org/66068312:22
openstackgerritMark Meyer proposed zuul/zuul master: Extend event reporting  https://review.opendev.org/66213412:22
*** panda|ruck|eat is now known as panda|ruck12:30
*** ParsectiX has quit IRC12:33
*** migi has joined #zuul12:35
migihello, I have a question regarding job definition syntax. Is it possible to use for the *same* job two different nodesets based on different branch regex?12:36
migimigi: answered question https://zuul-ci.org/docs/zuul/user/config.html#attr-job.branches , sorry for noise12:39
openstackgerritMark Meyer proposed zuul/zuul master: Extend event reporting  https://review.opendev.org/66213413:08
*** ParsectiX has joined #zuul13:08
fungimigi: yes, the way we do that in our jobs is to have two variants of the job with different branch regexes and then associate different node types with them. an example: https://opendev.org/openstack/openstack-zuul-jobs/src/commit/a7aa530a6059b464b32df69509e3001dc97e2aed/zuul.d/jobs.yaml#L343-L37813:10
fungiso projects can add that one job name, but which variant (and therefore which nodeset) is used will be determined by the branch associated with the triggering event13:11
*** hashar has quit IRC13:11
*** gtema has quit IRC13:31
openstackgerritFabien Boucher proposed zuul/zuul master: URLTrigger driver time based - artifact change jobs triggering driver  https://review.opendev.org/63556713:39
jkthi there, I'm swicthing from upload-logs to upload-logs-swift, and I noticed that the resulting URLs do not end with "index.html"13:40
jktI'm using our company-internal Swift installation, so I have no clue if this is a non-standard config or whatever13:40
jktbut should the URLs returned from Zuul include this /index.html as a suffix?13:40
openstackgerritFabien Boucher proposed zuul/zuul master: URLTrigger driver time based  https://review.opendev.org/63556713:43
*** jamesmcarthur has joined #zuul13:48
pabelangerjkt: are you using htmlify-logs role too?13:49
jktpabelanger: nope, but I see that this index.html gets generated and stored when I brwose the container's content13:50
pabelangerjkt: yah, you'll also need to include that role, as it will build out all the bits that swift needs13:50
jktI tried playing with the X-Meta-Web-Index, now I see in `openstack container show ci-logs-public` that it's set, but I don't get that redirect13:51
jktpabelanger: OK, let me try that one13:51
pabelangerjkt: https://github.com/ansible/project-config/blob/master/playbooks/base-minimal/post-logs.yaml is an example of our post-run playbook13:51
jktpabelanger: but I'm confused -- I already see a pretty index with images and what not, the issue is that I *have* to adjust the URL so that it includes the trailing /index.html13:52
pabelangerjkt: yah, for vexxhost we need to ensure that url has trailing slash13:52
pabelangerthen index.html is rendered13:52
pabelangerI don't believe we setup any meta data in swift manually13:53
pabelangerbut been a while, would need to check properties of the container13:53
jktpabelanger: I do not think that I need htmlify-logs, I can access these logs, it's just that I have to adjust my top-level URL13:54
jktit looks that our Swift instance auto-redirects from a path/to/dir to a path/to/dir/13:54
*** spsurya has quit IRC13:55
ofososSpamapS: Can you have a look at https://review.opendev.org/#/c/658335/ (again) and at https://review.opendev.org/#/c/658835/13:55
ofososcorvus: Can you have a look at https://review.opendev.org/#/c/658335/?13:58
*** jamesmcarthur has quit IRC14:09
*** michael-beaver has joined #zuul14:11
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Don't use allowed-projects  https://review.opendev.org/66333914:12
corvustristanC: thanks, i guess we need to start pushing folks to update connections if we're going to do that14:13
*** jamesmcarthur has joined #zuul14:18
*** jamesmcarthur has quit IRC14:22
mordredtristanC, corvus: yeah - I think we do need to push people to do that14:23
*** jamesmcarthur has joined #zuul14:26
*** gtema has joined #zuul14:29
openstackgerritMark Meyer proposed zuul/zuul master: Extend event reporting  https://review.opendev.org/66213414:30
jktpabelanger: so FYI, in our setup I had to run `openstack container set $CONTAINER --property web-listings=true` , and I have Swift's own listings14:32
jktI don't know why it won't use the provided index.html14:32
corvusjkt: the intent of the roles is not to place any requirement on using the listings from swift -- the idea is to statically generate the listings so that isn't necessary14:34
corvusjkt: but i wonder if we have an implicit assumption that the swift index file is set to index.html14:35
corvusjkt: what if you turn off the web-listings and instead set "X-Container-Meta-Web-Index" to index.html?14:36
jktcorvus: I tried that before, but let me try once again (it looks that this Swift instance caches these settings somehow)14:37
corvusjkt: another option could be to make sure that we always include "index.html" in any links we generate14:37
jktrunning curl to retrieve these objects *after* changing these properties, and *after* that object was already accessed, apparently ignores further updates to index properties of the container14:38
corvusthat makes experimenting tricky :(14:38
jktyes14:41
jktalso, `openstack container unset ci-logs-public --property Web-Listings` does not result in any change to the output of ... show14:41
jktbut if I set that property to false explicitly, then it disappears :)14:41
jktI'm quite happy that this service is run by someone else to be honest :)14:42
jktcorvus: so, on an object created from scratch, I get a NoSuchKey: https://object-store.cloud.muni.cz/swift/v1/ci-logs-public/26/1726/1/check/dummy-build-A/90ddba9/14:43
jkthttp://paste.openstack.org/show/752535/ shows the container configuration14:44
jktwould you accept a patch with an option which turns off generating the index files?14:46
*** themroc has quit IRC15:04
*** lennyb has quit IRC15:07
*** lennyb has joined #zuul15:07
openstackgerritJan Kundrát proposed zuul/zuul-jobs master: upload-logs-swift: option for disabling the indexer  https://review.opendev.org/66335515:09
jkthere we go.15:09
openstackgerritMerged zuul/zuul master: web: remove SafeLoader left-over from ZuulJSONEncoder  https://review.opendev.org/65902615:11
*** felixgcb has joined #zuul15:14
felixgcbHey guys :) I'm again coming with a burning question. TL;DR: Why are variables only read once on branch creation? Once I create a branch in an untrusted repo, zuul will read this branches variables from the project configuration (.zuul.yaml). If I change those later during my normal debugging work, maybe I need to work on my project configuration as part of the branch, those changes are ignored. Is that a bug or intended behavior?15:16
*** panda|ruck is now known as panda15:19
*** rlandy is now known as rlandy|ruck15:19
clarkbby variables do you mean jobs?15:21
clarkb(examples of configuration that are not loaded may be helpful too)15:21
fungifelixgcb: are you asking why zuul doesn't notice changes you've made to branches out of band of changes it merges to them?15:22
fungiby what process do you "change those later during normal debugging work"?15:24
*** yolanda has joined #zuul15:26
felixgcbfungi: that's a great question, I do so by adding a new commit to the branch, and triggering zuul to run the check pipeline again. It will then work with the updated content of the branch, except it will ignore the updated variables15:26
felixgcbWe're working with something similar to github where you have branches and zuul checks each new commit in this branch15:27
fungialso would be good to know if you actually mean vars, or you're speaking more generally about job configuration (per clarkb's question)15:29
funginormally zuul should use the job configuration present in the branch, and expects the event stream to include messages indicating when those branches have updated so that the scheduler knows to reload them15:30
fungithis is generally independent of the branch state used by the mergers/executors/nodes15:31
pabelangeris this using the github driver?15:31
felixgcbI mean the project configuration for an untrusted project (.zuul.yaml or zuul.yaml). Here I can configure my check pipelines for my code repository. These would consist out of jobs which I want to parameterize using variables. The thing is they are only considered on branch-creation :/15:31
pabelangerbecause, stacking commits in a PR, does work if a later commit updates zuul.yaml, IIRC15:32
fungiby "something similar to github" i take it to mean a custom connection driver15:32
felixgcbpabelanger: ah interesting, we (my colleague) is currently working on a bitbucket driver15:32
fungiwhich is why i'm suspecting some missing signalling15:32
pabelangeryah15:32
pabelangeror, the project isn't untrusted15:33
pabelangeractually15:33
fungiwell, he's merging changes, so even if it's trusted15:33
pabelangeryah15:33
pabelangersounds like what fungi said, maybe zuul hasn't reloaded the job changes yet15:33
openstackgerritMerged zuul/zuul-jobs master: Don't use allowed-projects  https://review.opendev.org/66333915:34
fungifelixgcb: the short answer is that zuul is designed to update its configuration any time the branch state is updated. if it's not doing that, then i suspect either a problem with configuration or a problem with the connection driver (like it being incomplete)15:34
fungiat least for in-project pipeline additions and the like15:34
fungiit does still require manual signalling to update its main config, but it doesn't sound like that's what you're altering anyway15:35
felixgcbYeah we don't want to update the main config, its just a dummy code repo15:36
felixgcbOkay I think you guys gave really good advice, we'll need to look at our driver again15:37
felixgcbfungi: "zuul is designed to update its configuration any time the branch state is updated", is there a "zuul-term" or "zuul-event" for this mechanism that you could recall from the top of your head?15:37
felixgcbOtherwise checking the github driver will be an option...15:38
corvusfelixgcb: this is the code that handles it: https://opendev.org/zuul/zuul/src/branch/master/zuul/scheduler.py#L110315:40
corvusfelixgcb: along with this: https://opendev.org/zuul/zuul/src/branch/master/zuul/scheduler.py#L107715:41
felixgcbAwesome, thank you guys so much :) <315:41
felixgcbAh even more...15:41
corvusfelixgcb: for that to happen, the driver needs to submit an event with a branch_updated and files attribute set -- that might be the missing functionality15:41
felixgcbI bet it is, our driver is just not emitting some needed event..15:44
openstackgerritMonty Taylor proposed zuul/nodepool master: Explicitly set use_direct_get to False  https://review.opendev.org/66336815:48
*** AshBullock has joined #zuul15:49
AshBullockHey guys, trying to set up nodepool with k8s, how should I pass the k8's creds to nodepool? I can't see this being set in the provider config in the documentation15:51
openstackgerritPaul Belanger proposed zuul/nodepool master: Clean up utils.nodescan function  https://review.opendev.org/66337215:55
pabelangerShrews: clarkb: corvus: tobiash: any reason not to do ^? I can't figure out why we setup a socket, if we are not going to use it for nodescan15:56
corvuspabelanger: to make sure we can make a connection15:57
corvuspabelanger: ie, that the server is up15:57
pabelangercorvus: okay, that likely explains it. I still have host-key-scan true, but connection-type set to something other then ssh / network_cli15:58
pabelangerand nodepool isn't by passing that15:58
pabelangersince, the interface isn't public15:58
clarkbAshBullock: I believe you are expected to have a kubeconfig file that nodepool uses15:58
pabelangerI'll disable host-key-checking15:59
pabelangerdarn, that looks to be only available at pool level16:01
AshBullockshould this be added to the nodepool users home path?16:01
*** panda is now known as panda|off16:02
AshBullocknot sure where the kube config should be placed16:03
clarkbAshBullock: I believe so, the docs dont say though :/16:03
*** mattw4 has joined #zuul16:13
*** ParsectiX has quit IRC16:22
*** felixgcb has quit IRC16:25
tobiashpabelanger: for winrm e.g. we don't gather keys but still want to ensure that the port is reachable16:33
*** panda|off has quit IRC16:33
pabelangertobiash: yah, I have a pretty odd use case, where this cisco appliance will not get a default gateway assigned via DHCP16:34
*** panda has joined #zuul16:35
pabelangerbut, becaue I do multi-node, I can get into VM A, then connect via shared network into VM B, and configure it16:35
openstackgerritPaul Belanger proposed zuul/nodepool master: Toggle host-key-checking for openstack provider.labels  https://review.opendev.org/66337816:35
pabelangerbut I first need ^16:35
pabelangeras, I also would like to keep the node, in the same pool as other nodes16:36
jamesmcarthurHi Zuul team.  Does anyone have a moment to take a look at this: https://review.opendev.org/#/c/660232/  It's just removing the Shanghai promo from the top of the site.16:36
*** panda has quit IRC16:39
*** AshBullock has quit IRC16:44
*** AshBullock has joined #zuul16:45
*** mhu has quit IRC16:46
*** mhu has joined #zuul16:46
fungijamesmcarthur: thanks, what's the context for that? is there expected to be no zuul community presence in shanghai?16:47
*** panda has joined #zuul16:48
pabelangertobiash: clarkb: Shrews: corvus: do you mind adding https://review.opendev.org/663378 to your review pipeline, this is to help with an odd use case where we have a network appliance that comes online without a default gateway. But want to label to be in the same pool, due to quota reasons16:48
jamesmcarthurfungi: I hope not! :)  That promo is currently pointing to the schedule for Denver. We don't have a schedule launched yet for Shanghai.16:49
fungioh, hah!16:49
jamesmcarthurAnd I'm not sure what the messaging is yet around promos for Shanghai.16:49
jamesmcarthurAlthough we're a bit further along now than when I first proposed the pathc.16:50
jamesmcarthurpatch16:50
mattw4Hi Zuul team. I'm trying to include (run) roles from devstack (and other projects) into Zuul, but I don't want to respond to events in the gerrit stream for those projects.  Can someone point me to an example configuration for "including roles from other projects, but not testing those projects"?16:50
fungijamesmcarthur: got it, i had incorrect context from your message in here saying it was removing the shanghai promo. i see in the diff it's removing the denver promo which makes much more sense16:50
jamesmcarthuroh, sorry - mistype :)16:51
openstackgerritMerged zuul/zuul-website master: Revert "Revert promotional message banner and event list"  https://review.opendev.org/66023216:53
mattw4I've gotten devstack roles to run by adding "roles: -zuul: opendev.org/openstack/devstack" to the project's .zuul.yaml, but I also had to add "- openstack/devstack: include: job" to the tenant configuration which didn't seem quite right. Should I be adding it as a project-template or something instead?16:53
corvusmattw4: as long as there is no "project" definition for a project, zuul won't run any jobs.  what you did is exactly right.16:53
mattw4corvus: thanks!  So I can "include: job" for any project where I need their roles, just make sure not to include the project.  Right?16:55
corvusmattw4: yep16:55
corvusmattw4: in fact, if you only need the *roles* and not the job definitions (eg the "devstack" job itself), you can "include: []"16:55
mattw4Thank you so much!  I accidentally pointed Zuul at some OpenStack projects a few months ago (you may remember that I caused some confusing comments) so I don't want to do that again!16:55
mattw4good deal corvus, that's even cleaner16:56
*** ParsectiX has joined #zuul16:57
flaper87is there documentation on how to upgrade zuul? one question I have is whether executors can be tainted so that they won't get new jobs and then updated?17:00
flaper87unless there's a better way to do this17:00
corvusflaper87: no; we need to implement the "graceful" shutdown command for executors17:01
corvusshouldn't be hard, it's just that no one's done it yet17:02
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Return javascript content artifact records to Zuul  https://review.opendev.org/66305617:07
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Return python artifact records to Zuul  https://review.opendev.org/66305317:07
pabelangeryah, when we had it for zuul 2.5, it worked pretty well17:08
pabelanger(graceful)17:08
*** AshBullock has quit IRC17:10
*** gtema has quit IRC17:13
*** jpena is now known as jpena|off17:13
openstackgerritJeremy Stanley proposed zuul/zuul master: Safely add Ansible password lookup plugin  https://review.opendev.org/66287017:16
fungithough in our experience, stopping an executor with running jobs generally just gets those jobs rescheduled to another executor and restarted. so while it's a waste of test resources, it's not overly disruptive17:18
fungiour usual process is to install the new version, then stop the executor daemon, wait for everything to die, and start it again17:19
tobiashFlaper87: you at least can pause the executors and restart them manually when they're empty17:24
*** ParsectiX has quit IRC17:24
tobiashWhat we're missing though is that paused executors still serve merge calls17:25
mattw4Hi again Zuul team, I'm trying to author a job that inherits from devstack-minimal, but seeing the error "Job devstack-minimal not defined".  I *think* I've "included" devstack in the tenant configuration with "include: job", so I'm surprised at the error.  What am I missing?17:28
fungimattw4: checked for configuration errors? little alarm bell icon at the top-right of your zuul status page will show up if there are17:31
corvusmattw4: what fungi said -- and i may be able to guess what the problem is.  devstack is tough case in that it requires a lot of openstack projects.  so you're *probably* going to need to "include: []" for a whole bunch of openstack projects in order to get the devstack-minimal job to be able to resolve.17:33
mattw4fungi: yeah, lots of "Unknown project opensev.org/openstack/..." and "Job devstack not defined (for various branches)"17:33
mattw4not sure how to resolve those either :/17:33
corvusmattw4: you can look at the list of required-projects there and work out which ones you add17:34
fungii think you may also need to add the projects that depends on17:34
corvuser, which ones you need to add17:34
fungiyeah, those17:34
fungidevstack-minimal has opendev.org/openstack/requirements as a required-project17:34
pabelangerdarn, labels are not shared across pools for nodepool providers. Which means, I do need: https://review.opendev.org/663378/ to get this cisco appliance to work17:34
mattw4fungi, corvus: so I just need to add those as required-projects for the particular job?17:35
fungicorvus: and any listed in the roles list too, right?17:35
corvusmattw4: no you need to add them as projects in your zuul tenant, just like you did with devstack (but you can "include: []" for those)17:35
corvusfungi: yes, any time the job says it needs a project17:36
fungimattw4: also you need to look at the parent jobs of that job and include any they also specify17:36
corvusmattw4: once you work out the necessary tenant config, i'm sure other folks would appreciate it if you sent a copy to the openstack-discuss mailing list; right now, every new third-party ci needs to repeat this process.  to my knowledge, no one has posted the result yet.17:36
fungimattw4: as for parent jobs, you have to keep iterating until you get to one with no parent parameter17:37
mattw4gotcha, it's a bit of a dependency walk to gather the required projects.  Thanks corvus & fungi, I will definitely be sharing once I work this out.17:37
fungisince required-projects and roles can be added anywhere in the ancestry17:37
fungimattw4: and you'll discover that walk will take you into other projects' zuul configs besides just the devstack repository17:38
corvusfungi: it's just devstack and zuul-jobs17:39
fungiahh, yep, that's convenient. at least zuul-jobs is likely already included17:39
corvusbase > multinode > devstack-base > devstack-minimal17:39
fungiright, minimal comes from zuul-jobs17:40
fungier, multinode comes from zuul-jobs i mean17:40
fungim words17:40
corvusyou can explore it here: https://zuul.openstack.org/jobs -- put 'devstack-minimal' into the box17:41
corvusit would be nice to be able to deep link to that.17:41
mattw4fungi, corvus: is there any way to see a running example of a tenant config?  I've found lots of examples of job/project config, but almost nothing for tenant & zuul config to enable those projects.17:42
corvusmattw4: here is a really big one: https://opendev.org/openstack/project-config/src/branch/master/zuul/main.yaml17:43
mattw4corvus: that's perfect, thanks!17:45
fungiyeah, it's... *really* big17:46
fungibut it's the one which gates zuul/zuul and friends at the moment (soon to change!)17:46
fungiwell, which tenant in that file gates zuul/zuul is soon to change. the location of that file is also going to change, but maybe less soon17:48
pabelangerokay, I've sent email to ML about current issue with host-key-checking, would love some feedback.18:03
*** hashar has joined #zuul18:04
jktI don't think there's a standalone role for an ad-hoc upload to swift, or is there one?18:12
jkt(I'd like to get rid of rsyncing build artifacts now that logs are in Swift)18:12
jktthe os_object doesn't support setting auto-expiry, but maybe it could be a good start18:14
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Return javascript content artifact records to Zuul  https://review.opendev.org/66305618:17
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Return python artifact records to Zuul  https://review.opendev.org/66305318:17
openstackgerritJames E. Blair proposed zuul/zuul master: DNM: test zuul-jobs artifact changes  https://review.opendev.org/66308118:17
corvusjkt: you mean uploading from the worker directly to swift rather than rsyncing to the executor first?18:19
fungiback in the zuul v2 logs-on-swift experiment in opendev we had logic which procured subtree-scoped temporary credentials and passed those to the job node, so the same could probably be implemented in v3 with some effort? one new challenge is that nodes in a multi-node set are now independent and we rely on the executor to aggregate artifacts from them, whereas if they were uploading on their own they'd need to18:24
fungicoordinate that or get individual publishing subtrees assigned per node18:24
corvusthat's something we'd like to support, but it's going to take a while to get there, and even so, there may still be some caveats.  first: a lot of roles in zuul-jobs assume that things will be rsynced back to the executor; mordred is going to write up a brief spec on what needs to change there.  second: uploading from the worker means either trusting the worker with swift creds, or using the formpost18:25
corvusmiddleware which isn't guaranteed to be present (and even so, that case merely limits the amount of abuse that can happen); whether either of these options is okay will vary from site to site.18:25
jktcorvus: just from the executor to the "final place"18:26
jktI am not even thinking about credential delegations18:26
corvusjkt: oh, so something like what the logs is doing but for a different swift destination for artifacts18:26
*** migi has quit IRC18:26
*** pabelanger has quit IRC18:26
*** weshay has quit IRC18:26
*** mhu has quit IRC18:26
jktcorvus: yes18:27
fungiahh18:27
*** mhu has joined #zuul18:27
*** weshay has joined #zuul18:27
jktthis is probably trivial, something like http://paste.openstack.org/show/752546/18:27
fungii keep thinking of logs as a special class of artifacts, but i suppose zuul does treat logs and artifacts diffrently18:27
corvusjkt: gotcha; i don't think there's one, but i think it would be a fine addition, and i don't see as many problems with that :)18:27
*** armstrongs has joined #zuul18:28
jktmore context: this is about some C++ project which depens on external libraries that are not gated by zuul18:28
jktso what works for me now is to build stuff in dependencies.git's "check", store the artifacts in the same manner as logs, and in the promote pipeline, copy them to something "more deterministic"18:29
jktsomething like $swift_container/artifacts/dependencies.git/$commit.tar.xz18:29
fungijkt: this sounds a lot like how we're doing container builds and then having child jobs consume them18:30
jktyeah, I asked for advice here about an year ago18:31
fungijkt: rather than stash our check pipeline builds in a persistent service we have an initial job which stands up a server to house the temporary artifacts, then pause that job and run dependent jobs which fetch the artifacts from it and use them18:31
fungiso first job could for example build those libraries and then start apache, that job is paused, child jobs get the url to that ephemeral service and retrieve the builds they want from it to use18:33
jktI'm updating (and hence building) these libraries maybe once a week, maybe even less frequently18:35
jktbut the consumers are built much more often, and I do not want to mess with plenty of services18:35
jktI really need just a method of passing a single tarball around18:35
fungiand not interested in being able to specify change dependencies on patches which haven't landed to the libraries you're talking about, i guess18:35
jktfungi: my dependencies.git include all shared dependencies as git submodules, so I can simply point a submodule to a particular ref of my library with a patch applied as a git branch18:36
fungi(consuming project change depending on a not-yet-merged feature of the library, but still tested against it)18:36
*** sshnaidm is now known as sshnaidm|afk18:36
jktyes, we use that18:36
fungiahh, but how do you map that to the copy you're serving from swift?18:37
jktfungi: name that artifact with a commit-sha1 of the dependencies.git18:37
jktfungi: and also add dependencies.git as a submodule in my consumer18:38
fungigot it. and set an expiration on it in swift which is longer than you anticipate any consuming change needing it for (or just let swift content grow unbounded forever)?18:38
jkthttps://gerrit.cesnet.cz/plugins/gitiles/CzechLight/netconf-cli/+/master/ci/build.sh#50 , this is how it currently works18:38
jktwith rsync and an apache for artifact serving18:39
jktthere are gotchas :) of course18:39
jkta) zuul doesn't understand gerrit's topics, which is annoying18:39
jktb) my two consumers live under different zuul tenants, and therefore I have to build dependencies.git twice18:40
jktbut I really wish Zuul understood gerrit topics (a topic can only be submitted "atomically")18:40
jktbecause in the end, both leaf-A and leaf-B are going to end on the same embedded system, so they need all of their deps to be the same18:41
fungioh, i see, you want to overload the gerrit topic metadata as an indicator of changes which don't have to be tested sequentially?18:41
jktso my workflow when updating is to push three changes sharing the same topic:18:41
jkt1) dependencies.git, to bump all the libraries, perhaps with non-upstream patches, and often with breaking changes18:42
jkt2) leaf-A, Depends-on: change-1, perform any code changes to adapt to whatever upstream breakage happened18:42
jkt3) leaf-B, Depends-on: change-1, similarly to change-218:42
jktnow, I'm only running "check", not "gate", and so it works reasonably well18:43
fungii suppose that could work as long as the users of your gerrit don't also use topics for other purposes, though from the zuul side there are probably logistical challenges but i haven't thought about it long enough to know what the would be18:43
jktif I was running gate, I don't know how to tell Zuul "hey, let's just tie these three changes together please"18:43
*** armstrongs has quit IRC18:44
jktif this is to work, dependencies.git must be set (in Gerrit) to forward-only, no merges, because I need my resulting SHA1 to be the tested SHA118:44
jktthese topics, that's a new Gerrit thing, I think it came in 2.1518:45
fungiprobably it would need to 1. only consider the final change in the topic cluster for each project+branch involved, 2. defer merging any of them until those passed18:45
jktyes, I think that's correct18:45
fungijkt: do they call them something other than a "topic"? gerrit has had change topics for aeons18:45
jktfungi: ah, it's a new option which is not active by default, https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#change.submitWholeTopic18:46
fungioh, a configuration option18:47
fungiwhich is new18:47
fungibut leveraging the change topic info, which has been there pretty much forever18:47
jktfungi: since they got hashtags (which depend on the git notedb backend, not the SQL reviewdb IIRC), there's IMHO little point in using topics just for hashtags18:47
fungisure18:47
jktbut I have no idea why they did it this way, right18:47
fungiexcept when you have an established dataset where your users have been using topics that way forever, and so introducing hashtags doesn't mean they suddenly stop18:48
jktyes :)18:48
fungibut for new deployments of gerrit it may make sense, or where you can convince your entire userbase to change their workflow18:48
fungiother corner cases an implementation in zuul would need to take into consideration are things like what happens of a topic is modified while changes are being tested (dequeue them?)18:49
fungiand what is the precedence of dependencies across topics?18:50
fungiif a change depends on another change with a different topic, does it actually depend on the entire topic cluster? what about when a change in a topic cluster depends on another change with a different topic? do they all depend on that change?18:51
jktI tend to think of the Depends-On header as a band-aid that was needed when Gerrit did not support this feature18:51
jktIOW, I wonder what they solve apart from what that change.submitWholeTopic already provides18:51
jktI (hope) I understand the difference, Depends-on is just an unidirectional DAG, topic is a bidirectional notation, gluing changes together in both ways18:52
funginot exactly, depends-on could have been designed differently to specify sets of changes which needed to merge at the same time. we discussed that and at the time concluded that for our (more tightly-scoped) userbase that soft of development workflow was a bad idea we should prevent them from engaging in18:53
jktyeah, it's good that you can afford this compatibility18:53
fungibasically we intentionally designed depends-on in such a way as to prevent openstack developers from avoiding the always-deployable benefits of strictly sequenced changes across multiple repositories18:54
fungiin the years since zuul's design has grown to support other development workflows and systems, and i think we're probably not opposed to supporting something along those lines if somebody works out how to implement it cleanly18:55
*** ParsectiX has joined #zuul18:58
fungibut bi-directional change dependency between repositories generally implies a very tight coupling between those repositories, which at the time depends-on was added we considered an unhealthy design pattern (for openstack projects)18:58
evgenylHi everyone, is there a way to specify a tenant's `config-projects`  which is hosted on a different git server?19:01
corvusevgenyl: sure, tenants can have projects from any connection19:05
corvusnothing special needs to be done19:05
smcginnisHowdy folks. I'm playing around with third party CI setup to try to document some things. Can someone give me a sanity check on this pipeline config: http://paste.openstack.org/show/752549/19:11
evgenylcorvus: Sorry for not articulating the problem properly, or I misunderstand something. I have a tenant definition that goes under e.g. github connection, now I want to define a project config which is fetched from gerrit (for tenants hosted on github), when I try to do that, the scheduler fails to fetch project-config, because it tries to get it from github.19:11
evgenylActually in my case I have two different installation of gerrit, but the idea is the same.19:12
smcginnisI have a "gerrit" config for my local setup using the docker-compose example, then I have a "gerrit-upstream" defined for listening for upstream events.19:13
corvusevgenyl: here's an example of exactly that setup: https://opendev.org/openstack/project-config/src/branch/master/zuul/main.yaml#L17-L5019:13
corvusevgenyl: note the different entries under "source" underneath the tenant19:13
evgenylcorvus: Oh! I see, awesome, thank you again :)19:13
smcginnisI saw my thirdpartyci noop job kick off after my local zuul left +1, but did not see anything from the "gerrit-upstream" zuul leaving +1 on a patch in opendev/ci-sandbox that I'm watching.19:14
*** panda has quit IRC19:19
*** pabelanger has joined #zuul19:19
*** panda has joined #zuul19:20
smcginnisHere's my main.yaml (http://paste.openstack.org/show/752550/) to go with my pipelines.yaml (http://paste.openstack.org/show/752549/)19:28
*** ParsectiX has quit IRC19:28
jktcan Zuul work with "no-node" jobs? Right now my promote pipeline really just calls wget and rsync, only to rsync stuff back to the executor which will then upload bits to their final destination19:35
fungijkt: yep!19:36
fungiwe have lots of those19:36
jkt(and the real reason for asking is of course because my build nodes are IPv6-only, while my wonderful Swift API GW is IPv4-only, aaaargh)19:36
fungilike, jobs which just post something to a rest api can totally happen straight from the executor19:36
jktfungi: got an example? I feel a bit lost at times19:37
fungiit would be a playbook which just uses hosts: localhost19:37
jkt(and the "promote"-style example I looked at some time ago was most definitely using some host)19:38
fungiand no nodeset19:38
jktfungi: excellent, thanks19:38
fungiin the job definition19:38
fungii'll get you an example19:38
jktfungi: ah, I know that -- that's delegation of tasks19:38
jktfungi: my question is if I can avoid allocating a node from nodepool altogether19:38
fungiright, not having a nodeset19:39
jktfungi: thanks!19:39
fungiyou can explicitly add...19:40
fungi    nodeset:19:40
fungi      nodes: []19:41
fungiso a nodeset with an empty nodes list will ensure that19:41
fungithat way you don't inherit any nodeset from your base job19:41
fungilike in this job: https://opendev.org/zuul/zuul-jobs/src/branch/master/zuul.yaml#L42-L5119:42
openstackgerritDavid Shrewsbury proposed zuul/zuul master: WIP: Add caching of autohold requests  https://review.opendev.org/66341219:42
fungijkt: and here's the corresponding playbook with the localhost delegation: https://opendev.org/zuul/zuul-jobs/src/branch/master/playbooks/docker-image/promote.yaml19:43
smcginnisfungi: Would you have a minute to take a look at the pastes I left above to let me know if I'm missing something obvious? Not getting anything triggered in the pipeline I'm expecting to for opendev/ci-sandbox tests.19:44
smcginnisHere's my main.yaml (http://paste.openstack.org/show/752550/) to go with my pipelines.yaml (http://paste.openstack.org/show/752549/)19:45
fungismcginnis: i started to take a look but am not confident in my ability to spot possible omissions19:45
smcginnisfungi: OK, at least nothing blaringly obvious then. That helps!19:45
fungiand also multi-tasking during the storyboard weekly meeting right now19:46
smcginnisNo worries, thanks!19:46
openstackgerritTobias Henkel proposed zuul/zuul master: Add spec for enhanced regional executor distribution  https://review.opendev.org/66341319:46
smcginnisIn case anyone else has a chance to look, here's the projects.yaml for completeness: http://paste.openstack.org/show/752551/19:46
mordredsmcginnis: this is not your problem - but fwiw, you could totally just include zuul/zuul-jobs from the gerrit-upstream connection19:49
mordredsmcginnis: that said - I also don't see any obvious ommissions19:50
fungismcginnis: did you check the scheduler log to see if there were any exceptions when it tried to report?19:51
smcginnismordred: If I wanted to define my own local jobs, I wouldn't want to include zuul/zuul-jobs, right? Or I suppose I could have my own in a separate local repo.19:52
smcginnisfungi: No expections that I saw, and I don't have it reporting right now, just saving to the DB.19:53
mordredsmcginnis: yeah - I'd put your own jobs in a separate local repo - that way you can inherit from jobs in zuul-jobs in your local jobs19:53
fungioh, got it. i think i may have misunderstood your problem statement19:53
smcginnisfungi: Is there a recommended way of viewing these running in docker containers?19:53
smcginnisfungi: Problem statement can be summarized that I am looking at the Builds screen and not seeing anything having run when I thought it should have.19:53
fungiwhat is the "these" you want to view?19:53
smcginnismordred: I do have:19:54
smcginnis      opendev.org:19:54
smcginnis        untrusted-projects:19:54
smcginnis          - zuul/zuul-jobs:19:54
smcginnis              include:19:54
smcginnis                - job19:54
fungioh, okay, so you can access the status dashboard at least19:54
smcginnisfungi: Yeah, that part looks good, did a few local test patches.19:54
fungiand your problem is the builds list is empty?19:54
fungii wonder if noop jobs don't actually get build entries in the db... did you check buildsets?19:55
smcginnisThen added the gerrit-upstream connection and defined the thirdpartyci pipeline to trigger on zuul leaving +1 on ci-sandbox patches. I see the stream activity in the logs, but nothing triggered.19:55
mordredsmcginnis: yah - I was mostly just pointing out that since you have an upstream-gerrit connection/source, you could get zuul/zuul-jobs from it instead of from a git-driver opendev.org connection ... but it's totally not essential to the thing you're asking about ...19:55
smcginnisAh, got it. Thanks mordred.19:55
mordredsmcginnis: if you're using the docker-compose we've got, it's set up to have the services log to stdout - so you should just be able to run docker logs on the container in question19:56
smcginnisLearning and tinkering right now to try to wrap my head around things and eventually write up some more up to date third party CI instructions.19:56
mordred++19:56
mordredsmcginnis: I'm in favor of such a thing!19:56
smcginnisSince none of the ones we've suggested that to with new cinder drivers over the last few releases have shared anything from how they've done it.19:56
* mordred pondering19:57
smcginnisfungi: The noop jobs from my local repos do show up in Builds.19:57
mordredoh good, that's good at least19:57
fungiokay19:57
smcginnisSo the stream is coming in from opendev, just not triggering on what I had expected it to.19:57
mordredsmcginnis: your issue is making me feel dumb :)19:58
fungii see, the scheduler debug log should have some fairly verbose info on what it did around the event19:58
smcginnisHah!19:58
smcginnisfungi: I just started with the instructions from https://zuul-ci.org/docs/zuul/admin/quick-start.html19:59
smcginnisIs there a good way to view those logs that have scrolled off in the window I ran docker-compose from?19:59
corvussmcginnis: okay, i have all 3 of your config files up: http://paste.openstack.org/show/752551/ and http://paste.openstack.org/show/752549/ and http://paste.openstack.org/show/752550/ -- what job should be running but is not?19:59
fungii believe docker-compose has options to fetch log history19:59
*** jamesmcarthur has quit IRC19:59
smcginniscorvus: My expectation was that a patch to opendev/ci-sandbox that would receive a Zuul +1 would then trigger a noop job in my thirdpartyci pipeline.20:00
mattw4Hi again Zuul team, more questions re: using roles & jobs from other repos: I iteratively added dependencies that popped up in Zuul error notifications, but now I'm seeing errors saying " Unable to freeze job graph: The nodeset "openstack-single-node-bionic" was not found.20:00
mattw4"  Can I exclude or override the nodeset?  I have "nodeset: nodes: -name: ubuntu-bionic\nlabel: ubuntu-bionic" defined in my job definition, but still seeing the error.20:00
fungimattw4: you can specify the nodeset you want in your job or in a variant of an included job20:01
pabelangertobiash: more github issues :( http://paste.openstack.org/show/752552/20:02
pabelangerconnection timeouts20:02
pabelangerthink there is infra issue going on righ tnow20:02
mattw4fungi: I've added "nodeset: nodes: -name: ubuntu-bionic\nlabel: ubuntu-bionic" to my job definition.  Isn't that the correct place?20:02
pabelangerzuul.o.o, also has them20:03
corvussmcginnis: this should not be the issue, but you probably want "approval" rather than "require-approval" there, otherwise it will trigger everytime someone adds a comment after zuul has left +1 (presumably you only want to trigger when the +1 is left).20:04
corvussmcginnis: i'm also stumped; i second the suggestion that you collect the scheduler logs so we can see what it's thinking20:04
smcginniscorvus: Oh, thanks, I'm sure I would have come back asking about that "approval" versus "require-approval" one.20:05
smcginnisGetting the logs now.20:05
mattw4fungi: my job definition and zuul tenant configuration in a paste: http://paste.openstack.org/show/752553/20:06
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Return javascript content artifact records to Zuul  https://review.opendev.org/66305620:06
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Return python artifact records to Zuul  https://review.opendev.org/66305320:07
corvusmattw4, smcginnis: there's a possibility the two of you are working on similar projects :)20:10
smcginniscorvus: Should a recheck-initiated +1 from zuul be treated the same as the initial +1?20:10
mattw4corvus: I was thinking the same thing :)  smcginnis: we should chat!20:11
smcginnismattw4: You look like you may be a little further along than me. :)20:11
smcginniscorvus: Here's the logs: http://paste.openstack.org/show/752554/20:13
corvussmcginnis: i think in opendev's gerrit, if there's already a zuul+1 and zuul leaves a second +1 after a recheck, the approval vote will not be included in the event.20:13
corvussmcginnis: (if it changed from a -1 to a +1, it would be, but if the approval vote is the same as the existing vote it's not included)20:14
smcginniscorvus: Ah, OK.20:14
corvussmcginnis: that is expected to change in a later version of gerrit20:14
mattw4smcginnis: only a tiny bit ;)  I'd be happy ti discuss our experience if you want.  I intend to write something up, but I need to get it working first!!20:14
corvussmcginnis: given that, you may want to keep using "required-approval" for testing :)20:15
smcginnismattw4: Definitely ping me if you would like someone to read through your docs.20:15
smcginniscorvus: I think ultimately I wouldn't want it to retrigger on that, just needed for this test.20:15
smcginnisI will abandon that patch, submit a new one, and grab the logging from that.20:16
mattw4smcginnis: sounds good20:16
corvussmcginnis: i think if you "docker-compose pull" you will get some nice new logging with event ids that can be traced through multiple steps20:16
tobiashcorvus, pabelanger, clarkb: yesterday I learned from a github engineer that getting a pr by sha is much cheaper when using graphql than using the search rest api. If we'd switch to that we might be able to remove the cache workaround in getpullbysha.20:17
smcginniscorvus: https://etherpad.openstack.org/p/zuul-thirdpartyci Zuul +1 around line 161, "DEBUG zuul.Pipeline.example-tenant.thirdpartyci: Finished queue processor: thirdpartyci (changed: False)" shortly after.20:18
pabelangertobiash: yah, when I talked with github engineer, they also say graphql was the solution for something else20:19
corvussmcginnis: there should be more logs after that; the gerrit driver has a rolling 5 second delay20:19
pabelangerI really need to learn how the event system work at github, because I seem to get getting same events for this PR: https://github.com/ansible/ansible/pull/50201/commits20:20
corvussmcginnis: so it's not going to do anything with that event until 20:16:5520:20
pabelangerbut haven't received any others, so not sure if there is a serial issue or outage20:20
pabelangerI'm up to e6a905e20:20
pabelangerso only 2 more events, if I am right20:21
pabelangerthen, to see what zuul does20:21
tobiashgraphql is fully supported since github enterprise 2.15 which will be the oldest supported release in a few weeks so we may be able to require at least this version and start using graphql for some tasks20:21
corvustobiash: sounds good20:21
mordredtobiash: cool20:22
jkt...and executor runs its stuff within bubblewrap, which means that `curl` won't have access to its certificates :(20:22
smcginniscorvus: Well, I did a docker-compose pull, and now I'm just getting "Cannot resolve zk: [Errno -2] Name or service not known" errors.20:22
fungii think we map those in on our executor20:22
mordredyah20:22
fungijkt: ^20:22
smcginnisI may need to start fresh and get back to this.20:23
tobiashbtw, I have the github event parallelization in production for two days now and it works like a charm, no event queuing anymore20:23
mordredjkt: the bubblewrap bindmounts are configurable20:23
mordredtobiash: woot!20:23
mordredjkt: https://opendev.org/opendev/puppet-zuul/src/branch/master/templates/zuulv3.conf.erb#L68-L75 and https://opendev.org/opendev/system-config/src/branch/master/manifests/site.pp#L780-L782 are what we're doing in opendev20:25
jktmordred: thanks!20:26
corvusmordred, fungi: topic:opendev-tarballs is ready for review20:27
fungithanks!!!20:27
mattw4Could somebody take a look at my job definitions and tenant config?  I can't figure out how to override the nodeset for devstack: http://paste.openstack.org/show/752553/20:27
corvusmattw4: that looks right to me.  can you paste a larger log snippet from the error?20:28
mattw4corvus, sure, just a sec20:28
jktmordred: is there a reason for listing /var/lib/zuul/ssh in there? "My system works fine without it", but OTOH I don't see these explicitly getting whitelisted in the source20:35
corvusjkt: i think we have some old jobs which used a key that was in there.  in general, it's probably a bad idea to include it.  once we can drop it we should.20:36
jktok, I just wanted to ensure that this cannot be realted to the "regular" ansible-ified key provisioning20:36
pabelangertobiash: Hmm, there might be something going on with github3.py, restarting zuul.a.c, seems to have improved my api.github.com timeout issues20:37
pabelangerwill have to debug this more20:37
pabelangerwith that, I am out for the day. It would be awesome if humans could check out ML about host-key-checking patch20:39
mattw4corvus: here is the gerrit error and Zuul log from after a recheck on my patch trying to override the nodeset: http://paste.openstack.org/show/752555/20:42
corvusmattw4: hrm, okay, i guess since the parent uses the nodeset, zuul still needs it to be defined.  i guess you'll need to create a "dummy" nodeset for it.  it doesn't have to be real -- it won't be used -- it just has to have the name it's looking for.20:45
corvusmattw4: sorry, i realize that's slightly counter-intuitive.  hopefully we can fix that someday.20:46
mattw4corvus: I'll give it a shot!20:46
mattw4corvus: I added a nodeset to by zuul.yaml similar to that defined here: https://github.com/openstack/devstack/blob/master/.zuul.yaml#L1-L920:55
mattw4but ubuntu-bionic instead of xenial20:55
mattw4hrm...different errors now: setup-devstack setup-devstack : ERROR Unable to find role in /tmp/tmp82c4m80r/7ecfdcb50f7347e7a6b6da39f7e7e244/ansible/pre_playbook_3/role_1/requirements20:57
*** pcaruana has quit IRC20:59
*** hashar has quit IRC21:09
*** dmsimard has quit IRC21:16
*** dmsimard8 has joined #zuul21:16
*** dmsimard8 is now known as dmsimard21:16
*** tjgresha has quit IRC21:18
mattw4Hi again Zuul-ers...I'm seeing a new error when running devstack roles in 3rd party CI: When executing the pre-task "Gather minimum local MTU", I see the error "fatal: [ubuntu-bionic]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: \'ansible_interfaces\' is undefined\\n\\nThe error appears to have been22:08
mattw4 in \'/tmp/tmpv4zde86w/e7ed5b01b1f24259a42c719afa19bb5e/untrusted/project_2/opendev.org/openstack/devstack/playbooks/pre.yaml\': line 3, column 7, but may\\nbe elsewhere in the file depending on the exact syntax problem.\\n\\nThe offending line appears to be:\\n\\n  pre_tasks:\\n    - name: G22:08
mattw4ather minimum local MTU\\n      ^ here\\n"}". I checked the ansible facts that are produced in the executor log and no ansible_interfaces is present.  Is this an ansible version issue or can I ask Zuul to produce these details?22:08
jktfungi: thanks a lot for your help, I think I'm mostly done now. Here's the playbook which drives this promote job: https://gerrit.cesnet.cz/plugins/gitiles/ci/project-config/+/master/playbooks/base/promote-artifacts.yaml22:08
jktfungi: this role fetches stuff from previous "check" runs and prepares them at the executor, https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/master/roles/download-artifacts-from-check/tasks/main.yaml22:09
jktfungi: and finally, this one uploads the artifacts to swift, https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/master/roles/upload-artifacts-swift/tasks/main.yaml22:10
mattw4fungi, corvus: do you have ani ideas on the error condition I posted above ^^^^?22:10
jkt(I don't feel like changing these `jq` filters to Ansible filters, apparently the syntax is a bit different, so meh.)22:10
corvusmattw4: i don't know why ansible_interfaces is not defined, sorry22:13
*** rlandy|ruck is now known as rlandy|ruck|bbl22:14
fungitristanC: dmsimard: is one of you handling software factory ci? seeing "ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/tmp/fake-tox/.tox/dist/MagnificentElephantInKenya-0.1559765279.zip'" in the failing unit test on https://review.opendev.org/66305622:19
fungii'm assuming it's not caused by that change, as i don't see how it would be22:30
mordredfungi: I don't know what MagnificentElephantInKenya is - but I want to assume pip installing it causes a new Magnificent Elephant to spring to existence in Kenya22:54
fungiunfortunately it probably does not23:06
fungii've been assuming it's a name someone made up on the spot to represent a test package23:06

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!