Video: Bridging the Gap: Modern DevOps with ChangeMan ZMF, Git, and VSCode | Duration: 3576s | Summary: Bridging the Gap: Modern DevOps with ChangeMan ZMF, Git, and VSCode | Chapters: Introduction and Housekeeping (0.24s), ChangeMan CMF Updates (131.975s), ATOSS Patch Updates (387.34998s), Git-ZMF Integration Demo (587.505s), Resolving Git Conflicts (1957.685s), Git GUI Interfaces (2528.8s), Q&A Session (2992.595s), Package Creation Methods (3064.6099s), Addressing User Inquiries (3129.225s), Q&A Session Continues (3269.075s), DevOps Integration Challenges (3319.27s), Q&A Session Wrap-up (3446.365s), Closing and Farewell (3541.1199s)
Transcript for "Bridging the Gap: Modern DevOps with ChangeMan ZMF, Git, and VSCode": The now we're just gonna get started in about one minute here if you'll just hang tight as others join us, please. Alrighty. Well, I guess this is time to get started. So I wanna first thank you all, for coming here today and joining us on our modern DevOps with Rocket Changeman. I already see that chat is blowing up with a lot of good morning. Great to hear hear and see. Alrighty. So before we get started, we just had a few housekeeping items to cover. So we will be recording today's session, and we're gonna be sending, a distribution distributing links afterwards. And, you know, I I guess I don't even need to ask you guys this, but feel free to put your questions and thoughts in the chat. You guys are already doing that, so thank you. And, if we don't get to your question, we will follow-up, with an answer for you. Also, we will be posting some follow on content on the Changeman forum. If you you wanna register for that, I'll put the link in the chat. Just that's a great place to keep connected with us. And lastly, towards the end of the webinar, Bruta will be launching a post event survey web like, survey. It's very quick, very easy. So I would just encourage you to take all that. Lastly, with as if as with any Rocket webinar, we have this presentation disclaimer. And I will pass this on over to to Jimmy to introduce the agenda. Thanks, Olivia. So I'm Jimmy O'Rourke. I'm the product manager for Changeman CMF. With me is Bob Yates, the senior solutions consultant for mainframe and enterprise DevOps. I just have a few slides. It's pretty difficult for those who've been, seen on us to all these webinars in the past. The demo is about thirty plus minutes. I wanna make sure that Bob has enough time to go through that. It is prerecorded, but he's got some slides up ahead to, introduce that. So for me, I'm just gonna just talk about the road map just a little bit, before I jump into that. Just some things that have changed, quite a bit in the past. It's been about fourteen months now. So change me in support is a a new a new website. You can get all types of information from there. You can send a ticket. You can request a key. You can also get your documentation. It's really a one stop shop. We have moved the community forum over. That started right around the same time we moved these fourteenth. I think it's beginning of this year, so around the January, February time frame. We finally kicked off the, the ideas portal that has been, slow coming. Now we moved that over, probably about the last month, month and a half or so. So that's there too. Unfortunately, it is a different portal, but you can get to that from the community forum itself. And then lastly is the, for for this particular piece, you know, because there's gonna be a lot of discussion on the the Versus Code Explorer I'm sorry, Versus Code plugin. We have moved the ZMF Explorer, to a different link as well, so I have that posted there. Just some things to keep in mind. There is, a lot of investment going on with ChangeMan. I brought this up. I think the the previous webinar, we already have some hires coming in. We're looking to explode that over the next, really through the rest of this year and into next year. So it'll be a lot more hiring from that standpoint. I also think it's important to note that, you know, Rocket go forward strategy or or SCCM solution is change man CMF, and that's something that's really good for us, because it means that it's a large investment on their side. Couple of things is we are looking at integration points, with Rocket products. One specific one is, Enterprise Orchestrator. We've been looking at that one, hoping to be able to come up with some integration points for that one. Probably not, this year, but I'd say as we move move into next year, we'll start exploring those things soon this year anyway. Couple of things is, getting much closer now to getting a date for the CAB, the custom advisory board, looking at the November. Might be second week, but I I really think the first week is what we're looking at, and it will very well be at the Waltham office right here in Massachusetts, which is the headquarters for Rocket. I know that we can't invite all customers. There's gonna be some customers who'd love to come, and some who cannot. So one of the things that, I've been working with engineering team. We started with a lot of the folks in the, the EMEA side just because they probably will not be able to attend a, live cap. And we've had discussions with them around things that they'd like to be able to see in the next release. We're gonna start transition that one to The US because it can be a lot of customers who would like to be able to attend the cap but can't attend live. You know, these typical these things are usually a little bit more an intimate setting. Ten, twelve customers typically, like to keep those things slow, small. It just makes good for, discussions and so forth. Certainly wanna make sure that we at least capture, customers' input, and that's why I wanna be able to have these conversations outside of that too. Couple of things to point out is shares coming up. We're actually gonna be there. That's August 17 to the twenty first right in Cleveland. And the next webinar scheduling for, probably right around the time that we'll probably end up doing the cab either just before just after the cab, and we'll probably have a sneak peek for eight three two as well. K. This slide has gone through a number of changes. This is probably the last slide that I'll have up for this one, specifically for 8.two, because the next webinar will be after eight dot two at Titus. So, I've stated this a handful of times. You know, eight dot two has been around for seven years now at this point, and it's gone through a number of patch updates. The last patch update is coming up to, I think it's a little bit more than two years now. I think it came up in January or February, and that's gonna be retired in, September. Earlier, the go forward is gonna be eight dot three. Eight three patch update one was, just released. We have patch update two that's gonna come out in the January time frame January, February time frame, in, 2026. And then really for the first time in a while, we've been able to sort of, indicate exactly or give you a good sense of timeline for the next couple of patches. Now patch update three, I just wanna point out that that would have been the first patch that would not have any of the customizations and we don't concentrate on executables for those things. But it doesn't make sense to do that if we're gonna have a cab later this year because that information, those that feedback, those requirements, those enhancements will then feed into that particular release. It'll be hard for us to go ahead and, only do executables because it would mean that the next major release that we'll be able to do those things would be until eight dot four. So that's pretty far away. So we're gonna hold, patch update three as the last up, patch update to include both executable and customizations just so we can get those things out. And then lastly, before I transition over to, to Bob, is just gonna talk about August for just a little bit. Time frames I mentioned is gonna be in, q one twenty twenty six. Gonna be probably right around, no earlier than maybe mid January. We'd like to do it right after the holidays, and then probably no later than, mid February. So it's gonna be right at that time frame right there. As I mentioned, patch update three, would have been the first patch update to have just executable, something we started, back in, the a two series. I think it was patch update four, patch update five. I can't recall now. But we're just gonna hold that for one more to include everything just so that we can make these cabs more meaningful and all of the other conversations we're having as well right now. No major themes, but we are looking at things around XML updates, recording, client pack, ERO. There's gonna be some other updates around d v two as well. As we get closer to, you know, the the end of this fiscal year, we'll be able to give a sneak peek for those things. That's what I'm looking for or planning for for the next webinar after this one. And then, folks will be able to see you know, we'll probably cherry pick some of those things to give you guys a sense of what's gonna be coming. K. And then with that, let me transition over to Bob. Bob, I think you have a handful of slides to take us through and then, we'll launch the demo after that. Great. Thanks, Jimmy. Let me just jump right in. So Git is is a hugely popular mechanism for keeping track of complex development efforts on Linux and Windows amongst others. And it is function rich but lacking any kind of overarching control. Customers using z m f are accustomed to being able to control code movement throughout the life cycle, and we can see the need for local development to be introduced into the z m f life cycle at some point. But let's face it, you almost certainly don't want your git aware developers having to learn how to use z m f or take on more knowledge than they really need. So the main aim of this z m f git connector, which I'll be showing, is to allow desktop developers to use familiar git commands to introduce change into and receive change from ChangeMan z m f. Now just to avoid some confusion, it's worth emphasizing. We're not talking about making ChangeMan z m f mimic git on the mainframe itself. Z m f has a long established set of methods and tools to handle parallel development, managing the life cycle movement, and so on. So this work that you'll be seeing connects Git on the desktop with z m f on the mainframe. And you'll see in the demo that, I've made an assumption that if you're watching this, you're already well versed in Change Man. So I probably, you know, make some assumptions there. If you don't know Change Man as well, there may be a couple of, terminology things that, you know, may not make sense. But if you do know change man, then really this is all about how we can use the Git connector to do the work we need. So as you look at the slide, Git provides a few standard protocols for the communication with, with remote Git repositories. It looks at the characters If you look at the the first line of the slide, it looks at the characters up to the colon in the URL for something called the, for the remote repo to decide which protocol that it's dealing with. Obviously, by default, Git knows nothing about change management's EMF, but it does allow us to provide the logic it needs to communicate with z m f. This is done inside inside something called a Git protocol helper, which we provide. Everything after the z m f colon slash slash is formatted as our helper wants to see, and and you're using and we're using the first node to address a Zoe z m f profile of that same name, which is to be used for all communication with z m f. The helper issues Zoe z m f line commands and uses the values held in that profile to enable the communication. This, information includes, such as the domain name of, or IP address of the zOS system on which z m f is running, the port for which the z m f rest API server is listening on, authentication details such as user ID and and so forth. Then the second node, currently, is being used to identify the z m f package, which is acting as the remote repository for our code. The idea is that, eventually, we may widen the scope to more than just a single package that we have now. So that could include maybe a a group of participating packages or a collection of feeder packages for an ERO release. In the demo that's coming up, we'll be using a z m f system that's called CMND. It is a z m f d p site running eight three patch one, so that's the latest change man. You'll notice that I target a package called b d c v zero zero zero one twenty five. Worth noting though, you don't have to fully qualify just like in the, ISPF panels. You know, usual usual abbreviations like leaving off the leading zeros, you could do and it works just fine. Let's go on. So, this is where we're where we're at right now. We use a single package which already contains the components which may need, which may be needed by the desktop. The development can introduce new or unknown components, the z m f, to that package. But any existing components, so they're already part of the, application baseline, they must be checked out into the package. Moving away from this, restriction may form part of where we go next with the git connector and, certainly would love to hear your feedback. So you can do things like clone from the package to get contents down to your desktop. You can push changes from the desktop back to the package, on z o s. And, of course, there's the usual checks you'd expect, us to make, to to be sure we're not regressing changes made by someone else, you know, in the meantime when you're working on things. And and you'll see this as part of the demo. You can fetch, you can pull, components that are changed, from the remote repo, essentially, the package back down to the local repo and merge them into your development branch. Alright. And then last slide here just so, we can we can set some things up. We'll see the git command line, interaction with z m f based on remote repo running on Windows. We'll make use of all four of the Git commands, which, you know, contact a remote repo in order to transfer code to and from that repo. And then we'll take a look at, some GUI apps which make use of Git running under Windows. And you'll see that as we, as we go forward. So just real quick, while I am well versed with Change Man, Git is somewhat new to me. And and there's a couple times in the demo that I might stumble a little bit. Those who know Git, may chuckle at that. But, with that, let's start the demo and then we'll take your questions afterwards. So I'm gonna start in Versus Code, but, not because I wanna show Versus Code first. I'm actually going to I have a terminal, set up here. But this just provides a number of things that make my life a little bit easier. And so, we'll we'll start here, with the demo. So the first thing that we want to do is clone a package. Now before we clone a package, I just wanna make sure we have a a communication through to the mainframe. So I can do that by issuing a zoe z m f get z e, which is z m f environment data, from a z m f profile called CMND. So that's going to, communicate, through the rest API server and then to the target z m f subsystem, which we've, just saw it now. It now sent back a response that's presented in this JSON document. So because I got that response back, I know that I have a, a good connection. So I'll just clear that away. Now before we actually clone, let's let's take a look at what we'll be cloning. So if I come over here and we take a look at BDCV package one twenty five, we can see that it just has, four components. It b bank 20 p, and then three copy books that we'll be, looking to clone. So let's come back over here then and let's, actually perform the clone. So we can do a get clone z m f colon forward slash forward slash, using the profile CMND from package b d c v zero zero zero one twenty five, And I'm going to put that into a local folder under clones called b d c v zero zero zero one twenty five just to be consistent. So there you go. You can see the clone invocation, then the z m f protocol helper, will get involved, then the Zoe's z m f profile, which points to our z m f subsystem, and then the package. I'm gonna place the results as you saw. And now you see it it actually made the connection. It's starting now. It sees that there's four comp, components. It's bringing those down and it's giving me a a progress report. And eventually then it tells me that it's complete. So that's exactly what I, wanted to see. But, so why don't we, take a look inside the folder that was created? So we can c d over to b d c v zero zero zero one twenty five. What did I do? Yeah. There we go. B d c v zero zero zero one twenty five. And then, we we could take a look in that. And, of course, we have, two directories. Right? A copy and a source. Let's go into the, the source. So we'll switch over to that. And if we look inside of there, we have the one component, b bank 20 p. Now you'll notice the file extension was changed to c b l. And we did that, so that we could enable, smart editors and and they would have a chance then, you know, to be able to work with the components. As I mentioned before, you could see up here everything that was brought down. The important bit here is the, you know, pound, z m f pound pound, which, you know, tells us that, that, you know, it communicate the z m f, what it communicated to the package, right, the date time stamp. But, there's a couple other things though that Git also does. So let's do a Git remote minus v just so you can see that Git populates something called origin with the URL that we put in. So that's gonna come in handy in a little bit when we're trying to do, you know, make some other changes. So let's go ahead and make our our simple change. We can do that by saying something like notepad for b bank twenty, p dot c b l. And it'll we'll we'll see. It just brings up, you know, a component here. I'll make a simple simple change. I'll just say changed, today's date, 2007, twenty two twenty twenty five. We'll go ahead and save that away. So not nothing too dramatic. Just wanted you to show that. And and now I want to stage the changes into the local repository. So I can do that by doing a git add, b Bank20PDotCBL. Alright. So that staged them in. And then I want to, do the commit. So I git commit minus m, and we'll just say, local repo change. So I've done that. And we can see that that that was done. And then we want to, now that it's committed, we wanna push it back to change my z m f. So I can do that by a git push origin master. And so now that's communicating, using the z m f git protocol helper, talking to the package. It's working out if there's any conflicts back at the package. Then if not, as in this case here, it'll send the changes back up to the package. K? So there we go. So it it actually did that. So let's swap back over here to the mainframe and take a look and see if I was to do a, a v c just to to kind of look at what's going on here. We can actually see what just happened here. We can see local repo change and there's, I have SSV turned on, which I had mentioned was important. But let's go ahead and grab this SHA-one token here. And so we'll just copy that. But let's look inside of the component as well. And we can see here change O7222025. So, we can actually see that it it brought it back. Now let's swap back over here. I I mentioned that we, you know, had the, the the SHA-one token. So we can use that by doing something called a git log minus one and place that token. And so it's going to communicate out and now we can see that indeed there was the commit. We can see my name. Of course, I'm I'm recording this demo in advance and we can see that there was a local repo change. So, you know, as we've seen in ISPF, the, the client source component is in incomplete status. Right? So if I swap back over here, we'll see that it's in an incomplete status. Now, Git doesn't know anything about, building a component, whether that be in z m f or in, z o s, right, in general. But we can always use Zoe, z m f line commands to to get that done for us. But because we need to supply, right, a job card in order to, submit something, we'll need to be a little bit creative. And it's almost as if, it was an XML service, but we'll be issuing it from a command line. So to do this, I've written a few PowerShell scripts. That's why I was over here in powersh PowerShell to simplify, that automation. And just to be clear, this is not part of the out of the box Git connector that we're talking about, but just some scripting I did myself just to, make this a little bit easier. So I'm going to change directories. I wanna get back to something called, scripts just so I can show this to you. And then I'm going to bring up what that script is. So in this case, it's called build z m f component, and it is a PowerShell script. And so here it is. Now the important bit is all the way down here at the bottom. So let's just take a look at that. And it's right right here. So you can see that I'm using a Zoe command z m f build component and then I'm saying that I wanna, you know, get it from a variable on the package and the component. But you can see here there's this j c 1234, which corresponds to the job card that I was talking about. And so I've set those values so that it'll just make my life a little bit easier. You also notice that I've, passed in some other parameters. And I've added some, more intelligence here just so, you know, I I I'll let my script prompt me for what I need to do. Okay? So why don't we go ahead and and run that, run that build. So we can do that by doing build, and we want to, sorry, build z m f. There it is. Component, dot p s one. And so it wants to know, what package and we know that it's b d c v, one twenty five. We know the component is b bank 20 p. We're gonna tell it that it's source. And so it's now telling us that the build request has been sent for processing. It and and I just had my script, echo back the information just so I could see it. I can see that, this is the entire command that was sent up to the mainframe. And then I did get a a message back that it was complete, and I see that my return code is is, 00. So if we swap back over here to the mainframe, we can actually see the, the the job was submitted. JobTS5741Z, package BDCV125 component was activated. I got a max return code of all zeros. And if I do a a refresh here, I'll see now that's in an active status. So that's exactly what I wanted to be able to, to see. Right. So if I then, you know, if I wanted to do anything else, I could certainly do that. So why don't we, go ahead and make another change? But this time, you know, let's let's just keep it, simple so we don't have to do all of that. And we'll edit, c bank dat. And we'll we'll simply come down here and let's go ahead and, you know, repeat repeat a line there. And we'll go ahead and say, z m f, let's say, ISPF client change. Change. Yeah. Right. So we'll say that's good. And then normal z m f stuff is coming back. So what I'm trying to do is, show some additional commands here. So, right now, this is this change man. So, we've we've went ahead and made that change in change man. And so now we can, swap back over and we can attempt to do the same thing, over here in our local repo. So let's go ahead and swap back over to, where we need to be. So that's in, clones, slash b DCV000125. And now, we can do a git fetch, origin. And that'll go away to the package, see if anything has changed, since the last time that we pulled any stuff down. And it's it looks like it's seen that one thing has changed so far. And indeed, it says extracting one component. That's what I would expect. That one component is indeed c bank that the, copy book that we made to change. But because we've not changed anything at the local branch of our development, there's no need, or I'm sorry, there's no problem with it pulling it down. So so that was a, a fetch, not a pull. So if we do a git status, right, indeed, we'll see, that our branch is behind words and master by one commit. So, you know, we we could then, deal with that by doing a git merge, origin master. Right. And so, just understand, this is all forget at this point. So, the only time z m f would come into play in any of this is when we're talking the backwards and forwards on a on a clone or a a fetch or pool or a push. So that has merged the change back into and just to show you that's the case, let's let's take a look at the actual component. So let's, see. CD to the copy library, and then we can take a look at that. So that was called, c bank. Dot, c b l. Right. And then indeed, here's the line that I added in. Right? Z m f client change, that that we we put into that. So, you know, that that's all that's all well and good. This entire thing could have been done in, you know, one one step. Right? I could have, over here in, in in z m f, you know, it could have been done at one step with a pool. So why don't we go ahead and show that? So come over here to z m f and, come down to our change. And why don't we do a let's see. We'll just repeat that line. We'll say, number two. We'll go ahead and save that away. ZMF change number two. Okay. So we've made the change there. And let's go ahead and get out of this. Oops. Let's come back to where we were. There we go. So now what we wanna do is we wanna do a git, pool. Let's do that. Git pool origin. And so now that's, you know, communicating up. Because it's a pool, this is the same as a fetch and merge in one go. And so now it's not only going up and finding what it needs, bringing it back, But it should then go ahead and, alright, merge that code in. And indeed, there there it is. We can see that it completed that. And if we were to take a look at that again now, this is the c c bank, dat dot c b l. Dat. There we go. It'll bring that up. And indeed, I can see that there was, you know, a change, a change made there. And and you you can see that. So now let's let's create some some conflict. Okay? So how would we go about creating some conflict? You know, because that was all just the up and down, back and forth, pretty pretty simple stuff. So let's, actually, we were just right there in that component. So let's go back into that component and insert a line into that. So, let's say something like, z m f, introduce conflict. Right. So we could go ahead and make a change there and then save that away. And now if we come over here to ISPF, we can edit that, and let's go ahead and modify the exact same line. And this is the EMF, client change. We'll just say, for conflict here. And so we can save that away, and we'll say for conflict here. We'll hit enter. So now we've made changes in both places. And so if we come back over here, so I would need to stage and commit it before I can push it. So let's go ahead and do a git add c bank..cbl. And so that worked as we would expect. And now I'll do a, git commit minus m. We'll say introduce conflict. We'll try to do that. Right. And so now now it's committed. So that worked. But now I'm going to push it to the package. Now, of course, we've also changed the package. So if this works, then we would regress changes. We don't expect this to work though. So let's go ahead and try that with a git push origin master. And so now it's it's, you know, attempting to communicate up, you know, using the protocol helper. It knows that we have a change locally, which we've staged and committed. It's now talking to the package. And sure enough, it says, wait a minute. There's a there's a conflict. You can't you can't do that. Right? So it did not do the push. But we could go the other direction. So let's do a git pull, from the origin. And so, we we should be able to pull that back and sure enough, here we here we see that it's able to communicate. It's pulling it back, and that's good. But, obviously, now that it that it pulled it back, it still sees there's a conflict. So let's take a look. Now, Git is is, you know, provides some some rather useful tips and tricks in the actual component when there's some type of conflict like this. It'll add a couple of lines. You'll see that here in a second. So if we go, dot c b l, we hit enter, We can actually see what what Git did here. Right? It it added in this this head. We can see the z m f introduce conflict message, then we see another line, then we see what came back when we did that pull from, z m f and then some more. So what I'm simply going to do here is just remove that bit, remove that bit, and remove that bit. And then we'll we'll come down here just to be sure, and we'll say something like, now, resolved and now resolved. Okay. So now that we've, we've done that, we can, go ahead and save that away. And now we can do the git add. Right? Because we once again need to stage that. So that's on cbank..cbl. Then we can do the git commit, minus m, and, this time we'll say, resolve, change conflict. And, indeed, we see that worked as we would expect. And now we want to do a git push origin master. So that's going to send it back to z m f. And, of course, that's that's checking to make sure that everything's in order. And then, it's giving it to z m f, you know, the the change component from the last commit. It's going to send that to z m f. So now we should be fine. Everything should be, both the same here as well as up on ISPF. And so we can see indeed that our component was activated. And if we were to, just v c that real quick, we can see indeed there's our description, resolve change conflict, as I would expect. There's our SHA token. If we come out of here and just view it, we can see exactly what we we did there. The z m f introduced conflict now resolved and now resolved. So that's what I would have expected, to to happen. So, just a a quick summary then, of what we've done. We've used all four of the up and down commands, the clone, fetch and pull, and push. They're the ones that make use of the git protocol helper and any communications with the remote repository. So to re reiterate, the only departure from native native git code is on those communications with the z m f, colon slash slash protocol. So that's command line. Now I'm just gonna go ahead and show you a couple of other things really quick here just so we can we can finish up. So let's go ahead and get rid of, command line. Let's look at Versus Code. So, there there's a couple of things we could do here with Versus Code. We wanna go ahead and do the the same thing that we did, before, where we can, clone a package. And so I can just, I could I could click here and say that I want to, you know, clone. So let's go Oh, I'm sorry. I was it was just right there. So there we go. We're going to go ahead and clone, and the very same thing, ZMFColonSlashSlashCMND forward, and we're going to go for BDCV000126 this time. Last time was 1 '25. And so where do we wanna put that? We're going ahead and put it on this p PC. My c drive, ZMF git, we'll put that in clones. So we'll go ahead. So it's cloning that repository now, doing the exact same thing that we saw on the command line. Right? Where it's, it's communicating, using the git protocol helper. It understands where, CMND is, because it's using the Zoe profile. It now sees the package, communicating back, pulling all of that information. And so we're going to see that, referenced here in just a second. So depending sometimes this takes, you know, a little bit of time. I'm going to go ahead and just say, you know, add it to the workspace. And so I can go ahead and see over here. There we go. So there is before, I just had one which was package one twenty four. I now have package one twenty six, as well. So I can go ahead and, open that package up. So let's go ahead and open the clone package. There we go. I can do that over there we go. Open the clone package. So, let's let's just go ahead and do the, very same thing. So we'll come over here and just say, this time, changed. So I can save that away. And notice now it's telling me in my source control that it recognizes that, something was changed. And so I can, go here and, commit those changes. So there's nothing, staged. Would you like to commit directly? I could go ahead and do that. It'll go ahead and make those changes. So I can, you know, edit edit the message if I want. Right? So, and say that and then commit. And so all of these steps would be, you know, essentially the same. I could go ahead and, sync that. And instead of doing the command line with Versus code, it's going to prompt you and walk you through everything just, a little bit. Alright. So while that is finishing, let me just go over here and just I wanna show this final one just so you can see. So, this next one is, GitHub. And so it works essentially the same way. I can go ahead and, create an, I'm sorry, clone a repository. So, I'm gonna use URL. So again, ZMFColonForwardSlashForwardSlashCMNDBDCV, zero zero zero. I'm gonna go for one twenty seven this time. I'm gonna put it into, BDCV000127, and I'll go ahead and clone that. And so it's going to communicate again using the protocol helper. You know, all of this becomes very repetitive. It's gonna communicate, using that protocol helper back to change man on the mainframe, working out everything that's there, pulling that back, and placing it here into the repository in my, in in my GitHub GUI. And what's worth pointing out here, I said it before, but I'm sure I'll probably get some questions. Could this work with something other than GitHub? And the answer is yes. It could be GitLab. It could be, you know, whatever it is that, you know, you you want it to be. But you can see here that that's my current repository. Now, again, I'll just make a quick change here. Again, I'll do a, a copy book this time. We'll just open that up. We'll say notepad just like before. We'll come in here and just say changed, and then we'll save that away. And the way that this works is, I can get out of there. It recognizes. Right? GitHub automatically recognizes that something changed, and it says, you know, what do you want to do? And I could say, you know, I'll just say changed here. You know, I could I could first go ahead and and take some other actions if I want, but I'm fine with it. I'm gonna go ahead and commit that. Now it it knows it's committed and it says you wanna push those changes, to the origin. All I have to do is just click the button. Right? So that that is the benefit to, you know, something like a a GUI interface because it's understanding what's happening behind the scenes and then prompting you along the way. And so I could go ahead and, you know, it, push that and I should see those changes happen. So just for the sake of time, because I've ran just a little bit long, I'm going to, you know, stop now. But you can see what we've done. So the the Git connector, you can use that through, a command line. You can use that through Versus code, or you could use that through some type of Git GUI interface. Thanks so much. Bye. Hey, Jimmy. I don't think you're, unmuted. Can't hear you. I am not. How about now? Yep. Is that better? I gotcha. Yeah. I gotcha. I was just saying thank you very much for a fantastic demo, and we've got exactly ten minutes to go through. I know that, I've been trying to keep up with the, the questions as you have too. I think you've answered all of them. I mean, there might have been, like, one or two. It might have just not getting here, but I think you've answered all of them through the chat. It might make sense to maybe, just review them again if that's okay. Yeah. Do you wanna take the new ones and then go back to the older ones? Or how would you like to do that? Yeah. I think if I scroll to the top, I can get it. First question is oh, real quick, before I forget, I've just been reminded that I need to remind everyone in the audience that, to do the survey, that comes up because I I think it's gonna be just a handful of questions. And if you have a chance to do them, that'd be great. First and foremost, probably helps us to build, better webinars, going forward. So if you take a few minutes to do that, I'd really appreciate it. Alright. I think the last question is, somebody should always create a package via TSO or ISPF. Correct? So a package needs to be so so going back to the the very beginning, if if there's components that are already in Change Man's baseline and you want to clone that package, then, right, the package needs to exist, the components need to be checked out. But you don't necessarily have to use t s o I s p f to create the package. Right? You could, you know, create that via, Versus code. You can create packages there. You saw me using some, PowerShell scripts, and and the only script that you saw me use in this demo was to build a component. I actually have written a number of other scripts that will actually create a package, check out components, do all those kinds of things for that very reason. So, yes, you need a package, but you don't have to create it through ISPF. It just needs to be created and the components checked out. Thanks, Bob. Is browse listing available to check errors? David, I'm assuming you're asking is browse listing available in our Git connector, and I'm just not familiar enough with the Git connector to be able to say yes or no definitively. I'll have to check on that, and I'll certainly do that. I'll take a note and then I'll have to get back to you offline. Just scroll. Sorry. Another one just came in. I'm guessing audit means a function that must be done on the mainframe. Yes. You know, currently, there there's not a way to, to kick off all it. But, great suggestion. We should, take a look and see if we can do that from some of the other interfaces. Love it. Couple of them are related. Can Topaz Workbench or DevX Workbench replace Tomcat? Yeah. Yeah. I saw that. And so and unless I'm misunderstanding something, Topaz and DevX Workbench are IDEs, whereas Tomcat is a web server. So I think we're talking apples and oranges there. And and maybe I'm just misunderstanding. And if I am, please please follow-up. I think that was from Gary. So, hey, Gary. I'm glad you're, you're on the demo, but follow-up if need be. Yep. And then the other question around Tomcat is, can we achieve change main CMF and get integration with our installed Tomcat? Yeah. It it it's and there was actually a follow-up to this. So I tried to answer it. I think I think Tomcat needs to be there, but I I guess I could be wrong. Someone seemed to suggest that you you, you could do this without Tomcat. I I'm not aware of that because there's, behind the scenes, we're using a lot of the, the the XML services. And I would think that Tomcat needs to be running, but maybe there's a way to do things I'm just not aware of. I I can follow that up with, development too. I think it's in that documentation. Is it not? It it it might be, Jimmy. Okay. That's alright. I'll, I'll I'll take that offline too just to make sure. I think now we're into some of the questions you already answered. And then some newer newer ones just came in, Jimmy. Right. Yeah. Let's see. New platform. Let me go down. Yep. Can you use the Zoe c m I, Zoe ZMF CLI to submit an audit? Yes. Great. That was Lisa. And and yeah. Great great catch, Lisa. I I'm pretty sure you can. I've not done it, but I'm pretty sure you can. I'd have to go double check the CLI, and I don't wanna mess up my, my screen here right now. But, I can double check that and and get back, get back to you. Okay. This is a bit of a comment and a question. So in our organization I just lost it. In our organization, we want to make, change man's source available to get so we can use DevOps tools like code analysis and scanning. Our plan was to push changes from ZMF to Git. But now after the presentation slide, it said that this is, not how ChangeMan should be used. Can these DevOps tools connect to ChangeMan Git like a regular Git repo? Yeah. So, you know, when you're talking about, you know, doing things with, you know, within a, a pipeline, that all all of this becomes interconnected. But, the way that we've done that and it and it's a whole separate demo that I have. It it it's out there on on the I think it's on our website right now. It's where I created a CICD pipeline, using Jenkins. Right? And then we have webhook that we're listening for when a build is about to occur. Then, using some of the, the services, the external services, we're able to not only bring that component, but also all of the related ones. So so for instance, if it's a a COBOL source module, you're also gonna want the copy books and other things. You could bring those down locally, which then gives you the opportunity to compile that and get an executable. You could also then kick off and run sonar cube or or do other things. But, you know, there's a few more steps involved, and I that was not the intent of what I was trying to show today. Was really just trying to, you know, show some basic, Git integration. But that that's something, I think that was, Stefano or maybe some others that have asked similar questions. Certainly love to talk with you about that in in more detail offline. Okay. Couple more Bob, also from Stefano. We'd also like to get sources for DevOps operations on the queue and so on. So not having your package check out as a prerequisite. Oh, okay. Sorry. I was I was I think I was actually trying to answer that question. So the the questions are popping in so fast now. So I think I answered that question and not the first one. Oh, goodness. I'm gonna have to go back and look at these offline just because they're they're flying past my screen, Jimmy. Yeah. Mine too. I've, I stopped scrolling and I'm just at the bottom. Alright. So let me do the very last one. The Versus code extension supports Changeman, I believe, through so using Changeman's APIs, can you use that in addition to the Git connection, possibly get as a local repo? And our follow-up is with the webhooks that part of the pipeline, actually, that's separate. Sorry. Yeah. Yeah. That's from from Jim. I I believe the the answer is yes, but we should probably double check with development because, I just wanna make sure on some of this stuff. But I think the answer is yes on that. Alright. So there's at least two questions. Do we have to follow-up on? One's for me. I need to take up them too. Just trying to go through them real quick. I think we get all the question. Anything else you've answered, while you're doing the demo while the demo is planned. Yep. K. Okay. Alright. Well, thank you. Thank you everyone else and, Olivia and the rest of the team behind the scenes. I think we're good. And, I think in about twenty four, forty eight hours, this will be, available for replay. And as, Bob mentioned, there's a couple of questions that are outstanding. We'll, we'll follow those up and then reach out to you individually. Yep. Thanks, everyone. Really appreciate you joining. Bye now. Bye.