DPDK CI discussions
 help / color / mirror / Atom feed
From: Patrick Robb <probb@iol.unh.edu>
To: Aaron Conole <aconole@redhat.com>
Cc: Ferruh Yigit <ferruh.yigit@amd.com>,
	ci@dpdk.org, "Tu, Lijuan" <lijuan.tu@intel.com>,
	 zhoumin <zhoumin@loongson.cn>,
	Michael Santana <maicolgabriel@hotmail.com>,
	 Lincoln Lavoie <lylavoie@iol.unh.edu>
Subject: Re: Email Based Re-Testing Framework
Date: Wed, 7 Jun 2023 21:47:07 -0400	[thread overview]
Message-ID: <CAJvnSUBgM5Q0Rxm2rNa3MkP+5euAL4J5+H2qCnkXgt4o7z0usg@mail.gmail.com> (raw)
In-Reply-To: <f7tbkhr4enp.fsf@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 4720 bytes --]

On Wed, Jun 7, 2023 at 8:53 AM Aaron Conole <aconole@redhat.com> wrote:

> Patrick Robb <probb@iol.unh.edu> writes:
>
> >  Also it can be useful to run daily sub-tree testing by request, if
> possible.
> >
> > That wouldn't be too difficult. I'll make a ticket for this. Although,
> for testing on the daily sub-trees, since that's
> > UNH-IOL specific, that wouldn't necessarily have to be done via an email
> based testing request framework. We
> > could also just add a button to our dashboard which triggers a sub-tree
> ci run. That would help keep narrow
> > the scope of what the email based retesting framework is for. But, both
> email or a dashboard button would
> > both work.
>
> We had discussed this long ago - including agreeing on a format, IIRC.
>
> See the thread starting here:
>   https://mails.dpdk.org/archives/ci/2021-May/001189.html
>
> The idea was to have a line like:
>
> Recheck-request: <test names>
>
I like using this simpler format which is easier to parse. As Thomas
pointed out, specifying labs does not really provide extra information if
we are already going to request by label/context, which is already
specifies the lab.

>
> where <test names> was the tests in the check labels.  In fact, what
> started the discussion was a patch for the pw-ci scripts that
> implemented part of it.
>
> I don't see how to make your proposal as easily parsed.
>
> WDYT?  Can you re-read that thread and come up with comments?

 Will do. And thanks, this thread is very informative.

> It is important to use the 'msgid' field to distinguish recheck
> requests.  Otherwise, we will continuously reparse the same
> recheck request and loop forever.  Additionally, we've discussed using a
> counter to limit the recheck requests to a single 'recheck' per test
> name.
>
We can track message ids to avoid considering a single retest request
twice. Perhaps we can accomplish the same thing by tracking retested
patchseries ids and their total number of requested retests (which could be
1 retest per patchseries).

>  +function check_series_needs_retest() {

+    local pw_instance="$1"
+
+    series_get_active_branches "$pw_instance" | while IFS=\| read -r
series_id project url repo branchname; do
+        local patch_comments_url=$(curl -s "$userpw" "$url" | jq -rc
'.comments')
+        if [ "Xnull" != "X$patch_comments_url" ]; then
+            local comments_json=$(curl -s "$userpw" "$patch_comments_url")
+            local seq_end=$(echo "$comments_json" | jq -rc 'length')
+            if [ "$seq_end" -a $seq_end -gt 0 ]; then
+                seq_end=$((seq_end-1))
+                for comment_id in $(seq 0 $seq_end); do
+                    local recheck_requested=$(echo "$comments_json" | jq
-rc ".[$comment_id].content" | grep "^Recheck-request: ")
+                    if [ "X$recheck_requested" != "X" ]; then
+                        local msgid=$(echo "$comments_json" | jq -rc
".[$comment_id].msgid")
+                        run_recheck "$pw_instance" "$series_id" "$project"
"$url" "$repo" "$branchname" "$recheck_requested" "$msgid"
+                    fi
+                done
+            fi
+        fi
+    done
+}
This is already a superior approach to what I had in mind for acquiring
comments. Unless you're opposed, I think at the communit lab we can
experiment based on this starting point to verify the process is sound, but
I don't see any problems here.

> I think that if we're able to specify multiple contexts, then there's not
> really any reason to run multiple rechecks per patchset.
>
Agreed.

> There was also an ask on filtering requesters (only maintainers and

patch authors can ask for a recheck).

If we can use the maintainers file as a single source of truth that is
convenient and stable as the list of maintainers changes. But, also I think
retesting request permission should be extended to the submitter too. They
may want to initiate a re-run without engaging a maintainer. It's not
likely to cause a big increase in test load for us or other labs, so
there's no harm there.

> No, an explicit list is actually better.

When a new check is added, for someone looking at the mails (maybe 2/3

weeks later), and reading just "all", he would have to know what

checks were available at the time.

Context/Labels rarely change, so I don't think this concern is too serious.
But, if people dont mind comma separating an entire list of contexts,
that's fine.

Thanks,
Patrick

-- 

Patrick Robb

Technical Service Manager

UNH InterOperability Laboratory

21 Madbury Rd, Suite 100, Durham, NH 03824

www.iol.unh.edu

[-- Attachment #2: Type: text/html, Size: 9041 bytes --]

  parent reply	other threads:[~2023-06-08  1:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-06 16:56 Patrick Robb
2023-06-06 17:53 ` Ferruh Yigit
2023-06-06 19:27   ` Patrick Robb
2023-06-06 21:40     ` Ferruh Yigit
2023-06-07 12:53     ` Aaron Conole
2023-06-08  1:14       ` Patrick Robb
2023-06-08  1:47       ` Patrick Robb [this message]
2023-06-12 15:01         ` Aaron Conole
2023-06-13 13:28           ` Patrick Robb
2023-06-20 14:01             ` Aaron Conole
2023-06-07  7:04 ` Thomas Monjalon
2023-06-21 16:21 ` Ali Alnubani
2023-07-10 21:16   ` Jeremy Spewock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAJvnSUBgM5Q0Rxm2rNa3MkP+5euAL4J5+H2qCnkXgt4o7z0usg@mail.gmail.com \
    --to=probb@iol.unh.edu \
    --cc=aconole@redhat.com \
    --cc=ci@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=lijuan.tu@intel.com \
    --cc=lylavoie@iol.unh.edu \
    --cc=maicolgabriel@hotmail.com \
    --cc=zhoumin@loongson.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).