[07:52] * tomwardill pokes buildbot a bit more [07:57] * ilasc is writing a book for the Support Wiki with answers she's getting from wgrant this week :) [07:59] excellent :) [08:07] tomwardill: just checking I understood correctly from the buildbot emails I saw this morning, your Store Username merged & built successfully, then API for OCI Registry Credentials failed with the usual and you triggered a forced build which again failed with the usual ? [08:07] yep [08:07] I've just triggered another one [08:08] they were slightly different usuals each time, but in that group, yeah [08:08] ok cool, thanks! :) [08:11] tomwardill: code-wise this means I can now rebase / merge my UI branch to take in the Username changes from master [08:11] yep, it should be merged [08:13] ok, great [08:32] tomwardill: So if I upgrade dogfood, it should be possible to run an end-to-end test? [08:33] errr, I think so? :) [08:33] does dogfood run upload jobs automatically? [08:33] We'd need to run that manually [08:33] right [08:34] yeah, I think we should be good to try it [08:38] ilasc: Thanks for continuing to write the manual that we should have written years ago :) [08:46] tomwardill: dogfood is current now [08:46] well [08:46] better try a thing then :) [08:49] huh, getOCIProject isn't exported on distribution [08:52] * tomwardill takes notes [08:53] https://dogfood.paddev.net/~twom/ubuntu/+oci/test-twom-2020-04-22-2/+recipe/test-twom-2020-04-22-2-recipe/+build/7 [08:56] * tomwardill forgot to add any credentials to the recipe [08:56] * tomwardill does that [08:59] in lp-shell, is there a way to load an object from an arbitary API call? [08:59] Like lp.load you mean? [08:59] oh, maybe that :) [09:00] Hm, no OCIRecipeBuildJob created by your build. [09:01] Ah, maybe you haven't actually created the push rule yet? [09:01] no, I failed [09:01] well, forgot [09:01] trying to do that now [09:01] On loading arbitrary objects, also note that where launchpadlib normally takes an object as a method parameter, you can in general also pass a URL path. [09:02] newPushRule appears to be missing from lp.operations on a OCIRecipe [09:02] oh, is this lp-shell caching WADL? [09:02] So e.g. instead of foo.bar(distro_series=lp.distributions['ubuntu'].getSeries(name_or_version='focal')) you can say foo.bar(distro_series='/ubuntu/focal') [09:02] Yes [09:02] Very annoying and one of these days I'll fix it in launchpadlib [09:02] how do I fix that again? [09:03] rm -v ~/.launchpadlib/api.launchpad.net/cache/*.wadl* [09:03] nope, still only have newWebHook [09:03] hmm [09:04] Er sorry, dogfood [09:04] rm -v ~/.launchpadlib/api.dogfood.paddev.net/cache/*.wadl* [09:04] ah, of course [09:04] right, there we go [09:04] * tomwardill finds his credentials [09:05] (The bug is probably in lazr.restfulclient actually) [09:06] raise RuntimeError("No public key configured")\nRuntimeError: No public key configured\n' [09:09] You know I absolutely could have sworn I'd done that [09:09] But no sign of it [09:10] Please hold [09:15] tomwardill: Should be fixed [09:15] well, I've got a push rule [09:16] starting a new build [09:16] https://dogfood.paddev.net/~twom/ubuntu/+oci/test-twom-2020-04-22-2/+recipe/test-twom-2020-04-22-2-recipe/+build/8 [09:21] cjwatson: build done [09:23] $ /srv/launchpad.net/codelines/current/cronscripts/process-job-source.py -v IOCIRegistryUploadJobSource [09:24] {"repositories":["busybox","dogfood/test-twom-weget","pjdc/registry-2","registry","test-wget-image","twom/base_with_curl","twom-test/test-wget-image"]} [09:24] well, there's a thing [09:24] Seems happy. Would be nice to have some UI indication in LP [09:26] Also it's super-annoying that lp-shell no longer has good completion after upgrading to focal [09:26] Status: Downloaded newer image for upload.image-registry.staging.canonical.com:5000/dogfood/test-twom-weget:edge [09:26] Presumably a Python 3 thing [09:26] I can docker pull it [09:26] should probably try it with a more complicated docker image... [09:27] tomwardill: You can probably move https://trello.com/c/uUeoPcJx/68-ociregistrycredentials-ocipushrule-api to done? [09:27] done [09:27] * tomwardill enjoys the confetti [09:29] so yeah, we're done right? [09:29] ;) [09:33] This does basically look like an MVP: we need https://code.launchpad.net/~cjwatson/lp-production-configs/oci-registry-secrets-public-key/+merge/382733 merged, then a production deployment, then setting up celery and cron for IOCIRegistryUploadJobSource [09:34] A whole bunch more UI would sure be nice [09:34] yeah [09:35] Looks like you can currently create push rules but not list them [09:35] (on the API) [09:36] yup [09:36] I've got a couple of notes of missing things I just found [09:36] I'm marking your commits green in deployable though since they basically work [09:52] tomwardill: I'll work on the UI to show the state of registry uploads, if that's OK [09:52] sure [10:55] tomwardill: Is the error message handling in OCIRegistryUploadJob.run actually correct for pushing to OCI registries? It seems to be fairly directly taken from snap store interaction, and the "messages" and "details" stuff there is quite specific to the store's API [10:56] tomwardill: Do you know if the registry API ever returns multiple error messages for a single request? [10:56] Just wondering if we can simplify this or rationalise it in some way [10:57] cjwatson: hmm, it may not be. It seemed reasonably flexible for handling possible cases, but I'd need to reread the registry docs for it. I was also working on the assumption that a custom frontend might eventually be a thing [10:57] https://docs.docker.com/registry/spec/api/#errors-2 the spec is not hugely enlightening [11:02] tomwardill: The other thing is that in the store case error_message was mostly there for compatibility but you've replicated it; so trying to work out if we can get away with only one of singular vs. plural before fossilising the API [11:02] cjwatson: yeah, it looks like it [14:11] tomwardill: errors does generally seem to be possibly-plural there, so I think I'll just consider the plural case in what I'm doing [15:46] export push_rules on the API: https://code.launchpad.net/~twom/launchpad/+git/launchpad/+merge/382771 [15:58] r=me [15:59] ta, landing [16:01] cjwatson: sometime between now and Tuesday it would be fab if you could add some status notes to https://trello.com/c/41wQZbTD/26-built-using-support please [16:01] Yep, plan to [16:02] Was hoping to get closer to "code all done locally" first [16:02] tomwardill: did you get a chance to start having a look at built-using-model btw? [16:02] cjwatson: gah, no, I forgot. Give me link again and I'll do it next? [16:02] cjwatson: by all means, cheers [16:03] tomwardill: https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/381234 [16:03] tomwardill: https://code.launchpad.net/~cjwatson/launchpad/+activereviews and grep for built-using has other useful context [16:04] (As in, sometimes looking further up the stack may be helpful for understanding [16:04] ) [16:04] Also https://docs.google.com/document/d/1HNwxF16tBlh2EjSexihmZj9qP9w5oeGDWF0Fygb8ols is the hopefully-not-too-bitrotten design doc [16:43] i need to find a more effective way to review things, I really struggle with it just scrolling in a browser [16:45] I sometimes add a remote and fetch locally [17:06] cjwatson: it all looks reasonable to me, I'll go over it again in the morning, but I think I can follow it :) [21:39] Finally landing removal of --system-site-packages now that it's unblocked [21:39] * cjwatson looks forward to fewer incomprehensible pip bugs [21:39] * pappacena \o/ [21:40] I did actually have something else blocked on that for some reason I never quite tracked down - a ZTK upgrade I think [21:41] Something to do with ampoule child processes preferring the system zope.interface to the virtualenv's one because why