 So it's been I don't know about a week a week and a half. I What have you been doing in the last I don't know 10 days or so? Yeah We as I've said before we wear many hats being a small team But it's been a lot of lingua Franka going on lately, which has been really cool So our multi-lingual formatting and passing library Which is the thing that allows my crop to understand and express natural language That's been getting a really big refactor from chance Encounter one of our other community contributors contributors and Yeah, it's it's a huge huge refactor, but it's it's gonna be a really solid basis for Future editions of new languages and the ability to kind of add add languages incrementally and stuff So yeah, there's been a fair bit of work on that. Which is really cool. What have you been doing for fun? For fun. Oh Do you do you have any side projects or anything like that? Like I have a one-year-old. We don't have fun anymore. I Have two kids and I still manage to squeak away some time for stuff Yeah, we're What are we doing for fun? I Mean we're painting we're doing some painting like Don't some feature walls in the house. Is that fun? Is that I'm renovations. Do you find that fun? Some people like that stuff? It's pretty bright and it's pretty fun. Like as in visually fun. So Yeah, if it adds value to your life, then I'd count that as a win Yeah, yeah, yeah Yeah, I mean, it's it's pretty hot. It's pretty pretty brutally hot here at the moment So we stays like 32 degrees Celsius Which is I don't know like a hundred or something for all the Americans But the humidity is just brutal at the time of year, so Still get out for rides and things like that, but Yeah, it's just it's just hot It's minus four and it's snowed here today Yeah, right so you mentioned Fahrenheit for you for the for the Americans, so I'm in the process of submitting another series of articles to open source comm and They changed one of my Celsius to Fahrenheit and so I kicked it back to them and I was like That's not really fair because most of the world uses Celsius not to mention like I also wrote it as Celsius so We'll see what they do with that. I just thought that was It's interesting how We as we as people become Our worldview is so much focused right around what's next door And so we just automatically view things as like well everybody else will see it exactly like me and my neighbors see things and I'm guilty of that too. I just think that's kind of interesting Yeah, yeah, yeah when when an actual fact 300 million people out of a total of Billion like seven billion. Yeah. Yeah use Fahrenheit. So yeah What about you though, what have you been up to? Yeah, that's good question so I bought a game called graveyard keeper and I've kind of been enjoying playing that it's kind of like It's a little bit like Stardew Valley. It makes you have kind of morally questionable ideas or like choices so You you get hit like the the opening scene is you get hit by a car and then you're transported to this other world and You have to take the place of what's called the grave keeper and so people just come by your land and just like dump off bodies and you have to Like you you bury them and stuff like that, but you can also do things like perform autopsies and keep the heart and the head and the brains and like whatever all of these other kind of things and It's kind of interesting. So it's I've been kind of playing around with that and Aside from that. I had a weekend project where I decided I was gonna go and get all of my data out of Garmin so I have like a Garmin watch for the running that I do and It turns out those guys are a bunch of bastards They use three different types of date formatting And yeah So like you get you extract your heart format and it's using second since the epoch and you get Like another one and it's an actual date format and you get a third one and it's like It's I don't even know how they calculated it But when I ran it so I'm using Python and when I ran it through Python, it's like four hours behind me So it's I'm GMT minus four and so my immediate thought was like oh well They did the math wrong and then I was like wait a second if it's four hours behind me then the time stamp is GMT minus eight in this data for Reasons, I don't even know what what? It's like Hawaii or something. I don't know what time time zone that's in so I spent the weekend kind of Untangling the data and then dumping it into my local influx DB so that I could have all of this historical data because Part of what drove this other than the fact that like I like to control things is So many of these companies are shutting down things as a like they're using this COVID situation as Reasons to pull back or dump data or or whatever like Smart Samsung has abandoned their smart things hub, which is kind of related to what we're talking about here with with the whole IOT thing so when I when I ran into that I was like oh man I have a lot of running data in there that I'd kind of like to keep like it's useful for me to give to my doctor because like Resting heart rate and like all of these kind of metrics that I've had in the last couple years So yeah, I spent the weekend Untangling and rewriting Dates and yeah, basically I threw the thing up on github So if anybody's looking for an example of how to use Python to get your data out of Garmin into influx DB I kind of tossed one up on my github I think we covered a lot in our last video about you know getting set up with with mycroft and Setting up a virtual environment so that you could work with a different type of Python if you needed to and how you install skills and From this we we kind of realized that in order to to have a good base that we should cover a lot of The required skills for getting involved in the mycroft community in general As part of that I think we we kind of agreed that we should take a look at git and Part of this was accidental, you know We in the last video we found that home assistant the home assistant for mycroft was not populating in the mycroft web UI and so We decided that we were going to sit down and try and investigate What was happening there? And so yeah, I think we we hit some bugs and as I guess good contributors we decided that we weren't going to ignore those bugs completely You know, yeah, we were gonna go ahead and try and fix them. So I think what we're gonna do today is Dive a little bit more into How, you know, how are we gonna fix these things as we come across them? We're I think we're gonna do a more in-depth dive into Making a good pull request and stuff like that, but I think for today. We're really just gonna focus on Getting the minimum viable Information out there about we've got a problem with git. How do we communicate this in a Reasonable way like you've got two active contributors here. We've got Gez who is obviously from mycroft. So he's kind of overseeing what's happening. So part of what we're doing is, you know, we're gonna be troubleshooting and hacking our way around and We want to kind of refine that but we thought there was value in in Showing us kind of fumbling around through the dark as we fix this problem we encounter Yeah, yeah, and I think it's a really good example of You know, if you if you're doing a development, it's it's really important to Know the state of the system before you start. So, you know, we We wanted to start getting into things and we said look, let's Let's just make sure that the existing tests and and everything's working before we do And then, you know discovered that there's actually a few things that we needed to fix up before we could really get started on the things that we were wanting to to work on and so If we hadn't done that then we probably would have thought that we'd broken something when in actual fact There was something that was broken before we started. So Yeah, it's it's the classic, you know Always try the door handle before trying to pick the lock. Yeah Yeah, this is the door open Yeah, so I think For those of you that are already well acquainted with it There's still some value in in watching us kind of work through the issues, especially because Gez was helping troubleshoot and it turned out to be a couple of really Small issues, but it took us a while to figure out what was actually blocking us there And so, you know, we we did our best to condense this down But there's still some value in and at least the troubleshooting process even if you're not really interested in some of the stuff that we cover like creating a fork or How to update a branch or how to do rebasing or any that kind of stuff like if all this is basic for you, you know Go ahead and skip past this video, but there might be some good Troubleshooting stuff in there for everybody. So what we're gonna do is we're gonna add your fork as another remote on our local system, so You can either Manually type it or what you need is the URL for your for your fork Which should be unless you change it It's gonna be the same thing just with a different username in that, you know github.com slash stratus And what we're gonna do so we're already in the skill Directory and if we jump back to the start of the line, we're gonna say get remote add And then a name for the remote so I would say like gaz for mine or you know Yeah and Then the URL and so we hit if we could enter And then we can type git remote And that will give us a list of the remote repositories that are connected to our local Repository So what happens is you know when you're making changes locally? It's actually a completely separate repository and then we sync that we push and pull with our remote repositories but you can actually Yeah operate the local repository is actually separate from all of those from all of those remotes So we can also say like git branch We'll give us a list of our branches that we have available on the local On the local machine and you can see at the moment. We've got 20 oh eight. We've got our feature I'm pointing to my screen which no one else can see we've got 20 oh eight We've got the feature common it and then we have a whole bunch of branches on the remotes slash origin so they're all on The origin remote which the origin is always by default points to the to Remote repository that you first cloned from and so in in our case now it's going to be the the mycroft repository mycroft AI slash Home assistant or whatever it's called slash mycroft dash home system But we don't have any branches from our fork from the stratus fork. So we want to do a git git fetch and Then the name of the remote that we want to fetch from and you can see it's now created a bunch of new branches and if we rerun git branch it should Give us a few more a few more hits that we can we can choose from we'll want to we'll want to check out the 20 oh eight branch So you can also say git check out dash dash track Origin slash 20 oh eight and it will that tells it I want every time I reference 20 oh eight the 20 oh eight branch I want it from the origin remote Yeah, so if we hit enter there What it's saying is that we have local changes That we haven't we haven't applied So we can we can stash those for the moment Which essentially says We don't want to commit these but we want to like we just want to put them to the side for one moment And then we can we can get them back later Uh, and then we can git check out 20 oh eight again Cool, and it's it's showing Yeah, look, it's it's also saying that we are tracking the origin 20 oh eight branch and that we're behind so yeah, we can Uh git pool I normally do dash r. Uh, I just do it out of habit right because I'm okay What's the dash origin for rebase? Oh, okay, right, okay You should you shouldn't need it No, I just do it out of habit because of the times that you do and it doesn't really hurt anything to do it otherwise so it just Yeah, it's that cool. It's kind of like attacking on a dash v like Yeah, most of the time you don't need to have the verbose I just do it out of habit Sure All right, so our local 20 oh eight branch is now fully up to date Uh, and we want to push that up to our fork space stratus The the name of our for the name of our remote. Sorry um and then I feel like you're at space and then the branch name Let's try that So after I straighten around the fact that I have two factor authentication and I needed a token to do this We're now logged in wonderful, um So we've pushed that branch up to our up to your fork Uh, and so we should be able to go to your the to your fork in your browser and that will Show that there's a new branch there Right there Um, so if we wanted to we could then set the default branch, um to 20 oh eight or we could set the default branch to feature common iot um The benefit of doing that sort of thing is is that you know when you create new Pull requests and stuff that it's going to go to that branch by default Um, and it's also going to be the branch that shows when people visit your Your repository So great. So we've pushed the branch up. Uh, so if we select the 11 branches just next to that drop down That should show us a list of all the branches in our repository Uh, and we can see that there's now the 20 oh eight branch which was updated two hours ago Uh, and we should be able to uh On the default branch we can select change default branch right up the top We're gonna we could set it as 20 oh eight to to match the Minecraft repo, but yeah, I think in this case we probably want to go there Yeah, it's purpose driven. So I want to because we're that's the purpose of this branch I think we're gonna make this guy the default Yeah Great. All right. Well, let's jump back to our local terminal um And we'll switch back over to the common iot branch um, and before we stashed some Changes um that We're good changes that we want to keep right? Yep, so we can get those back by saying get stash pop So that says bring back the the things that I stashed. Um, and if we do a get diff we can see Uh, exactly what has changed in our Local skill compared to our remote skill. We still haven't gotten The settings to show in the In the web UI. Nope In the web UI, right? No, that's what we were working on. So Hmm We suspected that it was related to the booleans Ah, there we go Whatever Yeah, cool shows up there now Good that means they don't have to go dig out my token again Yeah, and that's a good example where you know, it's it's now Taking away that second tab because it doesn't see a it doesn't see any devices with a different settings block In that case, then we probably want to we probably want to push those changes um I really want to make a pull request and push those changes back up to the To the upstream branch. Um Sorry to the upstream remote to the my cross project um, because if anyone else is is wanting to check out the Common iot feature branch, then they're going to run into the same problem. So Um But yeah, so if we just do get commit The length of these lines is also quite useful because it shows how much people are going to be able to see in certain things in certain interfaces the first line though will get used as The as the short message so and I want to say, um There's going out the micro like the skill settings that we're referencing Yeah, when we went to the web UI, they weren't there and so that's where we tracked back what what that is so When we went there all we saw was vm But we didn't see the text boxes that we should be able to fill in for that vm uh device Hmm I'm overly verbose with most of the things if if you read my uh, my variables my variables will Tell you exactly what it is that they're doing because Ram is a very big fan of that. Yeah. Yeah. I've done that and only I That makes sense though because it it knows what branch you're on. So it's just gonna push that up to that fork Yeah So now if we go back to our web UI, we'll be able to see that commit in There we go And so see what I mean by like when we look at the the At top line just above the file structure um, and and in there we like it gives a very quick Idea of what the last change was but we can't see the rest of that commit message. So It's just helpful to make sure that first 80 characters is very descriptive Yeah, absolutely. Um Try to avoid putting something like updated branch because that doesn't help anybody Yeah, totally. Yeah, and I think We probably want to push this back to the to the um, to the main microsoft project as well. Yeah, so Well, I think well, let's do a pull request. So we've pushed it up to our Um, to our fork. So we're gonna create a pull request Um, because we can see that we're one commit ahead of microsoft feature common it and so just to the right a little bit Is it a pull request button? Yeah, so if we hit that it's gonna Yeah, and at the top just quickly at the top It shows what the base repository is so the base repository is the the repo that you're pushing to The base branch. So it's the the branch of that repository that you're pushing to Um, and then the other side of that Um, is is where it's coming from. So it's good to just double check this because you know We want to make sure that we're say if we're trying to update a skill that we're updating the latest Um branch of that skill. So if we if we push it to say 20 or two, then um It's it's not going to be in the latest branch and then we're going to have to Um to rebase it later on. So um So that that's where we want to push it. So it's great and you can see there's a little Visual indicator arrow between the two letting you know which direction the the pull request is for Yeah And it just means like if you change that base branch to something else like the 2008 branch, for example um It will it will Go around and check and you can see there It'll say it's got a big red x and say can't automatically merge And that's because we're going to switch back um to to the branch that we actually want to push towards Beautiful going to create that pull request and We're going to remove this because this is not Yeah applicable to everybody Yeah um Yeah, and you can see that it's pulled in the commit message Uh automatically And if there's multiple commits it should Uh put all of those one after the other um Automatically so you can also you know grab those commit messages and turn that into your description um As long as of course this actually is meaningful to the description of the the pr Right. It's nice. It's nice to be able to have something like this where It's it's more than a commit message where it's telling you Um why you're fixing it? Yeah, yeah, and that's that's a really good tip for commit messages and pull request descriptions. Um You know people can look at what what the changes In the code are, you know like You know, you you'll often get commit messages that are like update a nip.py Um or update read me that's like, well, yeah, I can see that you've updated that file Like that's the file that has been changed In the in the commit or in the pull request Why did you change that file like what you know, was there a bug was there? Are you just refactoring? Are you you know improving code readability? Are you Um, you know fixing a particular error that got thrown, you know Um, why why we're making the change really is is the most important thing whoo, wow, uh, so I sure learned a lot in this video. Uh We did a bunch of git stuff. So I've I was kind of I don't know git savvy is not exactly the right word, but I wasn't a get light Luddite before we did this, but I sure learned a lot about um Especially working with forks and and bringing things up to up to date by rebasing them and and all that sort of stuff because Normally the stuff that I work on is a small team Like I don't I don't usually work part of the bigger code in so at red hat There might be a few of us collaborating on You know an active repository, but the way that it normally works then is whoever is leading that repository then Interacts with the company at large So the way it works out is like the consultants might have a thing that we build to help ourselves, right? And we all kind of collaborate on that. It's relatively small and then Someone liaises with the red hat engineering team to try and push that into the product, right? And so I don't I don't normally work on these like massive things I do a pull request and I you know, I fix up bugs here and there, but I don't do a lot of this stuff so It was really good for me to um Talk about updating the forks and how We took a branch that was out of date so I had forked the code some months ago and One of the branches was like really out of date And so we we updated we pulled the 208 branch up to snuff and we fixed things up so that we could uh track with the origin and we talked about making some good commit messages and Doing good pr or pull requests and I think that's that's something that I've always Been overly verbose about because I go back and read my own logs to figure out what the heck it was that I did before um Yeah, I really like I really like your style of Commit messages stuff like the more verbose and the yeah the better I think I even do that in my own personal repository because mostly this is a memory jog for me like What the heck did I do in this in this thing? Like why was I changing things? So I really try and nail that down with comments in the code and and that sort of stuff so That's kind of what we did now and I guess we kind of had some thoughts of where we were going to go in the future Yeah, well we we were talking about uh continuing You know we had a plan to continue down the the home assistant track, but I think we're going to um take a small diversion into um What makes a good pr and and how how we can make good pr pull requests as contributors? um, but also what we can look for um If if we're a contributor uh reviewing other people's code so um, so you know contributions to micro are both pushing code, but also um, it helps us a huge amount um when people People in the community are reviewing other people's code Because we have such a strong and vibrant community um, you know one of the limiting factors that we have at the moment is that there's there's so much good Uh Good code being pushed our way Um, it actually takes us longer to to review it and make sure that it's safe and secure and working as expected So so the more that the community can help us with that the better. Um, and we want to make sure that we I think this is going to be a really good resource to help people Uh to know how to do that as well. So Uh, so yeah, I think that's where we'll we'll head with the next video Yeah, I think I'm I'm personally looking forward to this as as kind of one of the uh contributing maintainers to the home assistant um The mycroft home assistant section of the repository, you know, I think this is something that that will help me Uh help the mycroft project because like chris said a lot of the problem that we have is right now I think there's seven or eight pull requests sitting in the um In that branch and we're they're holding because of testing primarily like I I read through the code pretty quickly But it's all about figuring out how to pull it down and how to test it and and work through the code To make sure that it actually functions as expected. So I'm really looking forward to doing the next video with you Yeah, yeah, and works on my machine is the is the you know It's a trope in the in the dev world now like Uh, and we want to make sure that yeah things that we're contributing don't just work on our device But they also work on on someone else's device of the same type and someone else, you know That's running a pycroft versus running a mark one versus, you know All sorts of things. There's so many ways that people run mycroft And yeah The more helpful we can get from the community in in reviewing those things the better I sense a little bit of foreshadowing there. Maybe we're going to do a little bit of tdd in the future Yeah, yeah, that's awesome. That's what we try we try for Um Yeah, well, let's leave that for another video. We'll have a chat about tdd test driven development for anyone It's it's not running to that So next time we'll meet we'll talk about prs and and how to work with them from all vantage points So i'll see you next week Awesome. See you then Bye