On Mon, Apr 26, 2021 at 11:59:19AM +0200, Erik Skultety wrote:
On Fri, Apr 23, 2021 at 05:03:04PM +0200, Andrea Bolognani wrote:
> Later on, when we change the actions that operate on
> container images to accept an lcitool-style --cross-arch
> argument instead of expecting the name of the image to have
> the cross-building architecture baked in, this will allow
> users to quickly copy-and-paste the necessary information.
...you can quickly copy-and-paste the image name even now and I would argue
that it's even quicker than after this series:
./helper list-images
./helper <action> <copy-paste image name> vs
./helper list-images
./helper <action> <copy-paste image name> --cross-arch <copy-paste cross
arch>
Right now you wouldn't even need the verification code introduced in patch 12
since you have to paste the image verbatim which IMO for this utility helper
that only serves a very specific use case of a single repo is "good enough".
That assumes the target name only comes from copying and pasting from
the output of the list-images action... Right now, if you pass some
invalid / obsolete value you get
$ ./ci/helper build ubuntu-1604
make: Entering directory '/home/abologna/src/upstream/libvirt/ci'
make -C /home/abologna/src/upstream/libvirt/ci
ci-run-command@ubuntu-1604 CI_COMMAND="/home/abologna/build"
make[1]: Entering directory '/home/abologna/src/upstream/libvirt/ci'
Checking if podman is available...yes
Cloning /home/abologna/src/upstream/libvirt to
/home/abologna/src/upstream/libvirt/ci/scratch/src
Cloning /home/abologna/src/upstream/libvirt/src/keycodemapdb to
/home/abologna/src/upstream/libvirt/ci/scratch/src/src/keycodemapdb
podman run \
--rm --interactive --tty --user "1000":"1000" --workdir
"/home/abologna" --env CI_CONT_SRCDIR="/home/abologna/libvirt" --env
CI_MESON_ARGS="" --env CI_NINJA_ARGS="" --uidmap 0:1:1000 --uidmap
1000:0:1 --uidmap 1001:1001:64536 --gidmap 0:1:1000 --gidmap 1000:0:1
--gidmap 1001:1001:64536 --volume
/home/abologna/src/upstream/libvirt/ci/scratch/group:/etc/group:ro,z
--volume /home/abologna/src/upstream/libvirt/ci/scratch/passwd:/etc/passwd:ro,z
--volume /home/abologna/src/upstream/libvirt/ci/scratch/home:/home/abologna:z
--volume /home/abologna/src/upstream/libvirt/ci/scratch/build:/home/abologna/build:z
--volume /home/abologna/src/upstream/libvirt/ci/scratch/src:/home/abologna/libvirt:z
--ulimit nofile=1024:1024 --cap-add=SYS_PTRACE \
registry.gitlab.com/libvirt/libvirt/ci-ubuntu-1604:latest \
/home/abologna/build
Trying to pull
registry.gitlab.com/libvirt/libvirt/ci-ubuntu-1604:latest...
manifest unknown: manifest unknown
Error: Error initializing source
docker://registry.gitlab.com/libvirt/libvirt/ci-ubuntu-1604:latest:
Error reading manifest latest in
registry.gitlab.com/libvirt/libvirt/ci-ubuntu-1604: manifest unknown:
manifest unknown
make[1]: *** [Makefile:199: ci-run-command@ubuntu-1604] Error 125
make[1]: Leaving directory '/home/abologna/src/upstream/libvirt/ci'
make: *** [Makefile:209: ci-build@ubuntu-1604] Error 2
make: Leaving directory '/home/abologna/src/upstream/libvirt/ci'
error: 'make' failed
With my patches, the output is a much more reasonable
$ ./ci/helper build ubuntu-1604
Unknown target 'ubuntu-1604'
I agree that having to input the target OS and the target
architecture separately is slightly more copy-and-paste work, but
really those are two semantically separate bits of information and
it's just wrong for the user to provide a single argument that
encodes both.
It was an acceptable trade-off when we were using make, but now that
we have an actual command-line parser at our disposal we should take
advantage of it.
I guess the idea is to eventually integrate this helper somehow to
lcitool, so
I'm wondering what is it we're trying to solve here. As for the output itself,
if we want to change it, then I'd be probably more inclined towards something
like virt-builder --list. There's massive information redundancy in there -
no need to argue - but because the output is formatted like a simple table,
tools like grep,sort,uniq and cut make the customization of the output for the
average linux user an absolute no-brainer and they always get information they
were looking for easily with almost no added effort.
Changing the output to be similar to that of 'virt-builder --list'
sounds good to me.