FYI just did a "transfer of ownership" of the github repo to: https://github.com/jenkinsci/blueocean-plugin https://github.com/jenkinsci/jenkins-design-language
old links redirect to there, and they are now fully operational. On Friday, May 27, 2016 at 8:44:06 AM UTC+10, Michael Neale wrote: > > I just opened https://issues.jenkins-ci.org/browse/HOSTING-98 for the > so-called "blueocean" plugin. > > You may have heard this announced via the blog post > https://jenkins.io//blog/2016/05/26/introducing-blue-ocean/. If not, I'll > give you a few minutes > > to have a read... > > Just kidding, who has time for that, let me explain. No, there is too > much, let me sum up: > > https://www.youtube.com/watch?v=GZYhDMCOyww > > (above is from the movie princess bride, more seriously, if you haven't > seen this movie you really should, kind of urgently) > > Blue Ocean aims to be a plugin (well, a few moving parts delivered as > plugins) that provides an extensible "next gen" user experience. Jenkins > GUI has been around for 10 years now, and can be hard to extend and > modernise (many of us have tried). > > Its initial focus is on "pipeline centric" and freestyle views for the > busy developer, and is very much a work in progress. > > The interesting bits for us developers: > > Blue Ocean is based on ES6 > <https://medium.com/@rajaraodv/5-javascript-bad-parts-that-are-fixed-in-es6-c7c45d44fd81>, > > Server Sent Events > <https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events> > > (realtime notifications), React.js > <https://medium.com/@rajaraodv/5-javascript-bad-parts-that-are-fixed-in-es6-c7c45d44fd81> > > for component model and gulp/npm <https://www.npmjs.com/> build chain, > but wired in via the already in use jenkins-js modules > <https://github.com/jenkinsci/js-modules> (this means there isn’t a need > to be familiar with the whole js toolchain unless you want to be, and mvn > install takes care of things normally). > > Both client side (stuff in browser) and server side - are just Jenkins > plugins. The server side uses the usual Jenkins web middleware (yes, > stapler) and extensions/extension points. > > A fair bit of head scratching was done to come up with an > “<ExtensionPoint>” concept for blue ocean client side, however it was worth > it as it means that plugins for the new UX can be delivered as normal > Jenkins plugins but with js componentry. Jenkins serves up these plugins to > the web browser so extension points in Blue Ocean pages can be fulfilled by > any plugin offering those extensions (GUI extension points have names). > This includes things like adding a new “route” for a new page to host a > feature, or could be augmenting an existing page or component. A sample > plugin and demo of it is here: > https://github.com/cloudbees/blueocean-sample-pipeline-result-ext-plugin. > > Extensions can be isolated in failure this way - so a bad bit of > javascript doesn’t brick a whole page. > > Blue Ocean when installed currently provides the new UX on the /blue top > level route in Jenkins, so the classic GUI lives alongside it. The new GUI > (markup, js) that is delivered via a fresh set of markup and JS bundles, so > it doesn’t conflict with any existing GUI. > > The UX model in blue ocean is more of a shift to what used to be called > “client server” but is now a “single page app” (kind of), using pretty much > standard React.js patterns (it is hoped that while React.js is the glue of > blue ocean, plugin authors don’t have to be an expert in it, and could use > something else to deliver their front end functionality). There is a server > side API plugin called “blueocean-rest” which provides a http/REST-like api > that helps drive the GUI (it too is extensible, but it just builds on stuff > already in Jenkins) - it has a fairly neat README explaining the API as it > is right now. You could describe this api as being a “BFF” pattern for the > front end (see http://samnewman.io/patterns/architectural/bff/) > > > It’s still very early days obviously, but if you are interested take a > look at https://github.com/cloudbees/blueocean (as soon as HOSTING ticket > is resolved, development will move to the jenkinsci org’s fork of that > repository). It’s a multi module project (blueocean-plugin is the > aggregator). The “js-extensions” module is the middleware that makes the > new ExtensionPoint stuff work. > > There is also the https://github.com/cloudbees/jenkins-design-language > repository (once again, will be forked into jenkinsci) which contains > visual assets, reusable components and tries to codify a standard look/feel > (what is a design language <https://en.wikipedia.org/wiki/Design_language>). > One thing front end developers have found useful when building components > is storybook > <https://voice.kadira.io/introducing-react-storybook-ec27f28de1e2>. > > > > > If you are interested in talking about this, we are using #jenkins-ux on > freenode irc (hopefully there is someone around most times), and also if > you post to this dev list, please use [Blue Ocean] as the topic prefix, so > the long suffering subscribers are able to filter out threads they are not > interested in. > > > There will be a blueocean “component” in JIRA for raising issues against > once the HOSTING ticket is taken care of. > > Here > <https://docs.google.com/presentation/d/1dbaYTIGjGT9xX1JnWnaqjMumq94M9nGwljfMQaVtUFc/edit?usp=sharing> > > is a presentation on front end development with blue ocean for those > interested in looking a bit deeper. > > One again, the section on the blog post is worth reading, especially for > developers > https://jenkins.io//blog/2016/05/26/introducing-blue-ocean/#jenkins-design-language. > > And the source code (for now, until migrated to jenkinsci org): > https://github.com/cloudbees/blueocean > > See you around #jenkins-ux (freenode) hopefully! > > Cheers. Mic. > > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/43e3dd57-236e-4c70-9e43-cd09cf19490e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
