Skip to content

Conversation

@danielbeardsley
Copy link
Member

See discussion: #316

When we have lots of CI statuses (we currently have 15 or so), the current UI works very poorly. This change moves most of it into a popup.

CI Status UI

  • Use existing UI to represent groups of CI builds with the same state, roughly scaling with number in the group
  • Keep them in a consistent order with green on top
  • Clicking on any group opens the popup
  • Hovering shows the list of statuses in that state

Popup:

  • Consistent ordering (alpha)
  • Icon and color both represent build state

Popup:
image

Hover state
image

We have a *lot* of commit statuses in our main repo now, (16 or so).
This is far too many to effectively display and make clickable on the
left side of each pull.

Solution
========
Show one status bubble for each state represented, scaled roughly by how
many have that state. Make that whole section clickable and render a popup
with more details.
Most of our successes and failures look like "success" and "failure" and
that is already communicated by the color.
Object.keys() doesn't guarantee the key order, so if we want
a specific order, we have to use expressions instead of array.map()
Previous iteration was thrown together for a demo, so make it a little
more polished.

* Use icons to represent states
* Use icon color to represent states
* Subtle divider
* Drop the heading cause it's overkill
* Hover state
* Polish it for dark mode too
isLazy effectively defers the creation of the content elements until
the popover is opened. Since we have many pulls, this helps with
overall DOM complexity.
We have the icon + color that both change, but nothing explicit
says the state (like "pending") until now.
And space out the description a small bit

The context name is usually more important than the description anyway.
Humans don't sort strings this way, so our tools shouldn't either.
@rickisXP rickisXP self-assigned this May 16, 2022
@rickisXP rickisXP added the QAing Under QA team review label May 16, 2022
@rickisXP
Copy link

QA 🐧 and deploy_block 🍰 on one issue

  • Clicking CI status shows all tests that have passed, are pending, missing, or failed ✔️

Issue

  • Pulls without CI have empty CI check boxes. ⚠️
emptyCIBox.mp4

This is no longer a map, so we don't need key=
Use the no-popup version if there is only one status cause it doesn't
add anything and just gets in the way.
@danielbeardsley
Copy link
Member Author

un_deploy_block 👍

Thanks @rickisXP !!! I fixed the issues you found and made a few small changes (commit messages explain)

@rickisXP rickisXP removed the QAing Under QA team review label May 17, 2022
@rickisXP
Copy link

QA 🔢 but deploy_block 💯 on one question

  • Clicking CI status shows all tests that have passed, are pending, missing, or failed heavy_check_mark

Question ❓

When clicking on CI statuses with only one check, is opening the CI check in GitHub the expected behavior, or should Pulldasher be showing the same CI popup?

gitHubCIcheck.mp4

@danielbeardsley
Copy link
Member Author

Intended cause I think the simpler behavior is better for small numbers of statuses:
af60089

un_deploy_block 👍

Copy link
Member

@mlahargou mlahargou left a comment

Choose a reason for hiding this comment

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

CR 📱

@danielbeardsley danielbeardsley merged commit 43689c6 into master May 17, 2022
@danielbeardsley danielbeardsley deleted the ci-status-bigger branch May 17, 2022 23:23
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.

4 participants