Skip to content

[feat] AB comparison - #2018

Open
felipebergamin wants to merge 10 commits into
kernelci:mainfrom
profusion:feat/ab-details-screen
Open

[feat] AB comparison#2018
felipebergamin wants to merge 10 commits into
kernelci:mainfrom
profusion:feat/ab-details-screen

Conversation

@felipebergamin

@felipebergamin felipebergamin commented Jul 21, 2026

Copy link
Copy Markdown
Member

Description

Implementations to AB comparison detailed information.

Note

We are still discussing about the design and UX so it is probably going to change.

Any comments/suggestions will be welcome. :)

Visual reference

Gravacao_de_tela_20260804_141527.webm

@felipebergamin
felipebergamin force-pushed the feat/ab-details-screen branch from 1d1ea9d to 67cd6e4 Compare July 21, 2026 22:25
@felipebergamin
felipebergamin force-pushed the feat/ab-details-screen branch from fb3fad6 to 61911e9 Compare July 29, 2026 17:13
@felipebergamin felipebergamin changed the title Feat/ab details screen [feat] AB comparison Jul 29, 2026
@felipebergamin
felipebergamin force-pushed the feat/ab-details-screen branch 2 times, most recently from 18df37d to 7c275a0 Compare July 29, 2026 18:00
Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
Closes kernelci#2023

Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
Closes kernelci#2009

Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
…akdown

Part of kernelci#2010 kernelci#2011 kernelci#2012

Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
@felipebergamin
felipebergamin force-pushed the feat/ab-details-screen branch from 37060e1 to 43aaabb Compare August 4, 2026 16:45
@felipebergamin
felipebergamin marked this pull request as ready for review August 4, 2026 17:17
Use bare-array payloads and latest-wins collapse for all three detail
endpoints, with aligned SQL filters and no Python dual path.

Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
One-sided A/B transitions were misclassified as fixed/regression; classify
them correctly and document each transition status next to the filter bar.
@felipebergamin
felipebergamin requested a review from a team August 6, 2026 11:31
Signed-off-by: Felipe Bergamin <felipebergamin@profusion.mobi>
Boots and tests share build architecture in the diff identity and API so
listing tables can show arch alongside path and hardware.
@felipebergamin
felipebergamin force-pushed the feat/ab-details-screen branch from f0d3eee to 840099f Compare August 7, 2026 18:25
@alanpeixinho

Copy link
Copy Markdown
Contributor

Just to document the comments from the Working Group.

  • We should implement the filters as proper filters. ie, when deselecting all filters, we should show full list of changes.
  • The "appeared/disappeared" filters, should show all cases that not appear on either side of the comparison, regardless of status.
  • Include a text filter search, similar to the existing ones.
  • We should create columns (or grouping) for hardware (this might be moved to a new issue).

issues."_timestamp" DESC
"""

print(query)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

debug leftover

return rows


def get_tree_compare_data(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this shoudl no longer be needed now that we are splitting the endpoints, right?

return True
filtered_issues = filters.filterIssues.get(filter_type, set())
if filtered_issues and not known_issues.issubset(filtered_issues):
if filtered_issues and known_issues.isdisjoint(filtered_issues):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are these real changes, or just needing rebase?

const shortA = hashA.slice(0, SHORT_HASH_LENGTH) || '—';
const shortB = hashB.slice(0, SHORT_HASH_LENGTH) || '—';

const mock = COMPARE_FAILURES_MOCK;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will we remove this?

if (statusB === 'PASS') {
return 'newPass';
}
return 'appeared';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we need to think a little bit in the nomenclature, in 'appeared' we would expect to also include the new pass and new failure.
Also, I might be wrong, but I believe we have some divergence on some cases when comparing this implementation and _CHANGE_COUNT_SELECT.
For instance, pass -> inconclusive here would be considered regression and fail -> inconclusive would be considered fixed. That is not the case on the _CHANGE_COUNT_SELECT.

@tales-aparecida tales-aparecida Aug 10, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to have some clarity, this is how I interpret the filters shown today. Do we have the feature specification in a .md file? Could be good to elevate the discussions to a higher level, since we are struggling with code review anyway

A B Alias
Red Green Fixed
(!Green) Green New passes
Green Red Regression
(!Red) Red New failures
Red Red Still failing
None (!None) Appeared
(!None) None Disappeared

Note that I don't count MISS as None, but that might require discussion

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Talking about high level ideas, I wonder how users would react to having a form with 2 multi-select fields: FROM and TO. This wouldn't allow to select specific pairings... which leads me to a more complex idea: a form that allows to select multiple (from, to) pairs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants