On Fri, Feb 25, 2022 at 11:31:39AM +0100, Erik Skultety wrote: > On Thu, Feb 24, 2022 at 06:49:29AM -0800, Andrea Bolognani wrote: > > I'm not entirely convinced that requiring the use of lcitool for this > > task is necessarily the best idea though. Ideally, it should be > > possible for developers to reproduce and debug CI failures locally > > without having to clone a second repository. It's fine to require > > lcitool for tasks that are performed by maintainers, but casual > > contributors should find all they need in libvirt.git itself. > > Unless they also want to test with VMs as well in which case lcitool is highly > recommended. The thing is that right now ci/helper wraps the Makefile. Let's > say you (or someone else) replaces it with a python equivalent, I don't think > that the number of contributors suddenly starting to use it will differ much > compared to the situation right now, but maybe I'm wrong :). > My motivation to add the support to lcitool is simple - right now there's an > RFC on adopting some infrastructure in order to run TCK-based functional tests > as part of GitLab. That's just the first stage, ultimately we want developers > to be able to run the same test suite locally without the need to wait for > gitlab and since the current design of the above is using nested virt, it is an > achievable goal. There was also a suggestion to adopt the Avocado framework for > a new test framework which would be largely based on TCK [1]. > Now, let's get to the point I'm trying to make :) - my expectation/vision is > that both the remote and local functional test executions will revolve around > lcitool and so eventually with the adoption of *some* framework it is going to > become a requirement that libvirt developers do perform functional testing > before submitting a patch series. With that said, it makes more sense in my > mind to focus on adding the container runtime support to lcitool in order to > move towards the bigger goal and have everything consolidated in a single > place. Alright, that's a pretty solid argument. And even if we ultimately decide that we don't want to require using lcitool, once we have a project-agnostic Python implementation of this logic it would be reasonably straightforward to turn it into a standalone tool similar to the current ci/helper, so we have an exit strategy. > > Another thing that has been bothering me is that neither 'ci/helper > > build' nor 'lcitool build' will actually perform the exact same build > > steps as the corresponding CI job, making them only mildly effective > > as debugging tools for CI failures. And of course each of these build > > recipes is maintained separately, so we have three similar but not > > quite identical scripts floating around. > > Yes, but on its own, I think that is a problem which can be solved separately. Agreed that the two tasks are not necessarily depending on each other, but there's significant overlap. I think it makes sense to rationalize how the build steps for a project are defined and maintained as part of adding "build in a local container" support to lcitool. Do you have any high-level concerns about the ci/build approach I vaguely described? The finer details are of course far from being set in stone, but I think the overall idea is solid and we should aim for it being implemented as we evolve our CI tooling. -- Andrea Bolognani / Red Hat / Virtualization