Skip to content

Added interactive navigation to extended tap results#29

Closed
judovana wants to merge 12 commits into
jenkinsci:masterfrom
judovana:hidePasses
Closed

Added interactive navigation to extended tap results#29
judovana wants to merge 12 commits into
jenkinsci:masterfrom
judovana:hidePasses

Conversation

@judovana

@judovana judovana commented Dec 13, 2022

Copy link
Copy Markdown
  • possibility to hide/show
    • passed/failed/ignored tests
    • diagnosticd details
    • individual diagnostic items
  • number is now direct url to itself

tested in firefox and chromium
The todo and bail out items ar enot covered, as I do nto have exmaple tap file with them

  • Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
  • Ensure that the pull request title represents the desired changelog entry
  • Please describe what you did
  • Link to relevant issues in GitHub or Jira
  • Link to relevant pull requests, esp. upstream and downstream changes
  • Ensure you have provided tests - that demonstrates feature works or fixes the issue

@kinow kinow left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Had a very quick look, and found nothing major! I'll run some tests when I find some spare time to work on the plug-in. Or if someone can test and confirm it works for them too, maybe include some screenshots, etc. That would be helpful. 🙂

Thank you for the PR!
-Bruno

Comment thread src/main/resources/org/tap4j/plugin/TapResult/index.jelly
@kinow

kinow commented Dec 13, 2022

Copy link
Copy Markdown
Member

CI failed but it was during the git clone stage. Kicked Jenkins, waiting for it to complete, but I guess the tests should run fine.

@judovana

Copy link
Copy Markdown
Author

Had a very quick look, and found nothing major! I'll run some tests when I find some spare time to work on the plug-in. Or if someone can test and confirm it works for them too, maybe include some screenshots, etc. That would be helpful. slightly_smiling_face

Thank you for the PR! -Bruno

Hmm, I may elaborate. Still the real action is the best :) Thanx for review!

@judovana

Copy link
Copy Markdown
Author

Yes, tests are passing. I hed messed up a bit with those whitespaces. I will double check tomorrow morning .it is late now here. Thaxn agai for quick review!

@judovana judovana force-pushed the hidePasses branch 3 times, most recently from 98de39d to c822d08 Compare December 14, 2022 07:14
@judovana

Copy link
Copy Markdown
Author

Hello! one more set of show/hide buttons, but otherwise I'm done. If yo do nto have cycles to try it out, will attach screenshots soon.

I'm afrtaid the plugin will need some dependecy bumps:( I tried to bump it to be able to build with all jdk8,11 and 17 but failed. Simple jenkins master bump of version did not helped, and when I started to bump also other deps, I ended in testfailures:(

@judovana

Copy link
Copy Markdown
Author

Fresh view:
01_fresh
the +/- "buttons" can be hidden, in case you need to copy results or similarly, by clicking to first +/-
02_clickedPlusMinus
when clicked on ok all passes disappear (another click would make them reappear)
03_clickedOk
when clicked on ok skipped all skipps disappear (another click would make them reappear)
04_clickedSkipped
the details can be collapsed by +/- button
05_clickedPlusMiusNextToJdk_security3_0
even individual lines of details may be collapsed
06_clickedPlusMiusNextToOutput
if you click to number, the url of page will adapt to the link directly to the test
07_clickedNumber43
if you open the link in new window, it will show directly the test with all details
08_openedUrlFromClickOn43
the "buttons" on right are cumulating several clicks in one - failed: show just list of failures
09_clickedFailed
failed details: show just list of failures with details
10_clickedFailedDetails
failed no details: will collpase individual details
11_clickedNoDetails

@judovana

Copy link
Copy Markdown
Author

Hello!

Is there any future for this PR?

@kinow

kinow commented Dec 22, 2022

Copy link
Copy Markdown
Member

Hi. Sorry end of the year means lots of deliveries at $work (not using the plugin at $work now, so merely a volunteer). Will review and merge when I find some spare time, sorry.

@judovana

Copy link
Copy Markdown
Author

Sure thing. You had just been supper quick with first reply. So I got confused. No worries, and good luck whatever you are doing!

@kinow kinow left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Sorry, had a bit of time to test it today, but mvn clean install failed for me and I didn't have enough time to troubleshoot it. Searching I didn't find a good link to explain how to fix it, so I will have to postpone reviewing this one.

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] java.nio.file.NoSuchFileException: /home/kinow/Development/java/jenkins/tap-plugin/target/classes/META-INF/exposed.stapler-beans
  	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
  	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
  	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
  	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)

@judovana

judovana commented Dec 27, 2022

Copy link
Copy Markdown
Author

unless I committed and pushed some pom changes which do not show, this is issue with to new jdk. See:

 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk mvn clean install -DskipTests
[INFO] Scanning for projects...
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:2.1 is missing, no dependency information available
[WARNING] Failed to build parent project for org.tap4j:tap:hpi:2.4-SNAPSHOT
[INFO] 
[INFO] ---------------------------< org.tap4j:tap >----------------------------
[INFO] Building Jenkins TAP Plugin 2.4-SNAPSHOT
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  9.966 s
JAVA_HOME=/usr/lib/jvm/java-11-openjdk mvn clean install -DskipTests
[INFO] Scanning for projects...
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:2.1 is missing, no dependency information available
[WARNING] Failed to build parent project for org.tap4j:tap:hpi:2.4-SNAPSHOT
[INFO] 
[INFO] ---------------------------< org.tap4j:tap >----------------------------
[INFO] Building Jenkins TAP Plugin 2.4-SNAPSHOT
...
[ERROR] java.nio.file.NoSuchFileException: /home/jvanek/git/tap-plugin/target/classes/META-INF/annotations/org.kohsuke.stapler.export.ExportedBean
[ERROR] java.nio.file.NoSuchFileException: /home/jvanek/git/tap-plugin/target/classes/META-INF/annotations/hudson.Extension
[INFO] 3 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.968 s
[INFO] Finished at: 2022-12-27T07:41:20+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project tap: Compilation failure: Compilation failure: 
[ERROR] java.nio.file.NoSuchFileException: /home/jvanek/git/tap-plugin/target/classes/META-INF/exposed.stapler-beans
[ERROR]   	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
JAVA_HOME=/usr/lib/jvm/java-17-openjdk mvn clean install -DskipTests
[INFO] Scanning for projects...
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:2.1 is missing, no dependency information available
[WARNING] Failed to build parent project for org.tap4j:tap:hpi:2.4-SNAPSHOT
[INFO] 
[INFO] ---------------------------< org.tap4j:tap >----------------------------
[INFO] Building Jenkins TAP Plugin 2.4-SNAPSHOT
...
ERROR] java.nio.file.NoSuchFileException: /home/jvanek/git/tap-plugin/target/classes/META-INF/annotations/org.kohsuke.stapler.export.ExportedBean
[ERROR] java.nio.file.NoSuchFileException: /home/jvanek/git/tap-plugin/target/classes/META-INF/annotations/hudson.Extension
[INFO] 3 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.628 s
[INFO] Finished at: 2022-12-27T07:42:30+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project tap: Compilation failure: Compilation failure: 
[ERROR] java.nio.file.NoSuchFileException: /home/jvanek/git/tap-plugin/target/classes/META-INF/exposed.stapler-beans
[ERROR]   	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
JAVA_HOME=/usr/lib/jvm/java-19-openjdk mvn clean install -DskipTests
[INFO] Scanning for projects...
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:2.1 is missing, no dependency information available
[WARNING] Failed to build parent project for org.tap4j:tap:hpi:2.4-SNAPSHOT
[INFO] 
[INFO] ---------------------------< org.tap4j:tap >----------------------------
[INFO] Building Jenkins TAP Plugin 2.4-SNAPSHOT
...
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.147 s
[INFO] Finished at: 2022-12-27T07:43:14+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:javadoc (default) on project tap: Execution default of goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:javadoc failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:javadoc: java.lang.ExceptionInInitializerError: null
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-javadoc-plugin:2.10.4
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy

The issue we observe on jdk11 and 17 is valid, and is caused by misaligned depndencies in pom.
I was solving it in all my plugins about year ago, and was quite a pain to hit the correct combination to make it work in jdk11 and up. Eg:
judovana/jenkins-report-jtreg@b4779c6
judovana/jenkins-report-generic-chart-column@70a7573
andrlos/text-finders-plugin@b3fa8fd

I can elaborate a bit in this direction, but it should be different PR.

Note: the project behaves identically with my changes in or out...

@kinow

kinow commented Jan 6, 2023

Copy link
Copy Markdown
Member

The issue we observe on jdk11 and 17 is valid, and is caused by misaligned depndencies in pom.

Thanks for investigating!

I was solving it in all my plugins about year ago, and was quite a pain to hit the correct combination to make it work in jdk11 and up. Eg:

Yeah, when I was working with Jenkins it was a lot easier to keep track of upcoming breaking changes. But now I work on plug-ins like this one on and off, sometimes with intervals of a year. A lot happens in that period, and normally this "lot" includes new checkstyle or spotbugs changes, new maven enforcer plugin rules, replace HTML tables by divs, move things in the UI, and other things added to the plug-in inherited build configuration that break the build 😥

Your PR looks to be in order, so I apologize as this means it will take a bit longer to be reviewed and merged, at least until I sort out my local build, @judovana .

Cheers
Bruno

@judovana

judovana commented Jan 7, 2023

Copy link
Copy Markdown
Author

Thanx a lot. No problems.

I will try to look into the dependency hell. I think I had already seen both 11 and 17 exception(s). It just needs good luck with version numbers :)

@judovana

Copy link
Copy Markdown
Author

Maybe we can merge it and release now? Pretty Please?

@kinow

kinow commented Feb 10, 2023

Copy link
Copy Markdown
Member

Maybe we can merge it and release now? Pretty Please?

The build is still not working for me and I haven't had time to try to fix it, sorry.

@judovana

Copy link
Copy Markdown
Author

It should be enough if you built by jdk8. Can you?

@kinow

kinow commented Feb 11, 2023

Copy link
Copy Markdown
Member

It should be enough if you built by jdk8. Can you?

Tested with jdk8 and the build is passing now. Once I find spare time (st. eulalia parties ongoing this weekend over here, then st. valentin and carnival… plus $work/life, sorry) will try to review it and if nothing's wrong, merge & release 🎉

@judovana

Copy link
Copy Markdown
Author

Sure thing :) Happy hacking!

@kinow kinow left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hi @judovana ! Got down with some 🐛 so had to stay home the whole weekend. Good opportunity to catch up with Open Source issues.

It had been ages since I last looked at this code, and seeing some headers with the date of 2010 brings back a lot of memories (but also reminds me how better this code could be, sorry! 🙇 ).

I left a few comments in the code, and had a go at testing the change. The functionality suggested works, but I think we could improve the user experience a little. See screenshots & comments below.

image

In the screenshot above, it is not immediately clear that the 1 ok, or failed can be clicked. At least we would have to add a cursor: pointer CSS style, I think.

TODO and Bail Out are ignored and cannot be hidden/displayed. Not sure if intentional.

image

The Nothing when active still displays the TODO element. I assume Bail Out elements will also be displayed.

Might be good to have a help icon explaining each option, especially the "failed details" and "no details". Took me a while to realize what they were supposed to do (as my example was rather simple).

There is no indication to the user of what filters are active or not. IMO instead of clickable text, it would be better to have a toggle element, a check box, etc.

Cheers
Bruno

Comment thread src/main/java/org/tap4j/plugin/util/DiagnosticUtil.java
Comment thread src/main/webapp/interactive.js Outdated
Comment thread src/main/webapp/interactive.js Outdated
Comment thread src/main/webapp/interactive.js Outdated
@judovana

judovana commented Feb 20, 2023

Copy link
Copy Markdown
Author

Hello! Thanx a lot for review!

  • bailed out/todo - They are currently indeed not implemented, becasue I lack tapset having them properly in.


      • If you provide me your testing tapset, I will add the missing functionality.
      • What weight they have? Are thy more close to failed, or to passed; aka how much should user be interested to them? To me, the top level view is all run. If so, then i need to see what failed, and idealy traces only.
      • this will be done as separate commit. it can be part of this PR, but do not need to be.
  • ternary/if+else and replace x String.format


      • Ternary is awesome thing, but I would say lets use it as sparse as possibly.
      • Similarly format x repalce are usually metter fo taste, where I incline to replace, considering it a bit more readable out of the glance
      • Unless you insists, I would like to keep this part of the code as it is.
  • thanx a lot for pointing out global pollution . I definitely agree on fixing it, and will fix it. I agree this is blocker for this PR and I'm sorry Iincluded it.


      • Thanx a lot for reminder and example! It save me some dust swaping out of unused (read JS:) part of my brain

@judovana

judovana commented Mar 6, 2023

Copy link
Copy Markdown
Author

Hello! Time for som eopensource youa re saying? Here it is - major showstopper of global polution shoudl be fixed.

I'm ok with merging, and adding bailedouttodo later once you provide the tap file.
If I have overlooked anything, please point again.

How do you see it?

Double thanx for review!

@kinow

kinow commented Mar 16, 2023

Copy link
Copy Markdown
Member

How do you see it?

Busy with projects at $work, but this PR is on my GitHub notifications, sorry for the delay! 👍

@judovana

Copy link
Copy Markdown
Author

@kinow happy to see you survived the "some 🐛" , was startig to be afraid:)
As promissed earlier, I looked a bit into the jdks compatibility - #30 but therare really ancient lines in tap set plugin!

@kinow

kinow commented Mar 16, 2023

Copy link
Copy Markdown
Member

but therare really ancient lines in tap set plugin!

That's unfortunately true!!! (/me hides) 😄

@judovana

judovana commented Apr 3, 2023

Copy link
Copy Markdown
Author

"and while they discussed, my beard grow long and grey, then I found they have not discussed, they played pokeemons all that long time"
--judovana

@judovana

judovana commented Nov 6, 2023

Copy link
Copy Markdown
Author

If I click on "not ok", that hides failed tests, but keeps the Bailed out test. If I click again on that same option, it hides failed tests (it toggles the values). If I click on "show: failed", then it show only failed, and the bailed out test. This is an inconsistency

That was intentional. Where the first set - with numbers, represent direct actions above individual types of results, the second set, behind "show:" represents workflow - where you usualy first wish to enumerate failures, then to see theirs details, and then again hide the traces, but keep them in listing mode, so you can investigate on demand.

The "show:" donot work as toggles, they are setting up the view. To reset it, you can use nothing/all or another view. The views are still affected by the "togles" (first set with numbers).

The "toggles" first set, may be combined. The "views", second set, always reset to defined state.

I would liek to keep this functionality, as that is why I designed it. However I will redo the GUI.

resulsts as there were originally (with numbers)
toggle:                                                                                   views:...

eg:

2 files	109 tests, 56 ok , 4 not ok , 47 skipped , 2 ToDo , 43 comments , 1 Bail Out!
toogle: ok | not ok | skipped | todo| commetns | bailed out | +/- controlls	                     set view to:  failed / failed details / no details / nothing / all

File: ...

with

There is no indication to the user of what filters are active or not. IMO instead of clickable text, it would be better to have a toggle element, a check box, etc.

in mind

wdyt?

@judovana judovana force-pushed the hidePasses branch 3 times, most recently from 4896960 to 6654e6a Compare November 8, 2023 13:42
@judovana

judovana commented Nov 8, 2023

Copy link
Copy Markdown
Author

I used the same heredoc scripts from the previous review, with no modifications. I actually already had the job configured, which was handy to review this PR. Apologies for not sharing the code & scripts, I saw you asked for it in another comment a long time ago. Here's what I have in my job:
...
Thanx, it was helpful. In meantime, I had generate dmy own artificial tap files, and also I ahd used it, and tested in production on the tapset we get ftom AQAvit tapsets. (quite huge and compelx one).

Maybe we should make one line with the summary of the results (number of files, number of tests, number of OKs, number of Not OKs, etc.), and another line with the "Filters".

done

If I click on "not ok", that hides failed tests, but keeps the Bailed out test. If I click again on that same option, it hides failed tests (it toggles the values). If I click on "show: failed", then it show only failed, and the bailed out test. This is an inconsistency\

explained in #29 (comment)

There is no indication to the user of what filters are active or not. IMO instead of clickable text, it would be better to have a toggle element, a check box, etc.

Fixed. The links are now toogle buttons with on/of and mixed state. The mixed state is necessary, as you can click to "show all" and then user hide some manually. In that moment, the button move from on/of to middle mixed state.
Also the buttons disbales themselves if there is no family of tests to be treated (eg no bailed or no skipped...)

The screenshot above has hidden elements, but you are not able to tell which ones, without doing some math and applying some logic. We can probably do better by using HTML elements like radio or check boxes instead. That means we could share screenshots of the test results filtered, and whoever looked at that would be able to tell which filters we used.

I had fixed like this: once you click some filter, the buttons realign themselves, so they are properly on/off (no middle state can happen here) as filter set it up

From the pull request template, “ Link to relevant issues in GitHub or Jira”, it needs a JIRA issue.

For features, jiras are optional. Do yuou really insists for creating "jira just for jira", when there is all info and history and conversation in this PR?

And also “Ensure you have provided tests - that demonstrates feature works or fixes the issue”, which I learned recently in Active Choices, thanks to @rahulsom 's pull requests. I can provide the basic changes in the TAP plug-in to have a similar test harness with selenium, then someone would have to write the tests to cover these changes (after writing the first test the others should be fairly easy, I think).

If you import the selenium suite, I will be glad to add tests. But, please, do not let it block this pr.

When I hover the "no details" option, I see "hide details of each row". Reading that, I thought the "Description" would be hidden.

From what I may say, your tap file do not represent the feature. In tap files - at least as tap plugin is visualizing it, are two types of messages - the "title", which is the one you see in your tap file and view. That is followed by directive. As that is part of the title row and have directive, I had intentionally left it in.
Then there are details. There can be several details, and each of them renders special row. Each detail have its title and its body. The body is actually span over two TD table cell elements. The "failed details" and "failed no details" operates only over those second set of details.
I will attach one of the tap files I'm using.
The old links - new buttons, now had been enhanced for two more buttons, which represent both those different messages types. You will see the difference of betheirs behavior. Note, that you may not like "details row" behavior under some circumstances, but to fix this, would quite a rework of original table structure, which I can not recommend. Besides, it is really just ocasional glitch, and easily workable by user.

I click on that option, then I see the failed test, and the bailed out test. Not sure if that was the intention of that filter.

Correct. As I personally never met bailed out tests, I was unsure how to proceed with them. I understand them as special - critical - case of failure, thus they are shown always, unless you specifically hide "bailed out tests" (it was link before, it is button now)
if you wish, I can handle them as any other failure, but currently I do not see reasoning for that.

There might be a better way to handle showing and hiding options, instead of having to have multiple set's, and show* functions. I will have a think about it too.

As discussed, this is no show stopper. I'm aware about pure css show/hide https://dev-bay.com/css-show-hide-div-without-javascript/ , and I actually like to use it:
https://github.com/jenkinsci/report-jtreg-plugin/blob/0a49954ddb05d75081153e7b7b9a8ed922402b8d/report-jtreg/src/main/resources/io/jenkins/plugins/report/jtreg/BuildReportExtendedPlugin/index.jelly#L62 ; but this solution have its limits, and I'm not recommending it for this usecase.
Then there is new "details" element, which I'm not familiar with, but from docs (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details) it have same clumsiness as css solution..

There is an option that I don't remember from the previous reviews (maybe I didn't see it before), which hides and shows the "show" filters.

Yes. That is the +/- "button". It have the new shiny shape, better tooltip, and remains toggled, if used. I hope you will like it :)

If I click on that, the "show failed / failed details...." options are gone. Click again, and they are back. Which looks OK. But the description of each test also includes a +/-, but clicking it nothing happens?
There is actually an error in the browser console.

Uncaught TypeError: el is null
showHideOne http://localhost:8080/jenkins/plugin/tap/interactive.js:84
showHideRowOne http://localhost:8080/jenkins/plugin/tap/interactive.js:56
onclick http://localhost:8080/jenkins/job/test-tap1/7/tapResults/:1

Right. That was error. Fixed now. Yet again, it was specific to yours tap file, not the "big real one" I'm attaching. But I'm glad it was hit, and thus fixed.

If I click on Skipped, the test with the TODO directive is not toggled (I believe both TODO and SKIP are valid skipped modifiers for tests).>
(I clicked on Skipped in the screenshot above; it also doesn't account for that one in the tally results.)

Simialrly as with bailed. failed/bailed and todo/skipped have each theirs own button. Is it ok?

Please squash the commits; I will prepare some changes, and rebasing this PR onto master will be a lot easier with a single commit.

As written a bit earlier, I will be doing individual commits, and the PR will be squeezed/squashed during merge. Ibelive it is good practice, and it is making life easier for both reviwere and contribnutor.

I will start updating the plug-in code to clean up some old mess, and catch up with what's new in Jenkins since the last time I looked at the code (it will mainly use active choices as reference). It will t> ake some time, so you should be able to work on the feedback provided here.

Where this is heavily necessary, please postpond it until this PR is in. To keep re-basing bigger changeset over moreover robotic reformatings, refactroings and re-spotbugging is energy draining.
I was not checking whether the master is now passing - newly introduced (in this project) - spotbugs, but my branch is not. If I'm the casue of new spotbugs, I will elaborate, but as far as Ihave seen, the spotbugs issues were from all over the code.
please Please PLEASE, really do not fix it while this PR is in progress. That would suck remaining spirit out of me. Once it is merged, I'm even volunteering to fix spotbugs findig afterwards.

TYVM!
J.

The ball is in your hads now!
Attached is my "big tap"
judovana.tap.zip

@judovana

judovana commented Nov 8, 2023

Copy link
Copy Markdown
Author

motivation screenshot: https://snipboard.io/4RTEs7.jpg

@judovana

judovana commented Dec 7, 2023

Copy link
Copy Markdown
Author

hello! its december! is still end of the year valid deadline?-)

@judovana

Copy link
Copy Markdown
Author

ping please?

- possibility to hide/show
   - passed/failed/ignored tests
   - diagnosticd details
   - individual diagnostic items
- number is now direct url to itself

tested in firefox and chromium
The todo and bail out items ar enot covered, as I do nto have exmaple
tap file with them
They can be shown/hide separately, but otherwise they follow ignored
tests
in mass fields, coments follows passes and bailed out failures
The buttons to show/hide content are now on separate line
the toogle state represent elements state (all viisble, all invisible
and mixed content)
Buttons are shown also for non direct choices liek detaisl.

Old bug with space in class enforced to be fixed (all spaces now repalced by _)
Old bug with NPEs on element by id or in missing style fixed
as fixButtons was called aprox 15x in set-view shortcut methods, there
was slight (up to 0.5s) delay glitch after click.
Added extendedTapsetInteractives-wide local variable wich can disable
repeated fixButtons calls
@judovana

Copy link
Copy Markdown
Author

@kinow 2024! Happy new year! ping please?

@judovana

Copy link
Copy Markdown
Author

@kinow hello!
I can not comment below #36 (comment) and #36 (comment) But I have to clear up some assumptions:

First of all please s/they/he... Its jsut me, none else, and I'm quite normal "he".

Hi @NotMyFault I think I replied in another issue (in another org?).

It is still the same org - jenkinsci - I had requested first time after 9 months of inactivity in project, with good intention to take over plugin I depend on where maintainer is gone. As part of the issue you were contacted, and we agreed on somehow finishing it. Yet you disappeared again.@MarkEWaite suggested to wait a two weeks, and then grant me the permissions to keep plugin viable. I had waited 3 more months before becoming unpleasant again, and bothering everybody with my tinny PR again.

Now, be sure that I do not want to maintain voluntarily any more legacy open-source projects. But everything is better then spend rest of my life in fork. The goal of opensource projects gathering under various foundations is, that they do not die. If maintainer leave, the organization can grant another willing soul a maintainer ship. Obviously jenkins government board is not exactly united in this.
Also note, that I fully accept the reasons why you do not want to have me as comaintainer, and while the plugin is maintained and live, I do not tend to cross the border. But once it drop to become forlorn again (and If I will need it again), I will ask again.
And be sure that I fully honour that reviewer's time is much more valuable then contributor's one.
If you look to history of PRs.. it do not give you good credit. All ended like mine. Reviwed, and then left rotten by you so long the contributors quit (or live in theirs fork for ever)

the answer was no based that they requested that in order to get their pull request merged. I replied to the pull request (this one, I believe, #29) with a feedback on what I expected to have so that we could merge it.

Not only that. The plugin was terribly outdated and literally unsecure. As I already said, I inherited the team who needed that - on public instance - so it was obvious it have to be acted. First things first - the js/html navigation. It was no pleasure to do, but the plugin as is, is useless on big test bases with. I deal with tesbases of 100000 tests and more. The usability of tap plugin ends somewhere around 100(see bottom)
I would be delighted to improve tap plugin enough (jenkins core, XSS...), if there would be any response from you. But with delays between rounds in length of half a year? Sorry:(

Luckily for us all, in October and December you actually worked on that, so at least something positive come out.
However, it is terribly impolite to do bigger changes in code, which was dead for ages, while there is open bigger PR, and thus forcing contributor to constantly adapt and rebase. In many communities it can be even considered insult.
NVM. my PR is no shiny, and the rebase was not that painful. Although I literally asked to not do that, you had not even bothered to reply.

There was a reply near x-mas break,

I had replied - fixed all you wanted - 8.11.2023 That is quite long before christmas global outage.

but I saw that we would still need to discuss more about it as they had a different opinion on some points (which is fair, and they even included screenshots and tried to explain better): #29 (comment)

@kinow, that is perfectly ok. If you would just drop a note "I saw that, it will need tuning", I would wait much more peacefully.

Now, my reason for saying no there (and I am fine saying that here too), is that @judovana did not send other meaningful contributions to the plug-in, nor assisted with issues, and I am not sure if they know the plug-in API, or have other experience with Jenkins plug-ins.

Maybe I would, maybe not - but do you think there is any motivation left, when we communicate on time base like Voyger->Earth->Voyger ...Oh wait.. that is much faster :)
Still I honor your decision. It was wise and I would not do differently, but I would never leave my open project so forlorn, and I would welcome any contrbutor and do my best to make them feel welcomed.

Alas the tap-plugin code is quite dated, and I would prefer to add other contributors who are aware of Jenkins API and release process (which I am not following very closely to be honest) and with whom communication is easier (see the other issue where you can see that there were communication issues where there was a demand for open source volunteer work to be done asap, with the messages were borderline rude, but I believe it's due to both of us living in other cultures or speaking other languages).

If I ever said something what made you (or anybody of other from jenkins community) then I'm sorry and thanx for your acceptance of cultural mishmash.

This is the second time this is requested, and I will maintain that I do not support they to be added as contributor for now. No objection if in the future that happens 👍

Thats perfectly ok, but you must accept your responsibility and become reliable maintainer again. As I wrote above - I really do not want to inherit more legacy stuff. But everything is better then fork. Every member of the community have right to contribute. If overarching organization can not fill that gap of unresponsive owner, then forks starts appearing, fork wars starts, and there is no benefit nowhere until one of the forks gain wide acceptacne over original which then dies forgotten. In meantime many time, resources, bugfixes and features are lost.

I will keep working on bugs first, and then will add his feature when we have agreed on how it should work, in an accessible and simple way for users (and also easier to maintain), and perhaps some basic tests (which I have to check if these were added -- otherwise I can help with that).

I'm looking forward for your feedback and ideas (really, a lot I do). But please, have some mercy and do not leave my waiting in queue like the most minor citizen, while you are doing other stuff in the same codebase. Or beeing silent for months and months without saying a word.

@judovana may file other requests to become a maintainer, but I don't think that's a good way to get their issues merged or to call attention to old issues (go through scriptler, git plugin and you will find lots of older PR's and issues -- that happens).

I have to highlight - that is not just because of the PR, but also due to the terrible outdated codebase. You have worked on that in past, so thats much better. But yet again - you are forcing me to keep using fork in production, without any reasons. The PR is fixing severe issue in usability.

(There's also a security XSS issue that needs to be fixed, that's way higher priority than PR's for new feature

That is a year old CVE, and usually only https://github.com/jenkinsci/nested-view-plugin/blob/27c08752b32e6a7fa1616db05653a67bc91f462b/src/main/resources/index.jelly#L1C1 so I'm not sure why you are taking that as deffender.
If I take this PR (#29) by word, then it is fxing no less important thing. Only because year ago, there was quite correct communication, I was not bothering to fill the issue. Also I saw the project quite dead so rather prepared the PR with worst option to live in fork.
The issue would be "tap plugin is useless on bigger number (100+?) of tests and lack any basic in-doc linking", which is severe issue. Just try the walk through the failures in the tap file attached here. Without some html/js navigation it is terrble pain and that s the smallest tap file I found.

-- if someone were to help with those, with updating the plug-in API, etc., and communicating well, then I would be the one pushing for that person to become a co-maintainer!)

Can you be little bit more specific (the xss is private bug). I had already offer you a help (and by PR#30 I started to work on that), but no one sane want to have several PRs to half-dead project (last commit 5 years ago before I stepped in, 4 rotten PRs...), opened.

@judovana

Copy link
Copy Markdown
Author

Thanx for merging the fix to the CVE! I will rebase this one to apply on your changes.

@judovana

judovana commented Apr 29, 2024

Copy link
Copy Markdown
Author

Rebased in #38

all comments and screenshots remain valid in time of creation of #38
Original branch persisted as https://github.com/judovana/tap-plugin/tree/hidePasses4

@judovana judovana closed this Apr 29, 2024
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.

2 participants