There are a few changes being proposed/planned for Jenkins Core that will require some UI changes e.g.:
- Unbundling plugins. See dev list thread. The UI changes here would be a new "Plugin Selection Wizard" to help new users of Jenkins get up and running quickly, filling the gap left after removing the currently bundled plugins.
- Hopefully making improvement to the config pages ala what KK and Gus Reiber are doing on the config-ui-changes branch.
In order to implement these changes as hoped, we're going to need to use client-side JavaScript (better UX etc). At the moment, in Jenkins, JavaScript is a bit of a mess. It would be nice to start addressing this problem in some way under the assumption that, going forward, we can make more use of client-side JS for better UX, but do it in a more maintainable way (Vs everything being in hudson-behavior.js).
Some of us at CloudBees have been developing and using some patterns and tools to help build Jenkins plugins that have GUI elements that make better use of modularized JavaScript (using CommonJS modules etc). We think it has worked quite well and would be keen to reuse some of the same techniques and tools in Jenkins core if possible.
One of the tools we developed to help us assemble these JavaScript components is a build time utility we call
jenkins-js-builder. It's an NPM utility for assembling CommonJS module "bundles", built on
Gulp,
Browserify and more.
My question .... would there be community objection to introducing something like this into Jenkins core? We're not trying to suggest it as a silver bullet for all JS related issues, but we do think it would help improve things.
Regards,
T.