On Fri, Mar 12, 2021 at 06:54:15PM +0100, Andrea Bolognani wrote:
On Tue, 2021-02-23 at 16:17 +0100, Erik Skultety wrote:
> On Wed, Feb 17, 2021 at 10:24:51AM +0100, Andrea Bolognani wrote:
> > This is intended to be the perform a number of CI-related
> > operations that currently are implemented in various different
> > scripts written in various different programming languages; in
> > this first iteration it does two things:
> >
> > * implement the functionality of the existing "refresh"
> > scripts, which it supersedes;
> >
> > * provide a nicer front-end for a subset of the
> > functionality exposed by the ci/Makefile scaffolding, such
> > as running basic builds.
> >
> > Over time, the plan is to rewrite all CI-related functionality
> > in Python and move it into this script.
>
> You dived into it more aggressively than what I proposed, but we still need to
> approach it gradually, like don't extract the Makefile functionality partially.
> Let's lay the foundation first, then replace refresh and then at some point in
> the future, drop the Makefile and integrate it into the helper, I don't mind
> keeping the Makefile for a little longer.
Sorry for taking a while to get back to you.
I just posted a [v3] which should address pretty much all of your
feedback, but I'm not sure we're on the same page when it comes to
the overall strategy so I'm going to spend a few words on that here.
Even as a simple wrapper, the new helper script is a massive
usability win because options work in a standard way and are easily
discoverable, so I'm very keen on adopting it as the official entry
point for local CI-related functionality right away.
Whether the underlying code is implemented or not in Python is not as
important... That's obviously the end goal, but in the short term I'd
rather have people call the Makefile through the new script than
directly.
And once the new script has been introduced, we can *definitely*
rewrite functionality to Python in chunks. For example, the code
underpinning the 'list-images' target is already mostly outsourced to
a shell script, and your series from last month reimplemented that
with a Python one: instead of making that script standalone and
having the Makefile call out to it, we should just implement the
functionality in the new helper script and drop the corresponding
Makefile code entirely.
The rest of the Makefile will have to be rewritten in one go because
it's all tangled together, but again we can do that whenever we have
some free cycles, without having to hurry too much since, regardless
of the underlying implementation, users are already enjoying the
improved user interface.
That's fine, my point was that I didn't like a partial wrapper of the Makefile
functionality, I just suggested one approach, while you went with a different
one if v3 - which I certainly don't mind.
Erik