 All right, we are live Hello everyone Welcome to the screencast on blue ocean. I'm Liam Newman and and as a long-time user, I'm very excited to about blue ocean and to have James DeMay with us today He's gonna talk about Blue Ocean 1.0 Take it away James Good day. Thanks. Thanks Liam. So I'm here to talk to you today about the Blue Ocean 1.0 release Just before we begin, I just want to tell you a little bit about me So yeah, I'm James DeMay in Sydney, Australia I'm community leader for the Blue Ocean project, which is the new user experience for Jenkins And I'm also director of product management at cloud bees I don't let that title for you. I do write code Occasionally and I've been told it's okay So I've been building software development tools for about 10 years now I've been at cloud bees and working on Jenkins for almost two years Wow, some flies and before that working at another large company Where it worked on a kind of similar development tool But really it's my mission in life to build really great developer tools for So that I guess You know developers can you know stop worrying about the tool so much and get back to doing what they do best Which is writing code So for me any tool that kind of gets out of a developer's way and gets them productive really quickly is The best kind of development tool So I mentioned Blue Ocean, so if you haven't heard about Blue Ocean yet It's not just a new user experience for Jenkins. It's a whole new way to use Jenkins So what we mean by that is that you know, we could have gone ahead and just updated the styling of Of Jenkins as you know in and love today However, you know given the opportunity we thought well, you know Jenkins was built over 10 years ago in software You know the practice of software engineering has changed dramatically Since the inception of Jenkins and so have the practices So we really saw a new UI as a really an opportunity to have a look at the whole way that Jenkins is used and What that meant was that our mission here was to you know So the practice of software engineering is constantly changing. So If you think back to even five years ago you know Containers and Docker and those sorts of things really want to even on the scene I mean we were dealing with you know people running VMs inside a virtual box or VMware and That technology just didn't exist and the capabilities that you know that we all That we all get out of it today, you know, it just wasn't possible and Even sort of you know Little bit further away than that. It's you know distributed virtual control systems You know when a thing when Jenkins was created So things have moved on Significantly and I think what's really important here to recognize is that the really truly relevant tools the ones that developers Will always keep it in their toolbox of the other tools that Integrate with all of the new the new things and and take You know, you know exercise the benefits of of those new tools In a way that you know Sorry, I'm gonna start again. So sorry So I guess like the best tools and the ones that developers keep in their toolbox are the ones that are the most relevant and what that means is That the kinds of tools that people use tend to be and love tend to be the tools that integrate with all of their other stuff So and and kind of fit seamlessly into whatever they're doing So our mission here really for Blue Ocean is not just to create a new user experience for Jenkins Today but it's actually as a sort of a constant renewal of that that developer experience So when something when ultra docker or ultra git comes along in the future You know Blue Ocean is gonna be there making sure that you're productive with those those tools or if a new practice comes along You know, we had continuous integration and now we're working You know a lot of people are talking about continuous delivery If that new practice does come along Blue Ocean is gonna go there as well So really what this means is that Jenkins is going to be constantly reinvented and Made relevant for whatever Whatever wherever our industry is going and when we were thinking about Blue Ocean It was really around this, you know practice of continuous delivery that we thought was very important to kind of You know to kind of take a nod to and to deal with it, you know in a very native way, so Before Blue Ocean really the practice of continuous delivery was for the experts and I think You know, we've taken the opinion that it really shouldn't be for the experts And so what I mean by that is if you wanted to create your pipeline For you, you know, you continuous delivery pipeline before Blue Ocean You have to learn a scripting language. You had to be a Jenkins expert or You had to you know, you had to have built Worked with people who had built continuous delivery pipelines Before you could create your own right and it wasn't very clear where to start The tooling was very, you know under documented The sometimes there's there's so much choice in the tooling as well They can be very hard to figure out. Well, you know, what what tool do I even pick? Is Jenkins the right tool? If I integrate if I do a bike commercial tool to do continuous delivery, you know, all of these sorts of questions really Kind of left continuous delivery as this thing that people wanted but really it was, you know squarely in the in the field of the experts the realm of the experts And so we're really trying to with Blue Ocean, which we're really trying to make it So easy and so approachable to to start working With continuous delivery that there's no reason you shouldn't be doing that So I want to talk to you today about the Blue Ocean 1.0 release and sort of what we're what we've been working on there But before I dive into Blue Ocean itself I really want to show you a little bit more about just sort of how our launch went and sort of what people are saying about About the release So we when we when we launched it he was two weeks ago The Blue Ocean 1.0. We just had like an amazing amazing Sort of you know, grassroots Surprise, I guess, you know, like comments like, you know, like a phoenix Jenkins CI is rising again This fellow was able to configure his pipeline in less than a minute And that he had never had, you know, never see I was never easy was never this easy before We got onto the we had a great discussion on hacking news. We had, you know, tens of thousands of people yet tens of thousands of years on on YouTube for our You know video introducing Blue Ocean Great publications like Info World World writing about, you know, how Blue Ocean is, you know, putting a friendly more friendly face on on continuous delivery with Jenkins or even continuous delivery in general So it's just really amazing that, you know, all over the world. There are all of these people out there Who are building their businesses and lively who it's on top of Jenkins and so it's a real testament to The Jenkins community just how, you know, how much how big that community is and And how much they really love Jenkins and they see it as You know, one of these what one of these tools that they keep in there to a lot So it's fantastic And over the course of the beta We we launched the beta in September 2016 at Jenkins world And since the beta in Jenkins world, I think we're now up to 7400 installations of Blue Ocean so that is not counting the Installations since we've launched Blue Ocean what pointer? So this is amazing. So that's that effectively means that if you know each let's just say hypothetically that you know Each installation each Jenkins installation is roughly You know one team of developers who are using Jenkins that means that there's 7400 teams using Blue Ocean today that is phenomenal and So we get the the statistics numbers sort of at the end of the month. So we're just gonna be waiting for a couple of days now Another 10 days at least For those new numbers to come through from the Blue Ocean 1.0 launch and I expect those these numbers to be higher So I'm just a quick. Thank you as well to all of the people who tested Blue Ocean While it was in alpha or in beta and gave us their feedback We really couldn't have done this without you. So let's get to the crux of why we're here What if you could create your first pipeline in 30 seconds? Sounds impossible, but well now you can I'm gonna go I'm gonna show you how so this is Blue Ocean I'm sitting here on the dashboard. So this is the equivalent of This page here showing all of my jobs And so this shows all the pipelines, but go over here and click new pipeline First up it'll ask me where do I store my code so I can store it in gear Or in github. I'm gonna pick github. So github We've made this very very easy for github and we're gonna do a similar thing to get So I'll click on github. Which organization does my repository belong to I'll pick I 386 That's my my github account and Then I'll go ahead and click new pipeline So we want to create a pipeline from a repository and then we'll look at demo and Here's my online gem demo repository. So this is just a blank github repository. I think it's got to read me in it So I'll click create pipeline and what Jenkins will do now is have a quick scan for Jenkins file If you're not familiar with a Jenkins file, it's the It's a file a config file that you Drop into your github repository that defines how your pipeline is executed And The common practice here is to version that Jenkins file alongside your application code I'll get to that in a moment. So I'll click create pipeline and we get pushed out to our new Visual pipeline editor. So this is included in the Blue Ocean release That we made last week. I Can go ahead and create a build stage. So what I'll do here is I'll just create a sort of a dummy Pipelines just to quickly show you how that works Okay Okay, I'll do a test Yeah James can I just pop in here for a second? Yeah, can you make that a little larger? Usually just yeah, you know zoom in a couple steps Seven a billion. Let me let me just see here one second Yes, that is good Thank you But there's a whole library of steps here as well that I can choose from so I'm just gonna pick the shell script shell script one because that's What's common and then when I'm done I can just click the save button and I can say all right Well, I'm gonna commit my my pipeline definition back to github So I'll say description at the Jenkins file And I can add it My master a quick save and run So Jenkins is now communicating with github in storing that new Pipeline definition as Jenkins file in my demo repository. And here we go We'll just wait for this to start and actually if we pop over to github Actually, there goes there was my pipeline that I created doing Those pings that that I had demonstrated now if I if I say I wanted to add maybe I want to go and add a parallel Testing phase I Can call this one more tests and I can add another shell script Let's go click for localhost I'll add this more test stage and maybe what I'll do in this instance is that I want to test This is I'm making a modification to my now production pipeline. I Probably want to make that modification on a branch and Ensure that like it actually works before using it on master So I can say add more tests stage Just save and run We'll pop back to github in just a second. There we go So you can see here now that Jenkins is automatically picked up my new branch Which is topic add more test stage If I click inside here I can see that The more tests parallel stages now executing and It's following along all the way up to deploy now if I head back over to Github it's actually put What we call a declarative Jenkins file in my repository zoom in here. It's easy for you guys to have a look at So you can see that, you know, when we first created this pipeline We defined three stages build test deploy we had different steps in between them So these could be anything so but typically like if you were invoking make or or Maven You could do that with a shells get us shell step script and you can have as many steps within a stage as you like Um commonly Happen again Basically, whenever you feel like you've got it big enough just do one more than that So one one start one step more zoom oh, yeah, no no problem. Great. Thanks So Yeah within the within each stage you can have as many steps as you like you can run, you know build tools like make and Maven You can call out to Different web services if you want Jenkins plug-ins expose a whole bunch of different steps So if you install a new plug-in it and so it supports pipeline And then what you can do is go and you know use the editor and search for that step And to find a step in the editor or you can add the step Right here in the Jenkins file You know if I go and have a look at the other branch here that I created the add more test stage branch You can see here that When we made that modification it added this parallel block So that the original Test stage is now run concurrently with more tests So really one of the super powerful things about Blue Ocean is that if you do if you do feel comfortable if If you don't feel comfortable editing a configuration file to define your pipeline you can always go and use the editor and People on the same team who feel more comfortable editing in their favorite text editor like VI or Adam or even IntelliJ idea or eclipse I can go ahead and edit this file directly and then it's possible to go and See those changes then reflected in the UI in Jenkins both in the visualization and in the editor itself So you really don't have to But with Blue Ocean and declarative you really don't have to choose between Well, just like if I edit the text file that the Jenkins file. I'm using my text editor And I change a bunch of things that's going to mean that you know users other other developers who like to use the editor now can't Now I can't actually You know use that editor anymore. That's not the case. So with Blue Ocean you can choose both and you can switch between the two modes of working Whatever you like Cool James there was actually just one question on the on online as well on the channel the So you're you I see you're working on GitHub here. This is on github.com Does this also work on the self-hosted github enterprise? Yes, oh So on our roadmap, so we're since we've just launched put on Blue Ocean one Oh, we're doing a bit of a bug fix and technical debt sprint at the moment. So roughly about four weeks I think we have left on it And that means that we're not building any new features We're just kind of fixing bugs and and cleaning things up so that we can Develop these new features faster and there are a couple of features that we are planning on building And one of them is the support for github enterprise. So just like in We go back here In your pipeline and you'll get a button here that will say github enterprise and if What I had done sort of prior to this presentation Was provided So if I come in here the first time and I pick github It will actually ask me like what my access key for github is now It's probably a good thing that I'm not including that on a jam recording for all eternity So I went and prefilled that but when that option does display in this sort of step in this kind of No wizard flow it will ask you for the you know Where your github enterprise act is actually located? So I believe it's technically not a lot of work for us to do it. It's just a matter of timing Okay, so yeah in the next next sprinter so great. Thanks. Yeah, no problem All righty, so what I'll go and do is I really want to kind of show you some of the the Some of the visualizations that are possible in the ocean, but what I've done I've created this new pipeline here called Outstore demo and so if I load this one up in my my visual pipeline editor here, you can see that you know I've got a build step here that goes out and calls maven produces a Source some source jars along the way I did some testing and actually this is kind of just mocked out the testing bit It's one of them for demonstration purposes. We want this to be really quick Most pipelines run for, you know, 20 or 30 minutes You know, that's sort of the the length of this This this jam So I wanted to make it nice and quick So yeah, you can see the app store demo So one of the great things here is about the the pipeline editor is that it is what you see is what you get So that means that whatever you define in the visual editor is what you'll see displayed to Users when they go and run the pipeline itself. So if I click cancel, I'll just exit out of that So let's go and run a pipeline And as you can see that looks pretty much exactly the same as how my my visualization looks There we go. So here it is going off and building my my source job now as As this builds as this actually builds and the pipeline executes We're actually following along that that process of execution So it makes it possible for me to go back and you know, I can go click on build and browse things I can click back on static analysis to see what what's going on there So it's actually really quite browsable, right? So I always know when when the pipeline is executing, you know, what stage in the pipeline we're at If I need to go back, it's just a click away Historically the steps of my pipeline Here's one called my deploy where I've removed the deployment phase But you can kind of see that, you know as I click around I can see the previous All the steps that I defined in the editor I brought like the logs for those steps are like broken up by step by step So it's really easy to see You know what each step in the pipeline did or what each stage in the pipeline did Now however Say if I have a failure and so what I'll do I'll go ahead and I'll go and make something fail Let's let's make browser test fail It's let's just do something like put a little bit of garbage in the shell step here So what we should see when I when I go run this pipeline is that the Firefox Parallel within the browser's test stage will fail and then hopefully it's going to show me Exactly where the failure is when I click through So let's put it Create a new branch with my checking file changes So we'll call this one topic fails all the time You'll just have to excuse my my poor internet connection here in Australia We have notoriously bad broadband So you can see that this topic fails all the time The first one of that branch We'll just wait for that to Start executing so James While you're waiting for that may hit refresh There was a question on the IRC about the steps Being shown the the high-level, you know labels for those the summaries As long as asking whether or not there's a way to alias those so that they're more meaningful to to your pipeline Right. Okay. Yeah, that's a that's a great question and it's something that does come up quite frequently So, yeah, we do we do realize that the descriptions of these steps here are not particularly useful So it can be kind of difficult to match the description of this shell script up with, you know, it's equivalent You know shell script step here in the editor, so, you know, there've been another different suggestions Given to us about like, you know How people kind of want to name these and I think one of the best ways that we can Make this work is just to make it work transparently. So we actually have some work in progress today that will Actually inspect the the the running shell script or the the finished Well, sorry inspect any step and figure out what that step is going to do So in this case, you know, we're running maybe clean source jar package, right? So we may what we're going to end up with is You know, we'll have a step here called, you know, maybe clean source jar package And then we'll say that the type of this step is a shell script So we won't be doing any aliasing because that's requires some Additional language features in declarative and in scripted pipeline in order for us to this to provide that custom alias But we will be making it very very easy for people to See what those steps are based on the content of the step that makes sense So you're gonna make blue ocean Transparenly sort of figure this out and do do something smart rather than putting the onus on the the person writing the pipeline That's that's correct. Yeah, cool. Thanks. Oh, this is just taking a little while Maybe what we can do we can just come back to this in a second we'll let we'll let this guy run And we'll come back So one of the things that we we also decided on is you know a part of making Jenkins Jenkins more relevant By integrating with the tools that you use You know integration like everybody uses get and get help So we'll be doing this for other get providers But however, this this works best today with github You can see at the top here We have at three tabs activity branches and pull requests So what I'm looking at here is the the activity of this pipeline. So this is all of the Runs of all of the branches of my pipeline. I can do things like no filter things out So I'm only seeing the runs from master. I Can cancel that I can look at the you know, this new file all the time and we'll come back to that in a minute And just see the the failing run here if I click across to branches It's very easy to see all of the branches that might be being integrated with this pipeline And their health So for example, if you know fails all the time fails all the time Then the health of this pipeline could be stormy So if it fails some of the time it could be cloudy if it fails So if none of the time then it'll be sunny Just like the the history of master here. So, you know, you want to see a lot more sunny pipelines than you do stormy ones Now if I click over to pull requests if someone sent me a pull request for the app store demo repository Jenkins is automatically going to go and pick that PR up and Execute the pipeline for it. So you can see here we have this one called bug slash fix hdb processor if I click in there I can see that, you know, this is PR number eight on github if I Click on this It'll take me all the way over to github And on the pull request it's actually showing as a check That the commit for this pipeline actually looks good So I can click details and go back to the definition of pipeline Now this is really important particularly if you work on a team of developers who are collaborating on a on a particular repository together in a pipeline together because if I'm the author of this pipeline, you know, one I want to make sure that You know, my pipeline works, but second is I don't want My colleague or my team my teammate to waste their time Reviewing any changes that, you know, where where all the tests haven't passed Or where other checks have not passed So it's really important. Um, if You're the reviewer of pull requests To to have this To have this checking right This reporting right in github, right because it will allow you to go. Well, you know, it looks like this change You know, we had some some issues here. So for this particular Um branch where, you know, we update a license file and maybe there was You know, maybe a line length. It was too long in the license file or something like that. So I as a reviewer, I know that um, that commit wasn't really good to go but then, you know, as I um, you know pulled in some new changes. I updated some uh, some some java tests and I merged in the contents of master into this branch um to get some updates That the changes for this pull request are actually now passing Um, so that's really highly valuable All right, so what what i'm going to do is i'm going to go back To our failure project and just kind of show you um You know how blue ocean will just quickly hone in on where that failure, um actually occurred So if I click on topic fails all the time Yeah, cool Sorry, there's a small bug there that we've actually fixed in blue ocean one one with the the status updating That kind of gets confused sometimes Um, so you can see here that you know, when you know when we're in the editor and I'll just pop open the editor um We actually made this, um Sorry firefox step fail So you can see here that um the firefox parallel has failed and then that this step has actually failed So we know that looking at this all is some junk in here, but say if I was running say my test runner um, it would automatically Pone in on the fact that you know, you executed your test runner and the test runner failed And maybe I need to go have a look at my unit tests to see what the test values are So it's quite quick I do get a lot of questions about you know, you know, I You know from people who've been using Jenkins for a long time and and they ask You know, I have a lot of freestyle jobs Are my freestyle jobs compatible with blue ocean? And the short answer is yes So the more longer answer is that you know, all of the nice things that we have like You know the pipeline visualization and the branching and the pull requests um those uh those features can't work with um Freestyle jobs. They're a different job type. Um, they work in different ways to pipeline um, but however just to As a sort of uh, just to be rest assured. Um, you can see here. I have this, um This freestyle job called fetal You can see here if I go over to its configuration Um, it's very simple It just doesn't even clean install and reports on its tests Um, you know, it's a it's a freestyle job type Which you're probably familiar with um If I go ahead and run that freestyle job Here it is doing its maven Clean install and running the tests Great cool that finished So you can see here that the big the big difference between freestyle jobs and pipeline jobs in blue oceans, but you know um pipeline is able to visualize better the steps um that have occurred within the job Um, and also the phases like the stages of of of that job Um, so we can't have that visualization here However, um things like, you know getting those changes or the tests that Um, this job is actually executing and reporting on them. Um, we can easily Uh report on all of those things. So that's those are the sort of things that are common across jobs um in even artifacts one of my favorite features, um One of my favorite features in blue ocean is personalization or as the personalized dashboard um, so Really when you come to Jenkins, you're usually coming to Jenkins because something has gone wrong, right? So we really wanted to make Jenkins more relevant for developers when they first Uh, when they first enter the inside the user interface simple, uh favoriting system. So we have these little stars here Um, hopefully this is showing up. Uh, okay on the video feed If I go ahead and click these I can add a favorite um card to my dashboard for say the fetal uh freestyle job Uh and for online gen demo And even uh app store demo um, so if I favorite a um from the dashboard if I favorite a pipeline what i'm really doing is favoriting the um default branch of that pipeline So in the case of uh git um usually the default branch is master although that is configurable and blue ocean will pick up um when that changes um, so if I go into say my app store demo and look at my branches I can see here that master is favorited What I can also do is click um favorite on you know topic fails all the time So if I go back to my dashboard and say say in a scenario I've come in in the morning And I've noticed that oh, you know a change that I made last night To that branch, um, it doesn't work. I can just quickly click through and see Very very very quickly like where that failure had occurred I can then exit out get back to my dashboard. So you can zoom in to where the failures are In blue ocean in one click and I think that's a big, um A big differentiator um from the classic UI Um, so to kind of do the the sort of similar Uh To kind of do a similar operation in in classic If I click on the little exit we go to classic here Um, I would see that it's failing. Um, I'm not entirely sure Why it's failing I could click on console output There's a lot of console output I scroll scroll scroll scroll scroll scroll scroll scroll scroll all the way to the bottom Where is it? Oh, yeah, here we go. I don't know what I'm looking for But if you didn't know what you were looking for this, you know This take a couple of minutes to to scroll through all the logs and read the logs and and find out where the problem is But in blue ocean It is just a quick way. So Focuses you So that's the uh, the personalized dashboard So you might be wondering, uh, sort of what's up next for the blue ocean project. What are we working on? Um, we're going to be posting a public roadmap on our homepage at jinkins.io slash politics slash blue ocean um, however, um I can't what I can tell you is that For the blue ocean team, we really want to focus on Making the experience around that pipeline editor even better. So there's a lot of work that we need to do to make blue ocean visual editor Have feature parity with declarative. So there's a lot of great features in declarative pipeline Say for running post steps, um, there's stage level configurations All sorts of really great things. Um in declarative Um that we want to make sure are reflected in the editor um But I think a big challenge here is that as we add more features to the editor the editor becomes less simple So we need to do some design work here to figure out, you know Um, you know, we really got to think about that big, you know user coming in and trying to do continuous delivery for the first time so if um, or if we map in all of those features, um We really want to make sure that that doesn't really get in the way of that That novice developer who's creating that cd pipeline for the first time But it also means that we don't want to hide those features. So it's really difficult For the more intermediate or advanced users to access those features So it's a real sort of balancing act here that we have to We have to perform in order to You know, make sure all of the different user types who will be using the editor are well served by it And that kind of also leads into support for other version controls Providers get providers I should say So today we don't really have any plans to support say subversion or perforce With that new pipeline flow Um, it's it's kind of quite difficult to support it even in the git case Um for um, you know, there was a question earlier. Are we going to support github enterprise? Um, so yes, we are going to support github enterprise that is um, you know coming Um shortly And but we also want to go and support that new pipeline flow for git repositories so if I um If I actually go back I Click new pipeline and Maybe what we can do is Let's grab another repository here Uh, it's called chesterfield. So that's good. I put in my um repository URL and I click create pipeline it's actually not going to offer me the um The ability to go and edit that pipeline Using the visual pipeline editor and author it for the first time. So you can see in that Chesterfield repo that we don't actually have a Jenkins file Um, so one of the things that we're going to be adding Next is the ability to read and write that Jenkins file to any git repository So it doesn't matter if you're using Git lab bit bucket gogs Get here. Um, you're hosting your own git Uh repository server, uh, you know using the uh the open source Git server demon and all those sorts of things like it doesn't matter what system Is hosting that git repository we want to talk to it and allow that um reading and writing of the Jenkins file just You know in just an as an easy way as we've made it work for github Um, so that that's coming and we do have a kind of a proof of concept of that working However, we want to make sure that um, because you know the difference is between there's there is a sort of tangible difference between um, the requirements of github and git in terms of you know, um You know authentication mechanism, etc and forks. Um that we really need to kind of make Um focus in on like how we can make that Experience for git just as easy as the github one and that's really the challenge So a lot of the things in blue ocean that we've built the challenge actually hasn't been building the technology The challenge has been in presenting it in a clear and concise way and in a usable way Um, so they you know, we're the ones that have to you know as the the authors of blue ocean We're the ones that have to deal with the complexity You as the user do not have to deal with it We're we are we are also looking at adding a fast search Um to the blue ocean dashboard. So one of the limitations that Is and i'll just pop over to our um themes on blue ocean server Um, and i'll zoom in here One of the limitations here is that if you do have more than 25 pipelines um The dashboard will give you this show more button Which is which allows you to page through more of the of the dashboard um, so that's um That's not working quite well on our development server, but um, but the point here is that you know, you can get quite tedious if you're searching for a particular pipeline in here Um, just to click show more show more So there'll be an area up the top here where you can You know activate with a keyboard shortcut into start typing the name of the pipeline you're looking for and have this whole dashboard Including the favorites filtered down Um to that query so it'd be really really quick way to to look up pipelines Alrighty So if you want to learn more about blue ocean, uh, you can visit our site at jinkins.io slash project slash blue ocean um, we also, uh, you know, we do you know, it's blue ocean and jinkins are open source projects. So we do all of the um, you know Development out in the open. So we have um, there's a github repository that contains all the blue ocean code um, if if this feels like if if you feel like uh contributing anything to blue ocean um, you can just follow that link there and um We've got links to all of the details of like where you can find the repository We also use the jinkins dirra issue tracker to track all of our development work Uh, we even have like one of those camvan boards there for the sort of paid members of the team To use throughout the day when they as they're working on features And so you're more than welcome to go and have a look at that as well Link throw up on the web page and we also have a team chat and a community chat on github, which is kind of like you can kind of think of it as like IRC or slack or hipchat for um forget um, you can chat with uh, uh with us at um on github at that bit.ly link. Um on the screen Just like to say thank you to um, liam and elisa for organizing the jam and um, thanks for watching Hey, all right, james. Thank you very much for this presentation. Uh, there was, um One of the question, uh, about that we had on the IRC channel about, uh, uh customization and and extension of blue ocean and when, uh, there might be some, uh developer documentation for how to do that Yeah, no, that's a great question. So um We are so at the moment there is some work going on to It is possible today to extend, um, the blue ocean front end. So we feel we use, um, reactjs from facebook for all the UI components, um, and we do have a sort of a rudimentary way of um extending, uh, providing your own react components to the UI and then you can, you know, call out to You know, blue oceans rest api. So there's a brand new rest api in blue ocean, um, that we built to kind of power the UI Um, however, we realize, you know, we we actually use that those extension points To build blue ocean itself and as we've been building blue ocean for the last year we kind of realized there are some sort of rudiment like I guess how just sort of how rudimentary like that implementation of the extension point system is Um, so there is work at the moment to go through. Um, and we're going to send a proposal to the jenkins ux um mailing list um proposing a new extension system and or and at one of the design bells of this extension system is to have a sdk like experience for building blue ocean plugins so if you've used, um you know, the, uh, hbi plugin the maven hbi plugin to create um maven plugins Sorry, um, you know maven projects that are that the jenkins Plugins, uh, it's actually really quite simple and there's like good examples when we go and run the genic the code generator for that So we want to do we want to at least have that kind of experience for blue ocean plugins uh, if not better um, so that uh, that's We are actively working on that like we we have a we're in a situation where we Don't feel that we are productive enough as a team to be able to build blue ocean itself without solving this problem so, um, expect it in the next Couple expect something usable in sort of the next couple of months, but you know, we are working really hard on on making that possible Great. Thank you very much All right. I I think that's that's not seeing any of the questions right now, so Uh, thank you very much james for taking the time to show us this Um, and I look forward to seeing all the the great new things you guys are working on coming up next Cool. Thanks. Liam. All right, and uh, thank you everyone for watching