JENKINS-37324 provided some of the infrastructure for displaying useful summaries of steps in visualizations like Blue Ocean, but mainly focused on sh steps and the like, and stopped short of providing useful summaries for some other commonly used steps. For example, you will still see General SCM or General Build Step, which are not helpful.

      Problems include:

      • Blue Ocean apparently does not check StepDescriptor.isMetaStep so as to display, for example, Fingerprinter.DescriptorImpl.displayName Record fingerprints of files to track usage in place of CoreStep.DescriptorImpl.displayName General Build Step when given fingerprint '*.jar'. Compare Snippetizer.QuasiDescriptor.
      • CoreStep, CoreWrapperStep, and GenericSCMStep should override argumentsToString to pass their delegate. (Originally automatic handling of metasteps was planned, but then dropped. Anyway pending JENKINS-37227 this would not yet work for GenericSCMStep.)
      • The default argumentsToString only handles steps passed a single argument, so even after handling metastep delegation, a call like archiveArtifacts artifacts: 'x.txt', fingerprint: true would not be described. It would be more sensible to check DescribableModel.getSoleRequiredParameter. Thus that step would be described as x.txt as a user would probably expect given a quasi-step description of Archive the artifacts.
      • Some build steps like JavadocArchiver still lack a @Symbol and @DataBoundSetter hygiene, but these are solvable on a case-by-case basis in plugins.

          [JENKINS-45101] Display meaningful summaries for metasteps

          Jesse Glick added a comment -

          Fixing the default argumentsToString to consider soleRequiredParameter of the model for the Step would probably make sense, even if that implementation needs to be copied in metastep overrides, since pwd tmp: true nonsensically returns true whereas it should return null like pwd() would. Similarly for sh script: 'git rev-parse HEAD', returnStdout: true. Then again, perhaps every step just needs to override this implementation and the default is more or less useless; certainly for writeFile we know we want to return the file parameter but this could not be inferred mechanically.

          Jesse Glick added a comment - Fixing the default argumentsToString to consider soleRequiredParameter of the model for the Step would probably make sense, even if that implementation needs to be copied in metastep overrides, since pwd tmp: true nonsensically returns true whereas it should return null like pwd() would. Similarly for sh script: 'git rev-parse HEAD', returnStdout: true . Then again, perhaps every step just needs to override this implementation and the default is more or less useless; certainly for writeFile we know we want to return the file parameter but this could not be inferred mechanically.

          James Dumay added a comment -

          Good catch jglick

          James Dumay added a comment - Good catch jglick

          Jesse Glick added a comment -

          Implemented enough for now. Leaving some more difficult corner cases untouched, and in particular not trying to do anything with checkout prior to JENKINS-37227.

          Jesse Glick added a comment - Implemented enough for now. Leaving some more difficult corner cases untouched, and in particular not trying to do anything with checkout prior to  JENKINS-37227 .

          Code changed in jenkins
          User: Jesse Glick
          Path:
          pom.xml
          src/main/java/org/jenkinsci/plugins/workflow/steps/CoreStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStep.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/CoreStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStepTest.java
          http://jenkins-ci.org/commit/workflow-basic-steps-plugin/b5b30ec451e2b9b7865c3e40cf8decd084cacc72
          Log:
          JENKINS-45101 Implement argumentsToString for step & wrap to look for a delegate configured with exactly one argument.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: pom.xml src/main/java/org/jenkinsci/plugins/workflow/steps/CoreStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStep.java src/test/java/org/jenkinsci/plugins/workflow/steps/CoreStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStepTest.java http://jenkins-ci.org/commit/workflow-basic-steps-plugin/b5b30ec451e2b9b7865c3e40cf8decd084cacc72 Log: JENKINS-45101 Implement argumentsToString for step & wrap to look for a delegate configured with exactly one argument.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          src/main/java/org/jenkinsci/plugins/workflow/steps/EnvStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/MailStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/PwdStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/SleepStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/TimeoutStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/ToolStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/WriteFileStep.java
          src/main/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashStep.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/EnvStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/MailStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/PwdStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/ReadWriteFileStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/ToolStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashTest.java
          http://jenkins-ci.org/commit/workflow-basic-steps-plugin/c77b341459e9ae2803ec7df00fc3732a3965d2ee
          Log:
          JENKINS-45101 More argumentsToString implementations.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/org/jenkinsci/plugins/workflow/steps/EnvStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/MailStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/PwdStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/SleepStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/TimeoutStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/ToolStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/WriteFileStep.java src/main/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashStep.java src/test/java/org/jenkinsci/plugins/workflow/steps/EnvStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/MailStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/PwdStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/ReadWriteFileStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/ToolStepTest.java src/test/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashTest.java http://jenkins-ci.org/commit/workflow-basic-steps-plugin/c77b341459e9ae2803ec7df00fc3732a3965d2ee Log: JENKINS-45101 More argumentsToString implementations.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          pom.xml
          src/main/java/org/jenkinsci/plugins/workflow/steps/CoreStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/EnvStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/MailStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/PwdStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/SleepStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/TimeoutStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/ToolStep.java
          src/main/java/org/jenkinsci/plugins/workflow/steps/WriteFileStep.java
          src/main/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashStep.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/CoreStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/EnvStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/MailStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/PwdStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/ReadWriteFileStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/steps/ToolStepTest.java
          src/test/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashTest.java
          http://jenkins-ci.org/commit/workflow-basic-steps-plugin/c5468bf465def5c2e4bc86e6e9faafa36c538eb4
          Log:
          Merge pull request #47 from jglick/argumentsToString-JENKINS-45101

          JENKINS-45101 argumentsToString implementations

          Compare: https://github.com/jenkinsci/workflow-basic-steps-plugin/compare/1cd4d63fb731...c5468bf465de

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: pom.xml src/main/java/org/jenkinsci/plugins/workflow/steps/CoreStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/EnvStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/MailStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/PwdStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/SleepStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/TimeoutStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/ToolStep.java src/main/java/org/jenkinsci/plugins/workflow/steps/WriteFileStep.java src/main/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashStep.java src/test/java/org/jenkinsci/plugins/workflow/steps/CoreStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/CoreWrapperStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/EnvStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/MailStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/PwdStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/ReadWriteFileStepTest.java src/test/java/org/jenkinsci/plugins/workflow/steps/ToolStepTest.java src/test/java/org/jenkinsci/plugins/workflow/support/steps/stash/StashTest.java http://jenkins-ci.org/commit/workflow-basic-steps-plugin/c5468bf465def5c2e4bc86e6e9faafa36c538eb4 Log: Merge pull request #47 from jglick/argumentsToString- JENKINS-45101 JENKINS-45101 argumentsToString implementations Compare: https://github.com/jenkinsci/workflow-basic-steps-plugin/compare/1cd4d63fb731...c5468bf465de

          Sam Van Oort added a comment - - edited

          jglick This was not provided out-of-box because Blue Ocean had agreed to provide the impls for the custom cases FYI.

          CoreWrapperStep/Metastep pretty output was broken by changes you requested, although initially supplied fully.

          Sam Van Oort added a comment - - edited jglick This was not provided out-of-box because Blue Ocean had agreed to provide the impls for the custom cases FYI. CoreWrapperStep/Metastep pretty output was broken by changes you requested, although initially supplied fully.

          Jesse Glick added a comment -

          Actually I had requested that the impl for metasteps be moved, not deleted. At any rate, it is in the metasteps now; at some future date we could introduce a convenience API allowing metasteps to share this implementation (particularly after JENKINS-37227).

          Jesse Glick added a comment - Actually I had requested that the impl for metasteps be moved , not deleted. At any rate, it is in the metasteps now; at some future date we could introduce a convenience API allowing metasteps to share this implementation (particularly after  JENKINS-37227 ).

            jglick Jesse Glick
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: