[Avocado-devel] N(ext) Runner - The road to maturity

Beraldo Leal bleal at redhat.com
Thu May 14 12:58:15 UTC 2020

Hi Cleber,

Thanks for the big picture, very helpful. I'm confident that the Next
Runner will be a turning point for Avocado.

My comments are inline:

On Wed, May 13, 2020 at 07:43:41PM -0400, Cleber Rosa wrote:
> ...
> Currently ongoing development
> -----------------------------
> There has been three major types of developments around the Job API:
> ...
> 2. Introducing and porting Avocado's code to new combined settings
>    module.  This should allow the same experience for users of the
>    command line tool giving option as command line arguments, users
>    of the Job API providing the configuration as a dictionary, or
>    users of both command line and Job API settings options with
>    configuration files.
> 3. Making sure that features that work while running jobs on the
>    command line (via "avocado run"), also work the same way in custom
>    jobs.  Recently a number of issues with output not being created
>    when running custom jobs were fixed, but there are certainly many
>    more to be found.
> Relationship with N(ext) Runner
> -------------------------------
> The N(ext) Runner will only be considered "feature complete" when it
> is completely integrated into an Avocado Job.  This means that the job
> files discussed on the previous section item #1 should behave the same
> with the current runner, or the "nrunner" implementation.  The items
> #2 and #3, should, as much as possible be finished *before* that, given
> that not doing so will cast a number of questions on who the culprit
> for a bug is.  Any bug will lead to the question: is it a Job API bug
> or a N(ext) Runner bug?

Just one update about item #2 (the new settings modules):

 * avocado/plugins/ is done: today we have 70 calls to the new
   `register_option()` method and there is no more old calls to
   `add_argument()` here. 

 * avocado/optional_plugins/ is almost done: 16 calls to the new
   `register_option()` method and since that a few plugins are going to
   be deprecated I have to double-check the missing ones. But I think
   that are just a few. I also have an open PR here:


 * avocado/core/ is also almost done: we have only 14 calls to the old
   method. I'm still working on this.

About item #3, after your comment on #3796 and merge of #3812, I'm
working on the "download test output command" and the PR is on the way.

> ...
> Relationship with N(ext) Runner
> -------------------------------
> ...
> One of the goals of this RFC, is to look at the proposal for the
> N(ext) Runner pending development tasks, and discuss an architecture
> that facilitates the implementation of the Requirements Resolver.

I understand this N(ext) Runner "feature complete" effort it is crucial
for a lot of tasks that we are doing. So maybe we could have a complete
list of pending tasks as GitHub issues.

I know that we already have a few of them, but I'm not sure if all are

So, maybe some kind of 'flag/label' (nrun2run), a 'column' on GitHub
Kanban or even both so we could easily track all pending tasks about

I have also created an epic issue to accommodate all issues:


Let me know if you guys have any objections to this.

> Next
> ====
> Following this, I'll be posting an architectural blue print proposal
> for the missing pieces of the N(ext) Runner.  Feedback on the proposal
> is much appreciated, and it's worth reminding everyone that there's no
> unworthy suggestion or question.

I'm looking forward to reading it. \o/

Thanks again.


More information about the Avocado-devel mailing list