Skip to content

Conversation

@Carreau
Copy link
Contributor

@Carreau Carreau commented Nov 25, 2025

This adds a CI status column to https://conda-forge.org/status/migration/?name=python314t, (the value is already present in the data and the graph), and I mostly care about failing ones to help fixing them.

While at it, makes the column sortable because it's nice.
Screenshot 2025-11-25 at 13 49 39

@Carreau Carreau requested a review from a team as a code owner November 25, 2025 12:52
@netlify
Copy link

netlify bot commented Nov 25, 2025

Deploy Preview for conda-forge-previews ready!

Name Link
🔨 Latest commit b1f7075
🔍 Latest deploy log https://app.netlify.com/projects/conda-forge-previews/deploys/69274000275033000831c3e1
😎 Deploy Preview https://deploy-preview-2668--conda-forge-previews.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 64
Accessibility: 96
Best Practices: 100
SEO: 89
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

Copy link
Member

@beckermr beckermr left a comment

Choose a reason for hiding this comment

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

The mergeable stage field in how the bot uses it basically tracks if the PR has conflicts or not. To make this work like you want, we'd need to pull the ci status of the actually pr checks.

@beckermr beckermr dismissed their stale review November 25, 2025 14:01

I was wrong! Sorry!

Copy link
Member

@beckermr beckermr left a comment

Choose a reason for hiding this comment

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

This is great thank you!

For the curious, see the docs here: https://docs.github.com/en/graphql/reference/enums#mergestatestatus on the mergeable state field values.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

Ah, thanks, I might add a link in the header to this Page later, but don't let that delay mergin this.

@beckermr
Copy link
Member

Yeah actually looking at this now we should be accounting for the other possible values for this field. Also it'd be nice to mark things in draft as draft with a gray box. Those prs are not meant to be merged even if they are green.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

This now handle all the cases, and has a legend at the bottom for each (mostly so we can see how it looks like), and the title= attribute on hover with the description if you don't want to scroll

@Carreau Carreau changed the title add status passing/failing/unknown in migration table Add status passing/failing/unknown/... in migration table Nov 25, 2025
@beckermr
Copy link
Member

Hmmmm. This PR (conda-forge/lsstdesc.coord-feedstock#29) is draft but not showing up as such. Is the bot metadata behind maybe or is there a bug?

@beckermr
Copy link
Member

Also I think we need to rename some of the states to something more intuitive. "dirty" really means "merge conflict" and "clean" really means "success". Maybe @jaimergp or others have opinions on more user-friendly names?

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

Hmmmm. This PR (conda-forge/lsstdesc.coord-feedstock#29) is draft but not showing up as such. Is the bot metadata behind maybe or is there a bug?

if a bug, it's likely a bug in cf-script, not here; this is pure-UI.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

Also I think we need to rename some of the states to something more intuitive. "dirty" really means "merge conflict" and "clean" really means "success". Maybe @jaimergp or others have opinions on more user-friendly names?

(I would suggest we bikeshed and the name/emoji/CSS/animation in a separate PR?)

@beckermr
Copy link
Member

I don't consider deciding on names bikeshedding since this is a UX enhancement and understanding the names easily versus having to look at a legend is part of the user UX. With the right names, we can probably remove the legend all together.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

Hmmmm. This PR (conda-forge/lsstdesc.coord-feedstock#29) is draft but not showing up as such. Is the bot metadata behind maybe or is there a bug?

It looks like Draft used to be a merged state, but now the merge state is separate, it could be draft but CI failing, or draft with CI passing. It make sens to not remove an enum variant.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

Ok, bikeshedding is maybe too string.
I think that having red/green buttons with description would be a well worth improvement and would prefer to not delay too long if it's to change names.

I have other PR to cf_script to add updated_at column, I can also send one that does:

+            if pr_json["PR"].get("draft", False):
+                node_metadata["pr_status"] = "draft"
+            else:
                node_metadata["pr_status"] = pr_json["PR"].get("mergeable_state", "")

If you wish, or add draft:bool as a separate key.

@jaimergp
Copy link
Member

I think we can come up with names that are succinct yet clear, and the badges still show the description on hover. No need for the legend (which is all the way in the bottom, so I didn't see it).

old new description comments
clean ready Mergeable and passing CI In green
unstable failing CI Mergeable with failing CI In red
behind behind Target branch is ahead Is this relevant? We only care about CI and mergeability.
blocked blocked The merge is blocked In red
dirty conflicting PR cannot be merged due to conflicts In red
draft draft The merge is blocked due to the pull request being a draft. In gray
has_hooks ready Mergeable with passing commit status and pre-receive hooks. Treat as ready, in green
unknown unknown The state cannot currently be determined. Maybe better to not show a badge at all.

@jaimergp
Copy link
Member

Also, I'd split the sorting logic to a different PR, because we already have some sorting logic in other sections of the website, and maybe it can be unified.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 25, 2025

If renaming and my understanding is correct, I would suggest

UNSTABLE -> [Failing, red]
BEHIND -> [Needs Rebase, Red]
DIRTY -> [Conflicts, Red] Orange maybe ?

BLOCKED -> [Blocked, Red], not sure what BLOCKED means

CLEAN -> [Passing, Green]

DRAFT -> [Draft, Gray], Should not exist anymore, Gray ? Or do we force Draft if the PR state itself is draft?
HAS_HOOKS -> [Unknown, gray] Should only exist for a few seconds/minutes while CI kicks in ?
UNKNOWN -> [Unknown, gray]

So

Red -> Needs (human) attention
Green -> Should be good
Gray -> IDK

@beckermr
Copy link
Member

BEHIND -> [Needs Rebase, Red]

We do not require a linear commit history on conda-forge, so it is not strictly true that this needs a rebase. This should be marked as green / passing.

@Carreau
Copy link
Contributor Author

Carreau commented Nov 26, 2025

Updated to hide the legend when not viewing the table, and make a status -> (text, color) mapping for easy tweak.

@Carreau Carreau force-pushed the migration-ci-status-and-sortable branch from f2d6762 to b1f7075 Compare November 26, 2025 17:59
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