Clearing the Bug Backlog in Azure DevOps - A TimCo Retail Manager Video

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
welcome back to the tIMCO retail manager course this course focuses on real-world application development in this video we're going to clearing the bug backlog we've got a bunch of bugs in the list we want to get rid of those so we get our application kind cleaned up and ready to move on to the next step now for those you who are patreon members the $5 per month level or higher head over to the source code for today's video now if you're new to this project welcome if you're just interested in a topic this video covers I think I get a great introduction in a real-world setting if you'd like to start this project from the beginning with us there's a link in the description to get the full playlist in order there's also a link to the phase 1 course if you want got to speed a little faster and like a source code for each step either way I appreciate to give this video a thumbs up doing so helps spread the word ensure more people will be helped by this video ok let's head over to our browser and I've got the azure devops project pulled up for the timco retail manager let's go to the boards and i've already have this list filtered notice I have it filtered by to-do list or to-do items so if there's items that are done they will not show up in this list that's all I have is to do and don't know having us on the the currently doing because a boards view you can see that there is to do doing and done so these are the things that are done we still have a list of things that needs to be done now we're just doing a real light pass at this we're not going crazy with our our work items but what this is is more um since I'm doing us as a single developer I'm using this as a place to record all my notes of things I want to get to that I haven't yet for example today we're gonna go over a number of bug fixes and most of those bug fixes have come from you the viewer so people have watched my video they've tried out the the timki retail manager I said hey you know what I found this this certain scenario where's a bug whether it's a common thing or an edge case and they let me know instead of me going in see okay legs that and kind of drop what I'm doing and go do that and come back what I did instead is I have created a work item so it's not already a list I got a new work item new issue and then IIST my naming convention is to say bug : and then whatever the bug is and then I say to do I leave it alone the key of these systems is not to go overboard with the ceremony of creating an item or an issue because if you go too deep into the ceremony of crannis issue where you say okay let's assign it let's figure out the priority of it the effort involved make sure you got a full description and then change the area the reason put some discussion in place link it before you know you've you spent ten or fifteen minutes creating this ticket when it really was gonna take you five minutes to fix the bug that may feel like you're doing something but in reality you're just kind of avoiding work and so especially you are a small shop like for me I miss one person working on tIMCO retail manager now I have a bunch of people looking over my shoulder which is great because you find the things that I miss but I'm not gonna spend a lot of time here so be careful when you see some tutorials out there are telling you how to go so deep into work items you know what the naming conventions aren't all that fast stuff that can be great for certain environments but don't think that applies to every environment I use it very lightly when it's just me or just a small team when it comes a larger team yes you need to go into more depth and have a little more organization in place so that you don't just create this big mess that no one uses but I'm a firm believer in if it's not quick it won't be done I've been large teams where he have his whole set of meetings to figure out how to do this bug system and we have this whole huge outcome of that of these the ways of doing it here's the plan for doing all the rest it lasted a month or two max and then we're just kind of writing things on paper because this is too hard so just make sure that you don't make something hard for yourself okay little soapbox there when I sure we're clear on that okay so we have a few things in here Noah's bug bug suggestion bug bug let's zoom in a little bit here so you can see a little better that's probably better okay let's if I take a filter ah rats the filter has to be on in order to I did again the filter has bi gnorga shrink this list down you can't hide the filter even though we're kind of done with it like I want to go away but it won't hide so just know that's the the problem there why I can't kind of shrink the screen a little more those first three things we're not going to cover in this video so we can scroll past that and now we have our bugs so let's tackle these bugs one at a time and then we're gonna put a commit in for each we won't push the commits until last and I do have it so that I'm a continuous integration it will link these bugs to be to have a commit message or the get a commit message and then also the the build number of when it goes through the continuous integration and we get to continues to plummet going then we'll have that as well where I'll say okay that's the deployment as well okay so we've got this set up so let's go mamoo is off a screen I'll keep it on my screen but you won't be able to see it but just know this is the list we're gonna start with the user options showed you for login and go down through let's open it up first so you can see it this is the other helpful thing note that this message right here doesn't give you a ton of information but it's it's pretty simplified but we have a description that says you can access the user menu before you sign in which if you do that will throw an error but then you're not allowed to login so that's a weird funky issue okay and that much more clearly explains what this quick little title tells you now as title is clear it's just not necessarily clear as to where that bug is or how it works this kind of message right here is really important and I want to thank all of you who have given me bug reports because the the replication information you gave me is invaluable the the steps to replicate the issue really really helpful and I've pasted those in here so that way I know exactly where to go and how to follow up to make sure it works okay so let's go over to I know back to my work item list here go back over to here and what we're gonna do is we're gonna fix that issue but first I'm gonna team Explorer and I don't have all my options here I need to go to the manage connections and double click on timco retail manager under the dev Dasha comm and that's gonna bring in more of my options notice I have more options here including I have my work items list which Denish me a list but it's a little clunky because I have zoomed in font size I have font sizes larger and it kind of goes off a screen and it's not really a great view anyway I could may a little bigger like so but then you have this massive screen window so I don't typically use this I use the web interface a different screen or different para my screen when I have this open but just know now you can go a changes there's a related work items we can add the number that we're working on so we'll do that in just a minute the first we're going to view the issue it's always good to view the issue while it's an issue before you try and fix it okay so kestrels starting and our day PF is starting our our API started buying up the office screen there's our login whoops it's already showing so if we log out notice that users are still there so I click the user go users management because you don't have permission to access this the right to the sales forum which that's not the sales form but that's another issue it closed now I can't even do anything there's no option here to to log E and I have to actually hit exit so that's our bug so let's close this out and we'll address that bug so if you go to the trm desktop UI and in the view we have a shell view and that's where our menu is visible so notice we have the users menu here come down here the account is not visible because we want to make sure that's not showing and we have this is logged in check and that's going to fall back to collapse me it's not gonna show one do the same thing for users okay so let's copy this copy that and I'm going to go up here to users paste that in and it should be that now users will not show unless we're logged in let's verify that's a case and then we're also going to think about changing this around in fact I'm gonna do it now let's add another menu item that allows us to log in this is not strictly on this bug ticket but it's kind of referenced there but you can't login if you went to the user menu and that's kind of an issue so let's add another menu item in fact let's just copy and paste instead of trying to retype this and where I say log in and we will say let's copy this right here in fact I was cut that so now accounts gonna show all the time but sometimes we'll have log out but that only shows if they're your is logged in and we'll do is we'll have another one for and this is long in by the way and I don't know if we can have the underscore under the L for both because one is for log in one's for log out let's let's change this just in case to the I remember the alt allows you to then hit alt a and then I for log in so that's why we have the underscore there is to indicate that this is the quick link when they use the Alt key that's for using keyboard without the mouse that's an accessibility thing so we have logged in and we're going to try and do the same thing here so it's actually paste this in the same thing only we're gonna say is logged out you know how it will have a property for that then okay so now we have log in and log out and that should show it's only one option based upon what were our login status so now let's go over to our code which is the view model go to the shell view we're looking for the is logged in first is logged in right here and we're going to create a new property that's going to be a whoops I an auto or a full property actually you know what let's just type it out public bool is logged out that's easier and we're let's try just returning not is logged in okay why do the logic twice we'll do it once okay so this is going to give us the opposite of this which you only have one of them showing at a time so that should give us this value as well let's give us a shot we're testing two things one is the users menu hidden and then cami still go to log in even if even if it's not either for not logged in okay so let's try that we don't have a login menu or login method yet so we need to make sure to get that right oh come on it kind of popped underneath my my browser okay so now we have login which doesn't do anything but we don't have a user minion which is good now if we log in we have both log in and log out so that's not great probably because we aren't triggering the notify of property change so I have to make sure we do that so let's change that let's also make sure that we have the ability to log in it actually triggers the form okay so let's close that a stop this and now let's create the log in method and trigger the is logged in let's do a control f here and the current the current document for is logged in there you go we have these two spots right here so I'll notify have property change for is logged in and is logged out okay and we'll make sure there's no other references there's not cool so that takes care of that problem but now we have to have the the menu option 4 log we have log out and what does that do that does this code right here we need to have some type of code to give us the the login screen so let's come up at the very top here and we have this right here the activate the log in so let's do the same thing when a user says I want to log in what I do we don't need a public async task we just need actually do public async task log in and then in here we're just going to do this right here which activates the item asynchronously okay just making sure that we actually do something asynchronously and we're going to wait it okay so now we're gonna log we would say log in we're gonna go to the login view which right now we have no way of knowing actually know what we do have a way this is a temporary thing to do but let's not activate the login view when we start I just allows it to task to make sure the login button works this is really only for if we had a case where for some reason this happened we have this white screen they can still go login there we go that works when I login it's only a log out option when they log out goes the login form is only the log in option perfect so I think that takes care of both the kind of bug we saw as well as the actual bug we saw so let's close this all out let's uncomment that don't forget that now we have a working application it's going to login or had a login screen automatically but you can also go and click on it and say hey login again let's try one more thing that word it's right now it's set up correctly let's try one more thing which is to try go into the login form after your are you there it seems like nothing really happens if I wipe this out I'm wondering if I go to login screen yep it creates a new instance or two of that that form so it does go to a new instance of it every time but when you finally use it you can go and actually start doing stuff cool you can also really use as menu now there we go so that's all working which means it's time to commit our code now this was item number 25 so let's go to our commit let's select our two items to stage let's go to related work items and say ID number 25 hey add which says bug user options shown before login so say this is related and we're gonna say fix user showing user menu showing before login the user menu no longer shows before login and the other thing we did was we fixed the we added login added a log in menu option option in case of another issue like this all right so I commit staged but we're not gonna do any more than that we're not we're not going to sync it okay so now if you a sink there's one outgoing thing to do we're not gonna send it yet and the reason why is we have a continuous integration system I don't want to have that keep going over and over and over again when we're doing a bunch of little things how do I send all the stuff at once and let it do one big built okay so that is the this bug right here now we're going to go to this one this is a fun one this is one that I totally missed which is that when we upgrade the dotnet core in the API project yes the API project I forgot to add into the app settings that JSON file the tax information and so now the lookup fails in the config helper for the get tax rate again really helpful they know exactly where to look for that bug so let's go fix that bug this is bug number 26 so in the API the API project in the library we have config helper let's close others we have this configuration manager dot app sayings tax rate which is the old-school way of of getting us information in fact this isn't a great option either because we already have it to do up here it says move this from config to the API well this is the API so I think the reason why we copy and paste this from our WPF project which also has a very similar I believe in there and that's library that library we're something very similar here config helper which does a lookup this is the old school way of doing things as well notice that the the WPF project as well has an app config file which is the old-school way of doing things me and move that over to a an app saying JSON file that's something for the list but for now let's let's solve this problem and we could just say okay let's just go to the the correct location in fact this code would work if we went and add an app a entry to our trm api go to apps aims at json at attack great sitting dad I actually work but it's not the right way of doing things that's the really really quick way of doing things that's not the right way of doing things so instead what we're gonna do is rethink this process let's figure out where is this getting called so you know one reference here and it says okay that's where it's being called one spot well I can double click on that and it's in the Save sale which is the sale data method so in sale data we look up the tax rate look at once we use that multiple times throughout the application to calculate the tax so let's do this better first of all is there a case where we want to send a tax rate on through the API and the answer is yes we actually got to do in there that says hey send it to the API don't just get Emma config settings well we are the API so why don't we create a place for the API to return this and use it here so let's do that so public create a public decimal I'm sorry a is it a decimal type it is a decimal type poet decimal and we're gonna say let's call this you get tax rate like so notice it is a public method so let's move some of those code let's grab this code right here I copy and paste the entire thing except for the output and now I'm gonna say I do this where I say output equals outputs divided by 100 remember a tax rate we stored it in the the config file let's go to our config file here we stored it as 8.75 now some of you debate this with me majors you know the idea is major story as point zero eight seven five which is clear that's the percentage but typically we talk about percentages you say it's 5 percent or it's 25 percent or is 10 percent you don't say it's point zero one so that's where do we store our percentage here we do a different way sure absolutely not a problem but we're gonna store it in the whole number form and convert it right here but we're gonna do it all in one step so now I can say return output and we're doing both steps we're doing a config helper call and we're doing this divide by 100 so now we can do is say tax rate equals get tax rate that's it done now of course we have some some issues here right now I have a system that configuration errors exception and I have a config manager issue well we're actually going to say I want I configuration config control dot to create initialize a field and instead of this right here we're gonna say is whoops underscore config dot get value which we don't have the the correct entry here so you need to add a a new yet package for this so let's do that let's go to our new get packages for our library right click in dependencies manage nougat package let's look what we have installed let's uncheck the box for including preview releases and I don't know that it's actually in abstraction so I think it's in the regular Microsoft extensions dot configuration but maybe it needs an update so let's do this let's make sure that it's a latest version so let's change to the latest version or you can go updates here and it's update this not logging strap abstractions let's go to configuration let's choose this one and it's a update to the latest version and say accept and once you do that let's come back over here to get value to control J on it and see if we have let's try it again does not have the right thing because that's what it should be so let's go back I believe the issue is that we need one more new get package which is Microsoft dot extensions dots configuration dot binder that one right there let's install that I believe this is the one that adds the the namespace or if we do ctrl J now get values should of the list excellent we didn't have to do this but this is a really helpful extension it's just so much easier I find so I'm gonna say let's call it tax rate again just to be consistent you don't have to let's go to app settings dot JSON and under we're down here we could actually put it inside of a a parameter or an object actually so let's do it inside of I don't want to have this tax rate right in the on the route here so let's call this object something like app app settings which was kind of redone it it is kind redundant isn't it let's leave it alone let's just do tax rates and tax rate is going to be eight point seven five okay and I know I did change the KC on this I want to change it here and be consistent across the board because right now we have everything else is the Pascal case there's no reason to create camelcase version so let's do that and now that should pull the tax rate from the right location let's get rid of our commented out line and now the only thing I have left is this configuration errors exception the control dot here and add the using system configuration we could add that namespace and it should work interesting that needed that not sure if we that's the best way of going we'll will think like that as we go but for right now it works so get tax rate now is in place we're not calling config helper anywhere notice the zero references here it's kind of small so we can't see that it's it's right there I can't highlight it if i zoom it it won't help but that zero reference is there actually I might be able to do this let me see if I can there we go how about that so zero references means it's not being called anywhere which means I can get rid of this method which means I can get rid of this class which means I can get rid of everything so let's do that let's just get rid of config helper entirely let's delete it off the map so I can't really let's see if I can get down here a little better there we go delete it says yes you're gonna delete that entire thing uh-huh I am it's gone so with that being gone now you're one step closer because we have our information in the app settings JSON file and we are calling that file right from a get tax rate which is public but it's not yet in the interface so let's do a control dot on this method and say pull member up to base type or pull get tax rate up to I sale data that's the way you want put it in the interface all right it's now it's in the interface which means that we now have access to it where every call for example save sale let's go save sale references and in the sale controller that's the one let's go right there so now we have a sale controller we could actually put another get in here so in this one we can authorize it for really anybody if you wanted to in fact let's do that let's create a new method a new get where I say get tax rate there's no reason not to allow everybody so allow anonymous and it's going to return a decimal and get tax rates so sale data dot get tax rate so now we have an API endpoint you can call to get the tax rate now we still haven't dieting the day UPF application I don't want to go too far down this rabbit hole tonight but this allows us to at least have it exposed on the API now we can go the next tab later and hook it up when we're going through our to-do list in our code comments which really our to-do list in our code comments should probably move over to our bug list so or our suggestion list to pay on what they are okay but now let's make sure that the tax rate is going to be called correctly so let's do this let's run our API and just do slash sale slash get tax rate on a get call we don't have to log in for this which is really nice because I can just pull the browser over and make the call so once the browser launches I'm gonna bring it over so it's going to be slash API slash sale slash get tax rate and if you notice the tax rate is point zero eight seven five or eight point seven five percent cool so that works which means that when we call we've really tested everything we need to test because we called the the save sale the big thing here was we were calling that config method which was which bombing out because it's looking for the app config file or the web config files not finding it or find that that's setting and so we fixed all that by saying get tax rate well the API endpoint also calls that therefore we've tested this that it works so therefore we're good to go I could go through and test a complete sale and make sure it goes all the way through but I don't think we need to do that so now we again have something to commit so let's commit our our items let's say stage and then we're gonna say this was work item number twenty six add our commit message is fix missing tax rate so added back the tax rate to the config and added and in an API endpoint for getting the tax rate commit to stage but don't sink now if we go to the sink tab you'll notice we have two commits all right but again we're not going to sink quite yet we have more bugs to go over so let's come back here back to the work items we've done 25 and 26 in fact we can go to our boards if you want to this is a little more fun if you first of all if you do the drop down here you can say a sign at the Tim that way I get credit whenever it's completed and then we can just click and drag and drag it over this done column which changes the status to done typically I wait until we have until we've actually done the the integration and then deployment but for tonight's exercise where it's going to move it over let's see that you can do it there or you can do it by by changing here but it's kind of fun and do it by drag and drop alright so available rolls is not clear properly I spent a small bug in the user display view model dot load rolls very descriptive so now I know exactly where to go user display view model and the load rolls we need a clear available rolls first available rolls not clear otherwise if you have other users after selecting a couple of them all available rolls we add to the array okay so you have an issue here where when you have the available roles let's look at this we only have one user so we can't really missus state this we can at least see what the issue is so let's bring this over here login and then go to users user management and see the available or current roles the available roles list here is this manager because these are the ones that I don't have yet now if you had multiple people what this person is saying is that if I start at a different person let's say they didn't have cashier well now would say cashier and manager even though they are a manager because we never cleared this list when we switched users and probably the same thing as true the other way where we haven't cleared out this list properly we'll check that as well but then if we go back to our backlog come back to work items I noticed that bug number 30 if you add or remove a role without selecting a role it crashes the app all right so if you add or remove a role without first selecting a role the program crashes my guess is the user display view model you want to add try-catch the add selected role method and the remove selected role method to catch if the user dot ID is null and are they user role is null okay so we have two bugs that in the same area that are very very similar so we work on both of these bug number 30 and bug number 28 at the same time let's replicate bug number 30 so if I say remove right now I have not selected a current role or if I were say add role right now before selecting a role to add either way I click it and it's going to crash the application with an exception so let's fix both of these issues first let's look for the load roles there we go and so load role is what does it gets all the roles and just starts adding to the available roles okay doesn't clear available roles first well that seems pretty straightforward available roles dot clear now we rode the roles we're gonna clear the available roles first and then start adding if it's not in the list okay so that takes care of that bug that has a really simple little fix but now let's talk about the the adding or removing so add selected role or remove selected role that crashes when the selected user role or selected available role are null and possibly if selected user dot ID is not let's check that make sure that's true as well think it's a chance to run this code make sure nothing breaks with our little fix here it shouldn't have so log in and now I got a users user management there we go so if I haven't selected anybody yet and I hit remove notice the selected user is null as well therefore we have a problem there as well so if you can look at the locals window and go this and see the selected user is null and also the selected user role is null so we're doing a check on a property of a null and we're doing a check on this null value so let's fix that so we're going to do is create a property props public bool and this is going to be a can add selected role this is a feature of Caliburn micro so this name is actually very important is based upon naming convention this is put one of the things that caliber and micro provides for us with their automatic wiring and that's why we use calibre micros force on that automatic work if you want to do this manually what you do is you would bind to the enabled property a property so you bind the this property to the enabled property of the add selected role button but calibre micro takes care of that binding for us based upon the fact that I took this buttons name and added kin in front of it and return a boolean this will say whether or not we can add the selected role okay so it's gonna gray out the button until you've fulfilled all the criteria and those criteria are I can just do a return statement here let's make an ef-2 me a little clear if selected user is null or selected available role is null return false else nope else return true ok now I could do is I could have taken this whole this sentence right here this this if I can put a knot in front of this and then say return not this ok that's a little less clear than this so I want to be a little more clear therefore I write a little bit more code but now my code is more readable so I selected users no or select available role as null return false meaning they cannot add a selected role let's do the same thing for remove in fact let's copy and paste it because it's pretty much the same logic down here notice we need to change the name to can remove selected role and change selected user role but selected users stay the same so if selected user role or selected user is null return false otherwise return true but we're not quite done yet because we need to make sure that we update this whenever they make a change so when a selection is made we need to refresh these two values can remove selected role and can add selected role copy that one and if we look up here I believe we have a notify have property change on user roles available roles once those change on selected user name whenever you check to change it selected user name or selected user role or up here we have selected user so we have a number of places where things are changing so up here we have our list of users that's not we we wouldn't need to worry about selected user when this one changes we trigger that notify of property change so notify of property change can remove selected role let's add this one more time and change this one to can add selected role copy that so everything user changes let's trigger those properties okay now in theory these properties are still gonna return false because nothing is selected in the roles list but we wanna check to make sure now the selected user role has changed let's trigger the cancel Acton can remove actually know what we don't need trigger hitting them here because we know you're in clear lists so let's get rid of that one and selected user role changed which one is that is it is it can add or can remove it's a selected user role come down here selected user roles can remove let's go back up there and just change the remove or just allow the can or move and then available user role is the other one which is add so we're just triggering which button will show based upon what you've selected so selected user name that we should leave it alone user roles available role I think we've got it set let's check this out it takes a little bit of thinking through a logic event and make sure you get all the information correct so might not get right the first time and it's okay don't be afraid to get it wrong and try again alright so notice they're grayed out I can't click these if I click Tim I still can't click anything but if I click admin now I can remove if I can't add though but if I select manager I can now add a role if I add a role now all three are there I can't add another role of course there's no rules to add but I can come up here select manager and remove now managers in this list but notice I can't remove anything else because nothing else is selected so now that works the way we intend it and we have a nice user interface because our user interface is telling the user hey we can't do this because you haven't allowed us do anything there's nothing to do yet until you oh okay admin cool I can remove that or Oh drop down which we need to make this drop-down bigger they should default to at least a reasonable size otherwise it kind of hides over here but once you select something cool I can add that role so that's the fix for those buttons so now his buttons will only show if we are set up properly where we let's log out here and login users that's still a clunky process but now these aren't enabled until we select something okay so that solves two problems it solves the problem of bug number 28 and bug number 30 so with one page of fixes staged that let's add our bug number 28 and we're gonna add bug number 30 and our message is going to say bug fixes in and that's the user management clear of cleared available roles when switching users and disabled buttons until the user selects a value to use with the button okay good enough again commit staged and now let's come back over here and we can open this up if you want and switch this value but it takes so long to do this it's a done save go back I'm not a big fan of that I believe you can do it you can't do it here so I you just go over to my boards and I come down and first of all I didn't assign that they mate limit assigned to me I like credit okay so now that's done and let's assign this one to me too because I did that but I just dragged it over now I can come back to work items and see that I have just one bug left and that bug is a bad name space in authenticated user so again great description here in that I'm not copping myself these are copy and paste from you the user who gave me the information so thank you for this this is very helpful in the trm desktop UI library project okay so it's the DPF libraries library project the authenticated user model uses the wrong namespace okay let's figure that out so let's close all of this go back to our solution explorer let's collapse down our api don't need to show that let's go to our library and when you look at the authenticated user model it says TR m desktop UI dot models well TR I'm desktop UI dot library down models that's incorrect well there's actually there's actually a fixed list usually change namespace to t RM desktop UI dot library dot models that's a controlled dot which is the suggestions and help so if you right-click on you can also say quick actions and refactoring which I can have control dot and let's just click that and it's going to change that which also is going to change any other place that uses that that using statement so now let's just make sure we do a rebuild here make sure it all works because if you change a namespace you need to make sure that you have all the places that references changed otherwise you'll have an issue now let's run this project just make sure that we can still log in it's the authenticated user so it should work just where you should be able to test it it works just by logging in and making sure that it still logs in and does so we can still go user management we can still you know mess around here we can still log out we can still exit the application so it's all working we has changed that namespace it's a little thing but it's important to make sure we do that always be consistent okay so that was bug number 29 and actually notice right here we have some changes in not only the authenticated user but also API helper in the the interface I a P I helper let's right-click on a PIL or API helper and say compare the unmodified we'll see we've changed notice we now have a using 40 RM desktop I'm sorry we're removing the using 40 I'm desktop UI dot models we're not using that because we changed to TR m desktop UI dot Library dot models which was already there or right there so we get rid of it and in the API helper compare same thing we changed this using from being the old namespace to new namespace so we're good to go we've got that fix in place and it fixed all of our locations which is three different places so we can now stage these changes and we can't associate this with work item number 29 we can say fix bad name space changed a namespace to be correct simple enough commit stage now since this is our last bug let's go back to this bug and change this to done and make sure it's a sign to me it hit save now that's our last bug the less we do have a suggestion we'll believe it for later and we do have a couple other things to do but those are other other videos so that's our last bug therefore we'll go to sync and now let's make sure we do a fetch first to see if there's anything on the server we don't have locally there's not therefore we can hit push and push all these the server once we do that what's gonna do it is going to trigger in our pipeline we have our continuous integration notice we have as icon that says cute well we can click on this and notice we have a new queued build which is now running which we can watch the process if you want what it's gonna do is it's going to build our latest code so it's not gonna build every commit it's gonna build just the last commit and make sure that it builds successfully alright once has done that it will do a new deployment as well alright so that is complete I waited for a little bit actually walked away for a little bit but now that is complete so to go back to the board's real quick and let's go to the board just pull few of those items let's just pull for example bug number 30 if we come down here now to our under development we can see that it is in this commit there's the commit ID the bug fixes in user management and that has integrated into the build this build five minutes ago and that succeeded so it's updating this bug with more information about what happened to it based upon the the build process and build upon based upon check-in all the rest so that is a continuous record of that bug so you look at this later and say hey we said he fixed that but didn't really get fixed what do we do there well you can click on this and go okay well it was this commit let's click on that and go right to that commit and there's the commit there's the changes you can look at and see what what changes their work okay let's go back to that that issue let's look at when it was actually integrated into the build process well let's click on that and there we go there is the integration and we can go and look at you know what happened there's the job we can go through the whole job and see you know all of what happened in here you know for example the the build process DPF there's a build process so you can kind of do a history of what went on you know and the release is the same thing so it can track and see when was it released and you know what happened to it so if now go back to the boards and look at the at number 30 again we should see that it was actually released as well oh it's not even showing released let's go over to our pipelines go release and let's edit this release it may not be triggering let's go there options integration report deployment status to work all right so now we're going going to report that back to the work items and also to the boards we could say that it is in development as well so nodes you can change the status of an item and the boards to say hey it's in development we can also do a JIRA and update the status bad but I think that's good enough so let's just add board statuses status updates so now that ain't gonna do a new deploy it will do that on on those items as well okay so it didn't do for this one no big deal it will do it from now on for our work items so whenever you see a work item that is completed you can also kind of track back and find out why it was completely what happened where was it committed to where was it integrated and then where was it deployed and we'll have multiple of those deployment steps because you'll deploy once to dev another time prior to staging your tests and then to production at least pry those three steps maybe more too pricey multiple deployments here but that gives you a lot of information about kind of that progress of that bug alright so that's all our bug fixes and we actually integrated and deployed our our bug fixes as well so with that that's all for this video thanks for watching and as always I am Tim quarry
Info
Channel: IAmTimCorey
Views: 6,142
Rating: 4.9509201 out of 5
Keywords: .net, C#, Visual Studio, code, programming, tutorial, course, training, how to, tim corey, C# course, C# training, C# tutorial, C# app start to finish, timco, timco retail manager, wpf, asp.net, .net core, asp.net mvc, autofac, c# solid, c# solid principles, dependency injection, tdd, unit testing, xunit, moq, azure devops, azure boards, azure devops boards, azure devops tutorial, azure boards agile, azure boards kanban, azure boards scrum
Id: lEMpvVFIhgI
Channel Id: undefined
Length: 58min 56sec (3536 seconds)
Published: Mon May 11 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.