 Okay, so we're live great So hey everyone We moved the meeting One week after it was supposed to be so more of us could join and We're pretty close to Jenkins world and we're pretty close. I hope to official release so I'm gonna share the screen and And I hope you can see the meeting notes so Today during at the meeting we have well me Oleg and there's also a Yon or John I'm very sorry. I don't know like me spell your surname and I Don't know how to pronounce your name properly, but I will fix that after the meeting. It doesn't matter. Just John. It's fine Okay, perfect. Thank you. So well the agenda is pretty straightforward as usual. We should Check the action items from in previous meeting discuss or maybe decide about the Releasing and well any other business we might have and Of course Anyone can add anything to the agenda during the meeting as long as we have time for that No, okay. I have your surname here. So I can complete Yes, so let's have a look at action items. It's basically all on me First of all, I created some Some mess when I I was pretty sure that we all agreed that we're creating separate special interest group for a J cask and That was not exactly what we agreed on and I understand that well maybe at some point we will need that but for now we've decided to Stay as a part of cloud native special interest group, but we will still still continue with J cask office hours probably the same times that we have now unless we find out that there are people from different times zones that really want to Join and then we'll have to rethink that So the Jenkins dot a o and three regarding cloud native special interest group was updated with the information about J cask being a part of that or configuration is called actually not J cask only being a part of that We also agreed that every now and then if it makes sense, of course we will report The progress or whatever we talked about at the cloud native special interest group meeting But the main the main meeting for us is that one the one we're having right now and the next one was looking at the shading snake yamal issue and Well, actually yesterday I I had a lot of trouble with it I could not build a plugin because of that, but Nikola helped and it seems that he found some nice solution So it's already much as far as far as I remember When it comes to this issue for point For It's closed now. Yeah, so so that that's That is not applicable and more and the update invitation for the meeting I guess it was About shifting the weeks and it happened. So I can confirm that Well action items are more or less done So that's it about the I guess we should talk about the release status. So when we have a look at the release one milestone issues that are still opened we have Can't export configuration when easy to plug in slave is connected and it's only should have I Have a look at any moment Cannot install configuration is called plug-in. Yeah, I I don't exactly remember. What's what's in there So we'll have a look at the issue and then getting started documentation improved. It's like improvement in work in progress. It's not a stopper for us when it comes to releasing because it can Be part of a github repository, but what we can add it all days after the actual release happens I really hope to to have time to work on that today So, yeah, let's have a look at those two issues can't export configuration when easy to plug in slave is connected Yeah, this one is pretty simple When we have a cloud plug-in to to create a slave a dynamic slave It's added to Jenkins as a as a plain node and we have no way to know that this node should not be exported And in the specific case of the easy to plug-in Actually, we can't export because some of the of the implementation classes have The don't implements a standard Jenkins API for something that has you are binding and so on Because they are not designed to be bound to you eyes as supposed to be transient nodes only created from from the cloud provider So that's the reason. So there is a potential quick fix to enable This easy to reason return strategy for you are binding but that makes no sense for the easy to plug-in and And so there is a there is a challenge with within Jenkins core to to be able to mark So those nodes are being some way generated by sub-party components The same issue applies for our jobs. If I remember correctly, there is already a g-ray issue for it as that Intem is being generated by the branch source Multi-multi-brunch jobs should be flanked some way so that Jenkins knows that those specific items Are generated and are not first-class citizens So for this one, we don't have Any fix in in the pipe Yeah, so we hit this issue with agents a few years ago we don't call some more Tools for tracking pipeline usage workspaces and for us it was also a challenge to understand whether the agent is provisioned by cloud EPA or not So There were some ideas how to fix that, but generally we have never touched it in Jenkins core Yeah, I totally agree with you the fix is supposed to be there So changes in core are required to That Yeah, yeah Do we then consider it as a stopper for my release one zero I Won't consider anything related to export as a stripper Because we know there is lots of pitches with exports that's really best effort so far So there is surprise begins our issue with export and this one is yet another one But I mean, yeah, well It's it's it's not very good that we can't Fix it on our side and I if I understand correctly the huge in the core If if there there is decision to fix this it will take some time, right? Yeah, it would take some time There's a way to consider this is that you can export Jenkins instance that is used for Experiments and not to actually run jobs. So not actually provisioning stuff as As easy easy to slaves If the idea is to say I want to use the classic web UI and see The corresponding channel syntax by using the export and you can just bootstrap a test instance It's like this to say hi I have my heavy loaded Jenkins instance, and I want to expanse and we are Pretty far from being able to do this and not just considering the specific issues There is many other places where we still have issues to address and some of them will require some deep changes in Jenkins Okay, so well, I guess we have to we we should remove the the issue from my school one and maybe provide some some some more information regarding the way forward and Sounds like the the bidding core is the right way to go. So The fact that this specific case won't be supported Anyone has different opinion Assume it means no so Nicola can you drop a comment about Great, thanks, and the other one was Cannot install configurations called Plugging and there is some long exchange Yeah, this one I don't really know is so John just asked if I'm having audio issues and Can you elaborate on that because I'm not I'm not sure if you can't hear me or if you hear some strange noise Well, I can hear all the others you just sometimes sound like a metallic robot that just basically just fails Okay. Well, that's probably my Relatively slow internet that I can't do much about unfortunately But I hope it's good enough for you to understand me Sure But thanks for noticing anyway, so again Cannot install configuration is plug is code Plug-in well, I added it to the milestone, but it doesn't seem like it in forward And this is the only person that is Complaining about the not being able to install the plug-ins. So again, I I Know I might be might be totally wrong, but I wouldn't treat it as a stopper for is 1.0 and definitely have Have a look and I can try to Recreate the so I can like assign myself to that one Guess the most straightforward way you would be to try installing on the specified version Because you're taking the exception most likely it's an incompatibility result Jenkins core and we don't test A lot on it. Yeah, I so I basically want to have a look at what what he had and the recreate As similar as possible in stands on my own so I can I can do that But it's he's using two seventy three dot three And I noticed that somewhere we might regarding the HPA run issue Someone Nicola wasn't you that commented that maybe we just have to bump the supported version to the higher one Yeah, of course, it's easy And eventually you will have to bump versions anyway if you want to pick up new changes from the core Mm-hmm So it could be an option, but if such issue happens Like if something is wrong, so he's annotation indexer. So most likely it's again related to something like Yeah, but a API again Yeah, I'm not 100% sure to solve beta API. We are a running NB and you run with two dot one dot one that's something version, right? Right, but Jenkins users don't use maybe an HPA run. Yeah Without maybe an HPA run and should be working but type not present. Yeah, most likely links to this issue being I'm not sure why maybe it's something with Google injector Yeah, you may see that it uses some go over code inside I'm not sure why yeah, but anyway, I as I said I will I Will have a look and But does any of you consider it to be a stopper for release One that's zero Actually, I read the one of the last comments where it actually says that the issue seemed fixed and it's a related to the active directory plug-in instead It's a the moustache commented 22 days ago. Oh, okay So maybe it's just done So the export that which is unrelated, okay It's just Yeah But anyway, so well good to know I will Close the issue with our active directory plug-in then Okay, then while we decided that export next to pass I I want to have a look at the Yes, maybe it makes sense to express the mark exporter as experimental feature, but yeah, I believe that It will always have some limitations. Yeah, so that's another question to the documentation. So Export as an as an experimental feature. This is something that we can It's our final documentation. Is that what you said? We have some or do we have to mark it somewhere in the Yeah, I do not like Experimental tongue because exporter as a feature Works well the problem that we shouldn't be setting it expectation that export that we will be producing full configurations, you know Because yeah, it's not going to happen anytime soon So what a configuration exporter does it just generates a Sample where it exports everything it can But yeah, that's it Okay, I will Put some comments about it in the documentation. I am working on and I will I will Let you know when it's done so you can review it but I Guess I Nicola, do you agree with such approach? Yeah, yeah, I fully agree. Yeah, I guess we will so most of the recent Issue I seen reported are related to to failure to export our guests newcomers really wants his feature as a as a Fast path to adopt a more configuration But those are on the other side We know that there is many limitation and so clearly you have to to express these both on documentation maybe also Within the plugin Aside the export button on the web UI, which maybe we should have some warning here to explain that this is the best effort and not relevant for your Be consumed as is my config is Better for an inspiration That's something I can have a look today to to add a note at least a tip on on the web UI so that I Know people don't read documentation nor do they See warnings on the web UI, but Better safe than than sorry And it is When somebody comes to you and grumbles the export feature doesn't work at all Yeah, and you just reference to the ticket and kind of close it Yeah, all great follow-ups for particular cases Because yeah, this thing is active directory is definitely something We would be interested to fix The problem was that it shouldn't be blocked on the release and the hitchy itself, okay, so I I Hear you Nicola when you said that Maybe not everyone will read the documentation. It still won't hurt us what if we have it there But if I if I heard you correctly you said you you can have a look about the fixing the UI part of that so yeah, yeah, I can I can check the UI part I'd be a happy if you can check the documentation side. We clearly you need both of them and yeah for concrete fix for all those issue real accurate some significant change in values plugins just like Because I guess that's the first thing that people experiment said try to export for some reason fail and what they don't know is that probably it also would fail if they try to To configure with YAML because plugin hasn't yet been migrated to adopt UI binding best practices Yeah So that's really the first thing people know about configures code is this export button as a as a way to get get fast Make sense. So Do you think somewhere around like what the where you put the warning and you mentioned the documentation? So like check documentation in repository for more details and then we Sure we can I guess I will just include a small warning tip on the web UI and Once we have some concrete landing page for for this we can just provide the link to it. Yeah Do you agree that the Warning in UI is a small thing and we should be able to do it before we're releasing 1.0. I Think it should be enough. Yeah We we can clearly do a better job that for 1.0. It's I think it's enough people understand that this is only a partial feature and So there you that your own risk and all that sort of thing. Yeah Well, that was all we had in the milestone 1.0 in the issues are there any other issues that did not end up there, but you're aware of that So yesterday we discovered one regression in the release candidate Folluding jcask configurations from the war file When you package a jcask to work so there is a pending fix from JCB And it it should be Possible to be merged, right? Well Pull request build fails, but it doesn't look to be related to the fix itself Mm-hmm, and he he yeah, like confirm that it works on his machine. Yeah, it works So the the issue is probably the one we have in all the CA problems So when it comes to PR so something was terminated in Linux Yeah so I'm okay with merging it and Who approved Oleg and I can I could see the other issue that you mentioned you need this to be merged Yeah, that one Yes, he's good for merging Okay, so I'm merging Yeah, so I didn't notice it for a while because The demo I was using was still relying on alpha 0 8 But yeah Yesterday just right Custom work package for one of his cases he discovered that for common work packaging They think doesn't doesn't work. Mm-hmm. And so we found this regression And yeah, this is just the commutation to have it so it's not a release blocker. Okay, and Is this an issue you want to work? You can just assign it to me Anything else The list of open issues there are a lot about exporter mm-hmm plus some Compatibility concerns for plugins. Mm-hmm But yeah, I don't see anything specific which would be a blocker for the release so, I Want to release I mean I can't technically but I'm I would like it to be released a Any objections plus one I'll prove that one Go for release So you You all know that we impregnum messed up our our Jenkins installation or something. I don't know we we just could not fix for some time and mess showed me how to do it manually, but I was never like changing from This candidate to release and maybe it's super simple, but can any of you guys do it? I don't want to mess up the First I don't have a release permissions. Sorry. I don't have a release permissions for this play game Oh, yeah, so I will do it. No problem. Okay, so if you if you want to if you want to review when when you deal with this Warning regarding export just drop me a message and I will be on it. Okay. Yeah, like immediately so Yeah, so you plan to release one to zero after emerging Jesus change or before that I Will I will have a look at this one thing we discussed for exports and then do some last-minute testing on my side and probably will release This evening or maybe tomorrow. Mm-hmm. I Will I will try to do some I mean try to I have Will do some testing too as soon as we have it but as I understand the You are UI change is not really something very dangerous. So we can actually start this Anytime I'm writing some code. There is some dungeon, you know. Yeah. Yeah. Yeah. I just didn't want to like say it loud No, it applies to everybody. Oh, yeah so Yeah, we're releasing. That's nice and tomorrow I Fly to San Francisco and my plane Take off around noon. So I'm available in the morning and then I'm out. I guess, okay And then we're all gonna meet in San Francisco. San Francisco. Yes, ma'am Is there anything else anyone would like to discuss today? Yeah, we wanted to discuss One topic is Nikola just a second. I'll put the link actually it's in the developer in my interest So a while ago Nikola started the threat about Jenkins file runner so tool which allows to Yeah, I have a kind of single shot Jenkins instances executing particular pipeline and shutting down and Yeah, there was a threat about the integrating Jenkins file runner and jcask plugin I did some experiment to work with that and We discussed that it may make sense to have a brief demo and discussion at this meeting when you do Explain it correctly Nikola. Yes, so the point here is to have some open discussion on Configures code in a general Jenkins ecosystem. So We have this Jenkins file runner thing as that can consume configs code We also have the web packages that has is its own logics to configure some Jenkins Flavor with some pre-installed plugins and All those efforts are Not competitive, but some way trying to address the same thing. So my point here was to try to understand how those project can collaborate and How to anticipate says Jenkins modernization efforts in this direction Trying to describe the picture of what Configure code should look like in in future and So typically something I had in mind considering the limitations of the plugin manager and the way we had to handle it in configs code and The way it has been addressed by custom walker cater And also re-implemented by Jenkins Fire Runner. So my values implementation for the same the same goal I think that that's something we should Implement directly within Jenkins code itself to have some way to pre-populate Jenkins at early start phases With a set of plugins based on some declarative Description of feature we want to install Yeah, so I can briefly show how custom work package works. Yeah The list of sharing Yeah, I'm sharing my screen now So yeah, I guess do you see my screen? So, yeah, a custom work package. So custom work package. It is a relatively new project So I've started it last spring the main idea was to enable integration testing of Jenkins components and since Jenkins test frameworks depend on Warfiles the idea was to create a warpackager which would be taking plugins some self configuration logic So that everything is packaged at the as a single war file So and this is a tool which does so that so effectively it takes a number of different configurations Packages everything as a war file or now as a docker image And then you'll get ready to fly it is a beautiful package which you can use And you may see that this tool already supports the configuration as put plugin So it looks something like that So here's a demo for cask. So there is cask yaml. This is cask yaml It's a bit outdated because Yeah, it was using colorful version So I'm waiting for the patch created by JC to be integrated before bumping into the recent version but the idea that you will get cask configuration and then Yeah, there is a package of conflict yaml. This is just I think which says what should be packaged Into our distribution. So here I built Warfile and I also can build a docker if needed And here I say that I take this particular list of plugins including G cask Then I set system properties if needed. I specify cask to be included And after that it just produces a single image and you can run it pretty much the same available for for groovy hooks So there is there are also demos using groovy hooks available And yeah, this is how this tool works So In groovy hooks and it's J cask in one installation. Yeah, you can So I don't have such demos here, but I have another demo for my project So I have Configure code and in this project there is a branch 4j cask, which effectively uses both configuration as code plugin and groovy hooks and Yeah, this Approaches work together and you can do the same in custom work packages as well. I just Don't have specific demo for that. I guess Maybe I do So, yeah, there is no limitation for that Yeah, but the reason for this discussion is actually Jenkins filerunner because the Jenkins filerunner is something which goes beyond common packaging so it's not Warfile, it's not Jenkins classic docker image, but it's another packaging A few weeks ago. I added support of that to custom work packages Do you still see my screen? Yeah, I switched the focus. So here you may see that I Can just build the image and you actually in this image. I have both cask and in it groovy. So It's here So groovy hooks j cask Also a bunch of plugins now with users. This demo uses a C2 and What it does it actually builds Jenkins filerunner. It produces a docker image So it's a ready to fly image and it's uses a key case Repository, but there is some going discussion about how we would approach this thing is to Jenkins filerunners so there is a Packager config and again, there is cask. So this cask doesn't do much now I plan to do some real world demo because currently in my demo. I just Execute this simple pipeline But yeah, what's the idea the idea that I can Just go to the repository. So there is a make file there. So make clean build Yeah, so it installs Custom work package and then runs the build So yeah, this is a developer tool it uses maven internally, but yeah, finally it will produce us Docker specification and this docker specification will be also executed so that It will create a docker file image Takes a while sometimes when you don't have cash Yeah, so what it actually does Yeah, I'll let it. Oh, it's already in docker Okay, so now we are building a docker image So you may see that it explodes work file in order to improve performance out of the box It's feature available in Jenkins filerunners. Then it also copies some stuff. It copies plug-ins. It copes a groovy hooks sets up environment for jcask so that scripts are Surveyorable and then once you package it is built what you can do So just Lost the window again. So here you can just go to the Yeah to the demo And Oh, yeah, here's an example of command line. So effectively I just used use the produced image and I can execute this image. So it's ready to fly build it includes this Jcast groovy hooks system properties plug-ins. It's a static image. So everything is bundled and Kind of preconfigured There are some Performance tweaks applied but effectively Jenkins starts up and executes your pipeline and produces output to CLA So it's what the Jenkins file runner does in my case. I just package the docker image properly so that It runs Weekly and then it uses configuration steps so yeah, that's the idea of this prototype and It uses jcask and configuration as code in general. So I think it may be interesting to this audience Well, it is I'm definitely going to to try it. So You're okay with Sharing the demo with anyone who's interested. Yeah, it's public. Okay. Very good. Oh, I really like the idea, but so we started with We started with explaining the issue like we Implement the same solution in different places if I'm if I understood it correctly And then you have this demo So I'm wondering if this this prototype is is kind of solving the problem or or it's it's just next to the problem So it produces static images So that yeah, jcask itself is a really nice tool It can be used in different contexts But what I target in my Jenkins instances, I want to have static configurations So I don't want to have admin on my instance at all and I want everything to be kind of configured So that's why I try to package everything into docker. Yeah, this demo customer Yeah, Jenkins config works in pretty much the same way. So it produces a docker image We use everything bundled as a configuration and then yeah, it's what gets shipped as a single instance So that's the idea. Okay The plugin installation is being Done by the install I can say it's script In the case of Jenkins file runner. No, it's been so effectively a word custom word packages does is that it packages everything Into a word file going to docker. So it doesn't use plugins txt and it doesn't use Common docker image logic to do that. Okay, but yeah, it does everything internally Why it's own tooling now? Yeah, so I actually don't really care if it's using the Normal or the most common docker and plug-in solution what I'm after is if you want to have If you want to update plug-ins version, do you have to rebuild it and have yes, you have So this is a static image. So the idea that if you want to update Configuration of plugins you update the repository run through whatever continues delivery a process produce new image and then replace the image So this is an approach Yeah It's not applicable to 100% of cases, but yeah, this is how I would prefer to manage my instances Yeah, no, I know like I've heard about some customers that it's not possible for them to have Jenkins down for one minute even but I'm pretty sure those are very specific cases and what you're showing now is Used to be very interesting and we're checking so Well, thanks Yeah, so that's how it works Yeah, as I said, it's a kind of underdevelopment tool It would it works And then if it back will be appreciated Yeah, by the way, this is Docker file for Yeah, it's for configuration of school demo. So you may see that nothing really interesting. He just it's Warfile and Yeah, everything is packaged into the warfile including plugins and jcusk. That's why there is a resource loading for Jenkins file runner is a bit different because we need To comply this jinx file runner structure. So plugins I extracted Jenkins file Binary cells are produced. So the docker file. He's a bit different. But yeah, it also works Okay Nicola, what do you think? Yeah, that's a first. Thanks for the demo Right, so yeah, my my point here was to ensure that all those know but this project and Understand that with such tools Some of the imitation we have in configs code. I remember see how we had this discussion on managing Unbound viable and system properties and all that sort of thing in configs code and and define the boundaries of the project And then we here we have a sample to get one step further So I think this is very interesting. So As you say, this has been designed as a tool mostly for developers and as and testing purpose but probably the scope could be larger and Just be some more generic way to to to manage Jenkins Something I heard a few years ago about sonar source Is that they gave up support for all the service and gene and Only support running from common line just equivalent of running Java that are checking the wall And they stopped supporting deployment on ways for gbos and whatever because that creates lots of limitation in what they could do if they only have one target platform and And and with this package or and the feature it allows Here you have these samples to package could be hooks to enable system properties manage plugins solution All that sort of things. That's something that we can control from such a tool Without having to make some significant changes in Jenkins core and This opens some new opportunities So today if you have to just pass an environment viable to Jenkins You have to update a dozen document to explain how to do it on on Windows on Linux installed a service when running from common line when running within gbos when running from web sphere and so on and so on And I really like the idea that we have such a concierge document to describe the full service of the Jenkins master and Also being able to package in the docker image From my point of view that's some vision of what the future of Jenkins could be As as a standalone system where we can control everything at once Cool. Thanks for this feedback So, yeah, this project Is pretty much aligned with other activities we were doing so for example, there is incrementals delivery flow Of course custom work packages supports it as well So users also do not need to wait for patches for being released. So here use Jenkins file runner from the repository, but actually for every plugin you can define an incremental solution or just sources to be built So it also makes the thing pretty much flexible and actually if you don't like What's packaged in Jenkins core? There is also a way to update that so I guess this demo is a bit obsolete But yeah, what you can do that you can actually patch Jenkins core at libraries So for example, if you need a library to work for this Kubernetes resources You can just add this library to work package and it will be Available in the class loader as you may see that there are some bad idea warnings here, but yeah, generally it works and Yeah, pretty much the same if you want to replace any Library, it's also possible now. So you can rebuild your work file is a part of the deal flow You can add more resources. You can package everything. So yeah Generic work around for any feature missing in Jenkins for file And yeah, it works extremely well for packaging the demos So for example, there is external login the demo for elastic search. I also package package data with customer packages So a bunch of plugins which are not released then some configuration as code Self-configuration mostly so something like lockstash config and then it is docket compose you just get an instance Which includes elastic search and Jenkins everything runs Out of the box and the login happens externally and yeah everything is Written either in YAML or Guru so there is no VTXML patches So that's how it works Still under development But yeah, I think it may be useful in some cases So I'm pretty sure it can and well, I I don't want to give any feedback without actually looking at it I did really but I will I will definitely do that and I hope some of my colleagues From work will do the same. I'm pretty sure we'll find a lot of ways to use it. So Things are like It's not only thanks a lot. It's actually thanks Nikola. Thanks Kiki and others. Yeah, for example Mr. Jenkins file builder a pretty much Took it from the repository without any patches. So there was some voodoo magic around making it working But yeah, generally I just took it and it works So, yeah, there's a kind of combination of multiple tools because jikas as well Right Yeah, so looking forward how it plays and yeah, of course is very recent announcements. Yeah, there are Definitely some of huge exploratory work to find how all these two tools map together Yeah Yeah, that's why we go to the contributor summit exactly. Oh, I was just if well, this is my first contributor summit my first Jenkins world a Should we prepare something for this contributor summit or should we just assume it will? So you definitely you should prepare something because Yeah, there is an expectation of something like jikas start to submit in the vehicle of the summit that that that thing I'm aware of but Yeah, it's like some demos or what do you have so it's now I'm pretty sure it would be interesting audience to see yeah, right, so they will be I Don't remember how they called but after the main part of the event they will be Just some opportunities to pitch projects and to show small demos So they will be something for two hours for that and it will be on conference format So everybody who is interested can propose a topic and discuss that So if you have any ideas in mind just add them there and Just a logistic So will it happen? One presentation at the same time at the time or will we will we divided into smaller groups? Depend to I think it depends on the number of interested people So I don't know how exactly it's going to happen this year, okay Well, I don't have anything else for the meeting today We have five more minutes If Another topic that you want to discuss Actually, I had one topic about the contributor summit So they will be built or visa so something like to our discussions at project tables Currently we have cloud native seek table and also Equal to table is a separate one I wanted to make sure that this approach we want to follow I Think there's no topics to discuss Table I think you have things to talk about when they have the receipts and I really hope we will meet some Some people that are trying to use configuration as code so Separate in my opinion is a right way to go It's fine with me, right? Oh, no It is I just really received the stickers I just got it I just got a new laptop and I lost all my stickers, so I guess Maybe you can put all of them But let's see like I would like to give other people the opportunity to have some That's great Right so then see you in San Francisco. Yeah Thanks for the meeting. Okay. Thanks. I'm stopping the broadcast. Bye