.NET Developers should be using dotnet-outdated to update their project's references
Read full transcript 7 segments
-
hey friends in my last video I updated hey friends in my last video I updated my website Hanselman my website Hanselman my website Hanselman docomo net8 from net 6 I also did my docomo net8 from net 6 I also did my docomo net8 from net 6 I also did my podcast and if you go down here you can podcast and if you go down here you can podcast and if you go down here you can see that I've showing you the version of see that I've showing you the version of see that I've showing you the version of net that it's running on as well as the net that it's running on as well as the net that it's running on as well as the commit and the build number uh that you commit and the build number uh that you commit and the build number uh that you can go and search for uh get version can go and search for uh get version can go and search for uh get version devops Hanselman there we go adding a devops Hanselman there we go adding a devops Hanselman there we go adding a git commit in hash uh to AET website so git commit in hash uh to AET website so git commit in hash uh to AET website so basically this shows you how to set that basically this shows you how to set that basically this shows you how to set that up in the footer of your own system and up in the footer of your own system and up in the footer of your own system and you know you don't may not want to give you know you don't may not want to give you know you don't may not want to give that information away but uh some people that information away but uh some people that information away but uh some people will go and put that around an admin will go and put that around an admin will go and put that around an admin block if admin then show the block if admin then show the block if admin then show the administrator what it is but I I like it administrator what it is but I I like it administrator what it is but I I like it because it means that I can go directly because it means that I can go directly because it means that I can go directly down here see what commit is currently down here see what commit is currently down here see what commit is currently uh in production and then I could go and uh in production and then I could go and uh in production and then I could go and take a look at that commit take a look at that commit take a look at that commit directly so here I can see exactly that directly so here I can see exactly that directly so here I can see exactly that I committ made this 2 days ago so I know I committ made this 2 days ago so I know I committ made this 2 days ago so I know what's in production at all times and what's in production at all times and what's in production at all times and what changed which is cool but some what changed which is cool but some what changed which is cool but some folks kind of low-key complained that folks kind of low-key complained that folks kind of low-key complained that they wanted more information about not they wanted more information about not they wanted more information about not just updating your website but also just updating your website but also just updating your website but also updating your new get packages so let's updating your new get packages so let's updating your new get packages so let's take a look at that real quick now I am take a look at that real quick now I am take a look at that real quick now I am back over here on um the Hansel minutes back over here on um the Hansel minutes back over here on um the Hansel minutes podcast site and I uh have backed up in podcast site and I uh have backed up in podcast site and I uh have backed up in time so I'm on a detached head so I've time so I'm on a detached head so I've time so I'm on a detached head so I've backed up two days uh because I'm going backed up two days uh because I'm going backed up two days uh because I'm going to update the site again okay so there's to update the site again okay so there's to update the site again okay so there's there's the net Upgrade Assistant which
-
there's the net Upgrade Assistant which there's the net Upgrade Assistant which is what I used before okay that Upgrade is what I used before okay that Upgrade is what I used before okay that Upgrade Assistant is available in a CLI and also Assistant is available in a CLI and also Assistant is available in a CLI and also in a visual studio plugin that's what I in a visual studio plugin that's what I in a visual studio plugin that's what I used to update from net 6 to net 8 for used to update from net 6 to net 8 for used to update from net 6 to net 8 for complicated websites that might want to complicated websites that might want to complicated websites that might want to uh update their new get packages there's uh update their new get packages there's uh update their new get packages there's a great tool one of my most favorite a great tool one of my most favorite a great tool one of my most favorite tools in the world which is called uh tools in the world which is called uh tools in the world which is called uh net outdated and I've actually I blogged net outdated and I've actually I blogged net outdated and I've actually I blogged about this six years ago uh and it has about this six years ago uh and it has about this six years ago uh and it has since changed owners and now uh it's since changed owners and now uh it's since changed owners and now uh it's over here at GitHub over here at GitHub over here at GitHub s.net outdated and these two folks have s.net outdated and these two folks have s.net outdated and these two folks have taken up uh Jerry's original work and uh taken up uh Jerry's original work and uh taken up uh Jerry's original work and uh this is the continuation of that so this this is the continuation of that so this this is the continuation of that so this is a really really great tool I honestly is a really really great tool I honestly is a really really great tool I honestly I can't say enough about how lovely this I can't say enough about how lovely this I can't say enough about how lovely this tool is it honestly should be built into tool is it honestly should be built into tool is it honestly should be built into net but you can get it by just saying net but you can get it by just saying net but you can get it by just saying net tool net tool net tool installnet outdated tool um now this is installnet outdated tool um now this is installnet outdated tool um now this is great think about it kind of like you great think about it kind of like you great think about it kind of like you think about dependabot so for example if think about dependabot so for example if think about dependabot so for example if we go over to my GitHub and go to one of we go over to my GitHub and go to one of we go over to my GitHub and go to one of my repositories uh I've got dependabot my repositories uh I've got dependabot my repositories uh I've got dependabot that is constantly doing pull requests that is constantly doing pull requests that is constantly doing pull requests right so you can see right here 6 hours right so you can see right here 6 hours right so you can see right here 6 hours ago the dependabot bot noticed that ago the dependabot bot noticed that ago the dependabot bot noticed that nunit has been updated from 4.01 to 4.1 nunit has been updated from 4.01 to 4.1 nunit has been updated from 4.01 to 4.1 and then it'll go do some checks so I and then it'll go do some checks so I and then it'll go do some checks so I can click on that and I'm getting a nice can click on that and I'm getting a nice can click on that and I'm getting a nice pull request and the checks have passed pull request and the checks have passed pull request and the checks have passed I can see whether or not that that built I can see whether or not that that built I can see whether or not that that built I can even go in and see the release I can even go in and see the release I can even go in and see the release notes and the specific commits of what
-
notes and the specific commits of what notes and the specific commits of what changed so that's a bot changing my changed so that's a bot changing my changed so that's a bot changing my versions in the cloud okay you can see versions in the cloud okay you can see versions in the cloud okay you can see also there's one here where my code also there's one here where my code also there's one here where my code coverage tool got bumped as well but I coverage tool got bumped as well but I coverage tool got bumped as well but I can also do that at the command line so can also do that at the command line so can also do that at the command line so I can type in net outdated and it'll I can type in net outdated and it'll I can type in net outdated and it'll analyze my projects this is fantastic analyze my projects this is fantastic analyze my projects this is fantastic freaking love this thing check this out freaking love this thing check this out freaking love this thing check this out so look here you can see we're still on so look here you can see we're still on so look here you can see we're still on net 6 okay but I've got potential to net 6 okay but I've got potential to net 6 okay but I've got potential to update my health checks from 6 to 8 and update my health checks from 6 to 8 and update my health checks from 6 to 8 and what it'll do is it'll color these in uh what it'll do is it'll color these in uh what it'll do is it'll color these in uh yellow red or green to indicate whether yellow red or green to indicate whether yellow red or green to indicate whether or not it's a major version a minor or not it's a major version a minor or not it's a major version a minor version or uh just a backwards version or uh just a backwards version or uh just a backwards compatible minor version this is great compatible minor version this is great compatible minor version this is great so here's like a small patch here's a so here's like a small patch here's a so here's like a small patch here's a minor version here's a major major minor version here's a major major minor version here's a major major version now you want to have tests you version now you want to have tests you version now you want to have tests you want to have uh you you can't just want to have uh you you can't just want to have uh you you can't just blindly update stuff you know and if you blindly update stuff you know and if you blindly update stuff you know and if you do things could change so technically do things could change so technically do things could change so technically the old days we would manually look at the old days we would manually look at the old days we would manually look at each one of these just like I went to each one of these just like I went to each one of these just like I went to dependabot I'd look at each of the dependabot I'd look at each of the dependabot I'd look at each of the updates the commits and I'd make an updates the commits and I'd make an updates the commits and I'd make an educated decision for stuff like these educated decision for stuff like these educated decision for stuff like these that are probably fine I usually just that are probably fine I usually just that are probably fine I usually just run my test Suite uh for stuff like this run my test Suite uh for stuff like this run my test Suite uh for stuff like this you can see that we've G we're going you can see that we've G we're going you can see that we've G we're going from net 6 to net 8 these might include from net 6 to net 8 these might include from net 6 to net 8 these might include features that are not going to features that are not going to features that are not going to necessarily be supported so you're going necessarily be supported so you're going necessarily be supported so you're going to have to put a little more thought in to have to put a little more thought in to have to put a little more thought in that that said we could go and run net that that said we could go and run net that that said we could go and run net outdated on this and then auto update we
-
outdated on this and then auto update we outdated on this and then auto update we can pass in net outdated dasu for can pass in net outdated dasu for can pass in net outdated dasu for upgrade so this going to go look at upgrade so this going to go look at upgrade so this going to go look at those and then check this out this is those and then check this out this is those and then check this out this is freaking freaking freaking awesome see so it's upgrading each see so it's upgrading each package now sometimes you have to run it package now sometimes you have to run it package now sometimes you have to run it a couple of times it depends but it's a couple of times it depends but it's a couple of times it depends but it's making sure that they're on the latest making sure that they're on the latest making sure that they're on the latest version it's going to upgrade them and version it's going to upgrade them and version it's going to upgrade them and then of course again you want to have then of course again you want to have then of course again you want to have test so I'm going to run my test to make test so I'm going to run my test to make test so I'm going to run my test to make sure that this didn't break anything I sure that this didn't break anything I sure that this didn't break anything I am doing this blindly which is maybe not am doing this blindly which is maybe not am doing this blindly which is maybe not awesome and then I'm going to look at awesome and then I'm going to look at awesome and then I'm going to look at the result and take a look at the the result and take a look at the the result and take a look at the versions that got changed and what we're versions that got changed and what we're versions that got changed and what we're going to end up with is a CSR there we going to end up with is a CSR there we going to end up with is a CSR there we go so now let's go and say get go so now let's go and say get go so now let's go and say get status okay we've got our three project status okay we've got our three project status okay we've got our three project files updated files updated files updated so then now let's go and get diff see look at diff see look at that so now you can that so now you can that so now you can see this version is now that version see this version is now that version see this version is now that version this version is now this version okay this version is now this version okay this version is now this version okay there's that minor update on NBC testing there's that minor update on NBC testing there's that minor update on NBC testing and it did that for each of our and it did that for each of our and it did that for each of our projects okay so now let's net build projects okay so now let's net build projects okay so now let's net build again I could do all of this in the in again I could do all of this in the in again I could do all of this in the in Visual Studio but it's nice to dri stick Visual Studio but it's nice to dri stick Visual Studio but it's nice to dri stick shift as you know okay now here these shift as you know okay now here these shift as you know okay now here these are warnings that I already knew that I are warnings that I already knew that I are warnings that I already knew that I had because I'm doing something crazy had because I'm doing something crazy had because I'm doing something crazy here in my playwright testing um where I
-
here in my playwright testing um where I here in my playwright testing um where I am doing um poking around in the in the am doing um poking around in the in the am doing um poking around in the in the Constructor and things that maybe I Constructor and things that maybe I Constructor and things that maybe I probably shouldn't do uh but these are probably shouldn't do uh but these are probably shouldn't do uh but these are these are warnings and they're not these are warnings and they're not these are warnings and they're not related to what we just ended up doing related to what we just ended up doing related to what we just ended up doing let's go and run the tests let's go and run the tests let's go and run the tests though and see if uh if this thing is though and see if uh if this thing is though and see if uh if this thing is legit so now we're actually going to run legit so now we're actually going to run legit so now we're actually going to run code coverage unit test and also code coverage unit test and also code coverage unit test and also playwright tests and I'll do another playwright tests and I'll do another playwright tests and I'll do another video on playwright test there's my code video on playwright test there's my code video on playwright test there's my code coverage it just went by I want to point coverage it just went by I want to point coverage it just went by I want to point that out okay and then hands off the that out okay and then hands off the that out okay and then hands off the keyboard it's going to hopefully run keyboard it's going to hopefully run keyboard it's going to hopefully run playwright which is going to download playwright which is going to download playwright which is going to download Firefox chromium and everything pop up Firefox chromium and everything pop up Firefox chromium and everything pop up the browser and then start clicking the browser and then start clicking the browser and then start clicking around to confirm that I didn't break around to confirm that I didn't break around to confirm that I didn't break the the the website cool let's go for website cool let's go for website cool let's go for it okay so that worked and then let's do it okay so that worked and then let's do it okay so that worked and then let's do our our our headed test there's headless tests and headed test there's headless tests and headed test there's headless tests and then there's what I call headed tests then there's what I call headed tests then there's what I call headed tests headless tests run the browser headless headless tests run the browser headless headless tests run the browser headless you don't see the browser pop up and you don't see the browser pop up and you don't see the browser pop up and then I made the opposite of that headed then I made the opposite of that headed then I made the opposite of that headed test which will actually uh fire up test which will actually uh fire up test which will actually uh fire up playright here we go test run for playright here we go test run for playright here we go test run for playright see that's firing up a version playright see that's firing up a version playright see that's firing up a version of Chrome that's a local version of of Chrome that's a local version of of Chrome that's a local version of Chrome and now it's using the dev tools Chrome and now it's using the dev tools Chrome and now it's using the dev tools the F12 tools uh protocol to click the F12 tools uh protocol to click the F12 tools uh protocol to click around on stuff there you go so it just around on stuff there you go so it just around on stuff there you go so it just ran those tests so I didn't break the ran those tests so I didn't break the ran those tests so I didn't break the website so website so website so now I know that I've got all three of now I know that I've got all three of now I know that I've got all three of those updated with the latest thing and those updated with the latest thing and those updated with the latest thing and I didn't do any major breaks now that I didn't do any major breaks now that I didn't do any major breaks now that doesn't mean that something's not doesn't mean that something's not doesn't mean that something's not potentially wrong you know again you
-
potentially wrong you know again you potentially wrong you know again you don't want to just run net outdated YOLO don't want to just run net outdated YOLO don't want to just run net outdated YOLO but I just cannot say how useful this but I just cannot say how useful this but I just cannot say how useful this tool is it's just absolutely fantastic tool is it's just absolutely fantastic tool is it's just absolutely fantastic it's got a bunch of great it's got a bunch of great it's got a bunch of great options um it will go and look at how options um it will go and look at how options um it will go and look at how many how deep do you want to go do you many how deep do you want to go do you many how deep do you want to go do you want to look for transitive dependencies want to look for transitive dependencies want to look for transitive dependencies like things that your things depend like things that your things depend like things that your things depend on uh just really a great tool a service on uh just really a great tool a service on uh just really a great tool a service that is being done for all of the uh the that is being done for all of the uh the that is being done for all of the uh the folks in the net space so here if I go folks in the net space so here if I go folks in the net space so here if I go and apply like the transitive dependency and apply like the transitive dependency and apply like the transitive dependency model you can see that there are things model you can see that there are things model you can see that there are things that other things depend on and this is that other things depend on and this is that other things depend on and this is now where I would update from net 6 to now where I would update from net 6 to now where I would update from net 6 to net 8 because you can see now that we're net 8 because you can see now that we're net 8 because you can see now that we're really getting into uh a bigger really getting into uh a bigger really getting into uh a bigger situation here so now I would go and say situation here so now I would go and say situation here so now I would go and say Upgrade Assistant which is what we saw Upgrade Assistant which is what we saw Upgrade Assistant which is what we saw in the previous video and then I like to in the previous video and then I like to in the previous video and then I like to run these one at a time using the leaf run these one at a time using the leaf run these one at a time using the leaf node node node first so I'm kind of redoing what we did first so I'm kind of redoing what we did first so I'm kind of redoing what we did before updating to net before updating to net before updating to net 8 and then I'll run update again just to 8 and then I'll run update again just to 8 and then I'll run update again just to make sure I didn't miss make sure I didn't miss make sure I didn't miss anything okay so this is two different anything okay so this is two different anything okay so this is two different command line tools that are looking at command line tools that are looking at command line tools that are looking at my my my references references references differently do playright tests differently do playright tests differently do playright tests do that one again so a little bit of a do that one again so a little bit of a do that one again so a little bit of a redo of our last video but I wanted to redo of our last video but I wanted to redo of our last video but I wanted to put the two tools uh in context with put the two tools uh in context with put the two tools uh in context with each each each other okay and then the third project other okay and then the third project other okay and then the third project someone in the chat was frustrated that
-
someone in the chat was frustrated that someone in the chat was frustrated that they felt like uh this should be able to they felt like uh this should be able to they felt like uh this should be able to upgrade entire Solutions I I kind of upgrade entire Solutions I I kind of upgrade entire Solutions I I kind of like doing it one at a time uh each like doing it one at a time uh each like doing it one at a time uh each thing is individual and uh yeah it thing is individual and uh yeah it thing is individual and uh yeah it requires a little bit of extra effort requires a little bit of extra effort requires a little bit of extra effort but um I think it was worth it so let's but um I think it was worth it so let's but um I think it was worth it so let's go and build that go and build that go and build that now my warnings have gone away let's go now my warnings have gone away let's go now my warnings have gone away let's go ahead and do the quick unit test again ahead and do the quick unit test again ahead and do the quick unit test again anytime you're afraid of your code write anytime you're afraid of your code write anytime you're afraid of your code write unit test anytime you're worried that unit test anytime you're worried that unit test anytime you're worried that something's going to break unit tests if something's going to break unit tests if something's going to break unit tests if you don't if you're still afraid write you don't if you're still afraid write you don't if you're still afraid write more unit tests and then it'll more unit tests and then it'll more unit tests and then it'll eventually you'll you'll feel better so eventually you'll you'll feel better so eventually you'll you'll feel better so here we've updated to net 8 we're now here we've updated to net 8 we're now here we've updated to net 8 we're now running our tests again these are of running our tests again these are of running our tests again these are of course headed course headed course headed tests looks like I didn't potentially tests looks like I didn't potentially tests looks like I didn't potentially break anything I could have more code break anything I could have more code break anything I could have more code coverage coverage coverage um and I I should probably do a video on um and I I should probably do a video on um and I I should probably do a video on this code coverage tool as well and now this code coverage tool as well and now this code coverage tool as well and now let's go and do a get diff and we can let's go and do a get diff and we can let's go and do a get diff and we can see our project has upgraded to net 8 see our project has upgraded to net 8 see our project has upgraded to net 8 and has updated its references as well and has updated its references as well and has updated its references as well so then I would go and and check that in so then I would go and and check that in so then I would go and and check that in cool so just wanted to give you little cool so just wanted to give you little cool so just wanted to give you little bit of extra context and also kind of an bit of extra context and also kind of an bit of extra context and also kind of an advertisement for that great open source advertisement for that great open source advertisement for that great open source tool net updated outdated rather net tool net updated outdated rather net tool net updated outdated rather net outdated and uh that's 10es minutes cool outdated and uh that's 10es minutes cool outdated and uh that's 10es minutes cool now I'll go to lunch
Summary
The main theme is enhancing developer workflow and transparency by incorporating Git commit information into website footers. Key subjects include .NET upgrades, DevOps, Git, and tools like `dotnet outdated` and `Dependabot`. The practical takeaway is that displaying commit hashes and using package update tools improves visibility into production code and simplifies managing dependencies.