Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use emojis for stage and job display names #45558

Closed
wants to merge 2 commits into from
Closed

Conversation

MiYanni
Copy link
Member

@MiYanni MiYanni commented Dec 19, 2024

Summary

Currently, the names of the jobs in the GitHub checks are quite long and have a lot of different parts to them. Similarly, viewing the jobs in Azure Pipelines has a similar problem when the job names are wider than the list panel width. I wanted to solve this with replacing some of the information with a fixed-width emoji.

Design

The GitHub checks are a string in this format (cannot be changed, defined by GitHub):

  • pipeline_name (stage_name job_name)

This PR doesn't change our job name. It only updates the display name of the stage and jobs. The jobs have multiple parts to their names:

  • Category
  • OS
  • Architecture
  • Container

Category is a concept I created because the builds have different aspects of how they run. A category represents the same/similar group of settings. This came about when merging the SDK and Installer builds together. Here's the list of categories and the emoji legend for them:

  • ⭐ Official
  • 💼 Portable
  • 💪 Musl
  • 🧭 PGO
  • 🧪 TestBuild
  • 🖼️ FullFramework
  • 🪛 TestAsTools
  • 📦 ContainerBased
  • 🧩 TemplateEngine
  • ⏰ AoT

OS is for the operating system of the job. Here's the emoji legend:

  • 🪟 Windows
  • 🐧 Linux
  • 🍎 macOS

Architecture and Container remain as text. They're quite specific and don't really have an easy way to map emojis to them.

For the dotnet-format jobs, I've used this format:

  • 📰 represents dotnet-format
  • ✔️ for the Formatting Check job
  • 🧪 repo for the Integration Tests job

GitHub Concept Sampling

This isn't a full list but just a random selection showing how they'd look in the GitHub checks.

  • dotnet-sdk-public-ci (🛠️ 🪟 🧪 x64)
  • dotnet-sdk-public-ci (🛠️ 🪟 🖼️ x64)
  • dotnet-sdk-public-ci (🛠️ 🪟 ⏰ x64)
  • dotnet-sdk-public-ci (🛠️ 🪟 🪛 x64)
  • dotnet-sdk-public-ci (🛠️ 🐧 📦 x64 alpine319WithNode)
  • dotnet-sdk-public-ci (🛠️ 🐧 📦 x64 debian12Amd64)
  • dotnet-sdk-public-ci (🛠️ 🍎 🧪 x64)
  • dotnet-sdk-public-ci (🛠️ 🍎 🧪 arm64)
  • dotnet-sdk-public-ci (🛠️ 🍎 ⏰ x64)

Other Change

For the Build and Test steps, I've added the category name since it can be more difficult to make the emoji association. So, you'll see the text name of the category emoji in those steps.

Example

image

GitHub PR Example

Current

image

Emoji

image

AzDO PR Example

Current

image

Emoji

image

AzDO CI (Official) Example

Current

image

Emoji

image

@MiYanni MiYanni requested a review from a team December 19, 2024 01:45
@MiYanni MiYanni requested review from a team as code owners December 19, 2024 01:45
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Infrastructure untriaged Request triage from a team member labels Dec 19, 2024
@ViktorHofer
Copy link
Member

ViktorHofer commented Dec 19, 2024

dotnet-sdk-public-ci

Can we instead just rename the pipeline to be shorter? I.e. runtime's ci pipeline is just called "runtime". The official build pipeline is called "runtime-official". That would save 17 characters when displaying the job names at least on GH.

Honestly, I'm not a fan of this change. I don't want to need to use a decoder ring to understand the job names in this pipeline. None other repository is doing this.

@akoeplinger
Copy link
Member

Honestly, I'm not a fan of this change. I don't want to need to use a decoder ring to understand the job names in this pipeline.

+1. All of the example screenshots look much clearer to me in the current version than the proposed one.

@dsplaisted
Copy link
Member

This is cool, but I agree with others that I would prefer text I can understand instead of an emoji I have to interpret. I think emojis for the OS (Apple, Windows, Android) make sense, but for the rest I would probably just try to use shorter, sensible names. Maybe we could shorten FullFramework to FullFx.

I think we could probably drop the TestAsTools pipeline entirely, the point of that was to run tests from dotnet/sdk in the dotnet/installer repo, so we probably don't need it at all in branches where the repos are merged.

@jkoritzinsky
Copy link
Member

I agree with others as well. The OS emojis are fine, but the rest are quite difficult to remember.

I'd prefer splitting the CI pipeline into separate pipelines with shorter names for each category (and making them all required) than using the decoder emoji with one pipeline.

For example:

sdk would be the pipeline for standard tests + builds + .NET Framework
sdk-format would be the pipeline for the format integration tests
sdk-template-engine would be the templating tests.

Another option would be to split the stages in CI, so each category has a separate stage (would also shorten the name). Since the different jobs don't have interdependencies as far as I can tell, this would work fine and provide better UX.

I also would question the utility of the "ContainerBased" category name. I think those could skip the category name entirely.

@MiYanni
Copy link
Member Author

MiYanni commented Dec 20, 2024

Based on the feedback so far, it seems there's not interest in the original idea I proposed here. Some of the suggested changes are a good idea, but I don't have particular interest in following through with them. A PR was required to even see this concept being used, so I wasn't dead set on these changes or even this concept of these changes. I just wanted to see what it would look like and gather feedback. If anyone wants any of the other changes proposed, feel free to make a PR.

An aside: There are so many limitations around handling Azure Pipelines or GitHub Checks in terms of viewability. This was more of a conceptual workaround for the fixed-width designs of both GitHub and Azure Pipelines. For GitHub, I use a GitHub Wide extension that allows me to see the full names of the jobs if the browser is fullscreen. But I haven't found/created something that allows for adjustment of the Azure Pipelines left pane when viewing job logs. It is very irritating. Also, I have a lot of personal interest in symbology and I really wanted to see what this idea looked like with my own eyes. Thanks.

@MiYanni MiYanni closed this Dec 20, 2024
@akoeplinger
Copy link
Member

But I haven't found/created something that allows for adjustment of the Azure Pipelines left pane when viewing job logs.

FYI Logan Bussell shared this on Teams a while ago:

I made a bookmarklet that makes browsing large azure pipelines usable:
Just save this as a bookmark and click it when you want to expand the panel:
javascript:(function()%7Bdocument.querySelector(".bolt-master-panel").style%5B"width"%5D%3D"600px"%7D)()%3B

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Infrastructure untriaged Request triage from a team member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants