Skip to content

Conversation

@janfaracik
Copy link
Member

@janfaracik janfaracik commented Sep 29, 2025

This PR adds the build cause to the details bar on the experimental run UI. There's quite a few variations of this:

Started by a user

image

Upstream

Screenshot 2025-09-29 at 10 21 28

Branch indexing

image

(requires jenkinsci/branch-api-plugin#555)

Remote cause

image

There's a fallback for causes that don't implement detail.jelly - if there's a cause you want to see demonstrated in this UI let me know.

I've also updated the ordering for the details, so that it follows the same order as ordinals, in which the higher the number the sooner the object will appear.

Testing done

Proposed changelog entries

  • Show build cause on experimental build UI

Proposed changelog category

/label web-ui,rfe

Proposed upgrade guidelines

N/A

Submitter checklist

  • The Jira issue, if it exists, is well-described.
  • The changelog entries and upgrade guidelines are appropriate for the audience affected by the change (users or developers, depending on the change) and are in the imperative mood (see examples). Fill in the Proposed upgrade guidelines section only if there are breaking changes or changes that may require extra steps from users during upgrade.
  • There is automated testing or an explanation as to why this change has no tests.
  • New public classes, fields, and methods are annotated with @Restricted or have @since TODO Javadocs, as appropriate.
  • New deprecations are annotated with @Deprecated(since = "TODO") or @Deprecated(forRemoval = true, since = "TODO"), if applicable.
  • New or substantially changed JavaScript is not defined inline and does not call eval to ease future introduction of Content Security Policy (CSP) directives (see documentation).
  • For dependency updates, there are links to external changelogs and, if possible, full differentials.
  • For new APIs and extension points, there is a link to at least one consumer.

Desired reviewers

@jenkinsci/sig-ux

Before the changes are marked as ready-for-merge:

Maintainer checklist

  • There are at least two (2) approvals for the pull request and no outstanding requests for change.
  • Conversations in the pull request are over, or it is explicit that a reviewer is not blocking the change.
  • Changelog entries in the pull request title and/or Proposed changelog entries are accurate, human-readable, and in the imperative mood.
  • Proper changelog labels are set so that the changelog can be generated automatically.
  • If the change needs additional upgrade steps from users, the upgrade-guide-needed label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).
  • If it would make sense to backport the change to LTS, a Jira issue must exist, be a Bug or Improvement, and be labeled as lts-candidate to be considered (see query).

@comment-ops-bot comment-ops-bot bot added web-ui The PR includes WebUI changes which may need special expertise rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted labels Sep 29, 2025
@janfaracik janfaracik marked this pull request as draft September 29, 2025 09:22
@janfaracik janfaracik marked this pull request as ready for review September 29, 2025 09:29
@github-actions github-actions bot added the unresolved-merge-conflict There is a merge conflict with the target branch. label Sep 29, 2025
@github-actions
Copy link
Contributor

Please take a moment and address the merge conflicts of your pull request. Thanks!

@timja
Copy link
Member

timja commented Sep 29, 2025

with note: null looks wrong, is that a pre-existing issue? the code should handle an absence of a note and null should never be displayed to an end user.

@github-actions github-actions bot removed the unresolved-merge-conflict There is a merge conflict with the target branch. label Sep 30, 2025
@janfaracik
Copy link
Member Author

with note: null looks wrong, is that a pre-existing issue? the code should handle an absence of a note and null should never be displayed to an end user.

Hmm a little odd, RemoteCause#getShortDescription handles this but its Jelly doesn't use it 😕 I can't think of any reasons not to use it so I've changed it to use it.

Copy link
Member

@timja timja left a comment

Choose a reason for hiding this comment

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

Tested a couple of basic ones locally works good!

@timja timja requested a review from a team September 30, 2025 15:55
Copy link
Member

@NotMyFault NotMyFault left a comment

Choose a reason for hiding this comment

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

Thanks!

@timja
Copy link
Member

timja commented Sep 30, 2025

/label ready-for-merge


This PR is now ready for merge, after ~24 hours, we will merge it if there's no negative feedback.

Thanks!

@comment-ops-bot comment-ops-bot bot added the ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback label Sep 30, 2025
@novinxy
Copy link

novinxy commented Oct 1, 2025

Looks wonderful! Much cleaner UI <3

What about Generic Webhook Trigger
Does this change supports this case ? It has quite large install share

And how does it replace situation when there is cascade of triggers ?
e.g.
image

Will there be some dialog/subpage where we can check such pipeline relations ?

@janfaracik
Copy link
Member Author

Looks wonderful! Much cleaner UI <3

What about Generic Webhook Trigger Does this change supports this case ? It has quite large install share

Thanks! I'll take a look :)

And how does it replace situation when there is cascade of triggers ? e.g. image

Will there be some dialog/subpage where we can check such pipeline relations ?

It doesn't currently support a cascade of triggers, but it could definitely be updated to show a dialog of them on click.

@timja
Copy link
Member

timja commented Oct 1, 2025

Given this is experimental we'll iterate it based on feedback so merging now.

@timja timja merged commit 4c310c5 into jenkinsci:master Oct 1, 2025
17 checks passed
@timja timja deleted the add-experimental-build-cause branch October 1, 2025 15:28

<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout">
<j:forEach var="entry" items="${it.causeCounts.entrySet()}">
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure we really want to show multiple here, probably better to show first and then hover / click to be able to get to all of them whilst indicating there's more than one:

image

Copy link
Member

Choose a reason for hiding this comment

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

Although this one is an interesting one:
image

Showing replayed is nice I think although it could do with a refresh as the spacing is off

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

Labels

ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted web-ui The PR includes WebUI changes which may need special expertise

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants