[00:48] cjwatson: weird. That's one part of the snapcraft.yaml we haven't changed in years [01:15] jamesh: hm, I can look harder tomorrow. I guess it could also be the `base: bare` bit, but the `build-base` should win ... [01:16] cjwatson: I'll definitely give the architectures thing a try, so I can rule that out for your tomorrow [01:17] jamesh: is it possible that you used to create builds using the snap.requestBuild API though? That doesn't go through arch parsing [01:17] jamesh: (but is deprecated for various reasons, e.g. it can't detect the base properly) [01:18] cjwatson: the recipe hasn't built automatically in response to the last push, or by using the manual "request builds" link on the website [01:18] jamesh: so it could be that this never worked but that the way you were requesting builds dodged the problem [01:19] cjwatson: I'm pretty sure we had automatic builds working before [01:19] jamesh: we might have refactored how those worked at some point, but I'd need to dig into git history [01:20] cjwatson: if updating that bit of the snapcraft.yaml fixes things, I'll be happy. Thanks for looking into it [01:21] jamesh: broadly we've been moving more towards async build requesting that parses snapcraft.yaml properly, as it became clear that our initial approach wasn't sustainable [02:10] cjwatson: updating the architectures line does indeed seem to have got things unstuck. Thanks! [07:26] cristiangsp: Colin helped track down the build failure for my snap. I had "architectures: [all]" in the snapcraft.yaml, which used to work but now seems to result in no builds being spawned by the build request. [07:46] jamesh let me take a look again to the logs so see if now we can see the issue there [07:46] when did you request a build? [07:48] oh I see it now [07:48] in the logs [07:52] actually I see builds being successful, so I think we are good and you were trying to update me. Thanks! [07:54] cristiangsp: yeah. I updated the snapcraft.yaml, and it started building again [07:54] jamesh: perfect! [07:55] cristiangsp: I hadn't actually touched this part of the snapcraft.yaml since the last builds in April, so I was mostly focusing on the aspects I had changed. [16:34] Is there a way in a Launchpad recipe to pull from the latest tag, similar to how {latest-tag} is used in the deb version part? [16:36] I don't believe so [16:36] Recipes were built mainly for ongoing CI sorts of applications, really [16:37] You can always have a branch that exists just for the purpose of hanging a recipe off, and push the latest tag to that each time you want to bump it [16:48] Yeah that's kind of what I do now, but the problem is that I'm also packaging software other people make and I try not to impose on them much [17:22] I'm afraid that's the best we can offer at the moment. You can make the branch yourself in your own repository - it doesn't have to involve imposing on them [18:08] Do you think a change to `git-build-recipe` that allowed `{latest-tag}` in the context of the git-ref would be accepted? [18:24] krisives: I don't think a change to git-build-recipe alone would be sufficient. It would need changes in the dispatch logic in Launchpad (in fact that would be where most of the change would have to go), and the definition of "latest tag" is considerably more difficult than it is in the context of generating a version string - for a version string, what it means is the latest tag found in the ... [18:24] ... direct ancestry of the branch that the recipe is based on, whereas for dispatch it's more like ... latest tag anywhere? But what if the repository is one that makes tags for purposes other than releases? It gets kind of complicated [18:24] krisives: In other words, I'm not sure this proposed solution is the right one. [18:25] {latest-tag} doesn't do version semantic style comparison to find the latest? [18:25] krisives: It might possibly be more sensible to define it as a flag on the recipe that causes LP to only dispatch builds when there's a tag, but still to follow a particular branch so that it doesn't e.g. get confused by a tag off on an old branch somewhere. [18:26] eg. if I tag `0.0.2` and then tag as `0.0.1` is `0.0.1` the {latest-tag} ? [18:26] {latest-tag} is generated using the output of "git describe --tags --abbrev=0 " [18:27] Which is specifically to do with the ancestry of the commit that's been checked out - it's not a meaningful concept in isolation from that [18:27] Thanks [18:30] Better argument against "latest tag anywhere": let's say you have a recipe for something like Python (the interpreter itself). There are relatively frequent releases, with corresponding tags, for 3.6.x, 3.7.x, 3.8.x, and 3.9.x. The "latest tag" in purely time-based terms might be any one of those; the "latest tag" by version comparison (which is not a universally-agreed concept) would be ... [18:30] ... something in the 3.9.x series. But you might very well want to have separate recipes corresponding to the latest release of Python 3.6, 3.7, 3.8, and 3.9 (perhaps with slightly different build options etc.). For that, you need to be thinking of the latest tag found along the history of a particular branch, rather than the latest tag in the repository. [18:32] So I think, if we were doing this, the patch would need to be mainly to Launchpad itself: the recipe would still be talking about the 3.6 branch of Python, but we'd want a flag that says "only dispatch a build when a commit on this branch is tagged" or similar. [18:32] Yeah, plus if someone goes back and does a tag to fix an older point release it will have problems [18:33] And LP would need to dispatch the recipe modified in such a way that it points to that particular tag, I guess. It's certainly possible that some kind of change to git-build-recipe might need to be involved [20:01] What does the +Z and +i mode thing mean? or is that specific to me running a bouncer? [20:23] krisives: https://libera.chat/guides/usermodes :) [20:23] nothing bouncer specific