The default Jenkins UI and UI related plugins
leave much to be desired if they are going to be used for bioinformatic analysis.
In my work with adapting Jenkins for use in biological image analysis and data processing, I have found the lack of any meaningful dynamic behavior and interactivity between UI components quite limiting.
Two points are especially painful.
- The ability to create cascaded dynamic choices, and
- The ability to multi-select options from a selection list
Now, if one spends enough time digging around the Jenkins plugin ecosystem you may find bits and pieces of this functionality but never completely standardized or functional.
Having spend over a week now dealing with the Jenkins dynamic parameter plugin I have discovered that although it is full of good intentions, it can't yet deliver its promise (cascading parameters and multi-select are both features of several snapshots, but not the main code, and the snapshots do not seem to work for me)
However, it does not support any tokenexpansion and the addition of MultiLevel (Cascading), Multi-Select in the newest plugin release is so cumbersome that basically multi-select is impractical for fewer than a few selections.
So if we will be building bioinformatic and computational analysis using Jenkins we need to address this U issues.
Essentially, we need a new, single, supercharged choice plugin (named Uno-choice if it originates from the BioUno project) to deliver on the following requirements:
- Ability to mutli-select (standard functionality) with selections generating parameter value as a comma delimited string of the selected choices
- Ability to use basic token/global and default parameter expansion
- Cascading, dynamic generation of content based on a parent parameter including support for 'Run Parameter' Type and another cascading parameter as parent
- Ability to generate choice options from property files similar to extended choice plugin (but with support for token expansion)
- Ability to generate choice options from groovy custom scripts or scriptlet
Having the Uno-choice plugin would greatly facilitate the R-plugin in support of more dynamic user driven analysis.
Here is a simple use case to illustrate this.
Selecting columns to plot in the R-Plugin requires that the user is able to multi-select one or more numeric columns. However, the diversity of bioinformatic data makes selection from a static list impractical. Each data set has its own set of numeric columns.
Thus the need of a dynamic, multi-select Uno-choice plugin!
Other ideas, comments?