 Recording. No, I'm not. I'm doing weird things. No, I am recording great Keyboard shortcuts, love them Sorry still working on the coffee So yesterday the the I did a lot of stuff with the community and and lots of good stuff that the thing that needs talking about is the unit test so I got back to to Implementing the automation so that you know when we make a change to my graph core and automatically pushes over to the to the mark to build system and and generates a new image for the the mark two devices First part of that was you know the unit tests should pass first and these were not passing So I fixed a few of them There's I just did a test There's a whole bunch that are failing after the the skill control bit and And so like it's not that they're necessarily That the functionality is necessarily broken just that the tests we need to like think about you know What behavior we want? And maybe it's not The functionality is not entirely broken, but it's probably not ideal so like you know just as an as an example if you call common play Start Then it is calling stop multiple times And then it's not detecting the start Call but I know for sure that you know if you install a CPS skill and you ask for it to start like you know play something Then it does in fact play something so like obviously the like that high-level functionality is working It's just some of the details of how that's operating have changed and we haven't We haven't paid attention to those details Or at the very least we haven't changed the test to To articulate what we expect that to look like So Yeah, I guess maybe one of my questions is how much am I trying to do that work of digging through and and You know looking at what that low-level behavior is You know how many times should stop get called blah blah blah blah or how much am I you know flagging things that are behaving weird But getting the tests passing green and then coming back to Fix up why the tests are behaving weird Well, I'm not weighing in because I'm not actively doing development. So We haven't yeah But I will certainly render one if you that may not be a you know May not be the kind of thing that we can just answer straight off the off the cafe there, but um Yeah, that's where I'm at sort of as of this moment I want to put too much work into it just because we have skill states coming up and that may Impact whatever logic is there and hate to double the work if it's a lot of work Quickly the surrounding environment called stop or start three or four times unit tests are little tiny tests for methods Yeah, well like so the CPS method for example The CPS start thing, you know just using that as the example is like if I call if I ask If I ask the common play system to start playing some music and there is already something playing then it should call stop To you know, what's not what a unit test does that's a system integration test Well, we're when probably not using unit tests in like the you know the most perfect. Okay. So that's why I was confused, okay? Our unit test could certainly be a little bit more unity Well, I mean, is this in the context of the vk system or is this a separate testing system now? These are the unit tests that we run Core whenever we have alongside of the vk tests, okay, whenever we have changes I mean, yeah, it's not. I don't know I'm clearly you guys are clearly far more experienced than I am in like software development. So But it does feel, you know, pretty legitimate to say if I call this method, you know, what do I expect to happen from that? No, you feed it the inputs. What's the output you expect? Yeah And that would make you've got a bunch of unit tests that really should be converted to vk tests Well, I mean it would makes like if everything was pure functions, then You know, that would that would work, you know, like but my craft is very far from having pure functions You know being made up solely of pure functions where you can perfectly unit test inputs and out We want to be classes has is composed of methods and every one of those methods is a function and every one of those functions Can have unit tests but those unit tests shouldn't care about anything other than what that function takes as input and returns as output That's the definition of a unit test Well, unless a function doesn't return anything Well, then if it doesn't return anything it should make sure it never returns anything and if in the future it does it should a certain exception Yeah So, I mean we could I guess I guess you could question that we had later. We can we can yeah Unit tests Should behave when I trigger an event the way that the systems behaved when you trigger an event has evolved and The system doesn't behave like that anymore, but your behavioral tests all pass So that's the situation you're in right Is it is that accurate guess? Well, I wouldn't I would Well, yes, it is accurate, but I would not entirely trust Voight-conf test to tell me that the whole system is working as I expect Well, that's that's the goal of the vk tests But I agree that it may not cover every single scenario that's covered in the you know, the so-called unit tests But But yeah, so my curiosity earlier was whether the This behavior was due to the built system or due to the code that we're using now or That's the code it's that we because we haven't been we haven't been running the unit tests on the feature mark 2 branch and so we've just been making changes to the feature mark 2, you know over time and Whereas if you if you made that change to dev then every single time you make a PR, it's gonna run the unit tests and Require those unit tests to pass before we can merge it whereas we haven't been doing that on the feature branch Which we really should have said like, you know, it was kind of silly not to set it up, you know from day dot Yeah, because then we would have caught each of these changes as they were happening fix the tests and and You know, okay, whereas now I've got to kind of like go back through and figure out, you know Where was this change made and what's what's actually changed and what's breaking the test and is that right, you know So, okay, so let's I okay. So what I think we should do here is Well, okay before I say what we should do one more question Is this holding in what way is this holding up the build just because the process now says make sure the future tests pass and they're not passing Yes, one of them Like, you know at the moment we don't we don't run the tests and I Manually, you know update the sub module for the build process and it it builds and whatever But if something goes wrong, like if if you if someone pushes bad code to it the build breaks The the build system, you know has no checks to say, you know To run those unit tests itself or to you know to run out of the tests. So it just builds it Presuming it's not bad enough to actually raise a you know a shell Error then it's it builds it pushes it out to the mark twos and it goes out to latest and everyone's devices, you know Stop working Until I hit the revert button and ever and they all come back online Marko just need to test it anyway, so This is not gonna be a foolproof way for sure. Yeah, I mean, I think that let's let's see Um Okay, so how did you notice this? Well, so then so what I've been doing is like adding a github action to the to the market feature branch that says on each push We want to you know, send this over to we want to go and update the The sub module over in the build recipe before doing that Double check that everything's still fine. And so, you know as a way of you know, not pushing bad code To the build okay, so you were you're making our build process for the mark to feature branch more robust and then that you uncovered That the future that the unit tests are not passing. Okay, yeah And let's just make sure we can summarize this from a high level, right? The system test the vk test the system integration test all pass Well, I haven't I haven't I haven't run those either. So I don't know that Okay, but Well, so are you saying that when we push to feature? So are you saying that the only time we run vk test when we push the dev at the moment? Yeah, I see, okay And so that's what happens then everything's changed underneath the unit test unit test more and structured properly And they were looking at system behavior and the system behaviors change now They're barking but the question again is it sounds like your system tests are passing It sounds like your device is working Right, but your unit tests are breaking and mass So that's not a good situation that basically says your unit tests are wrong. I Mean less people are making methods You know, I mean, you know, you have something that says multiply two numbers, right? And now all of a sudden it's broken. That's what a unit test was to catch Not whether you know downstream the result of that multiply function had an adverse effect somewhere Yeah, okay, so my my thought is that We need to have a build system that works And that we can you know rapidly deploy things I think so a couple options here We can either just stop doing builds until we get this sorted out, which I don't think is necessarily the best option But that's certainly an option We can Basically consider changes to the build system as you know As features, which you know, they basically are right so adding adding the feature of Testing that it doesn't break the unit tests is you know We have to make sure that that actually passes before we can check in the change that forces us to check the unit You know check the unit tests, right? Well, and I'm doing this I'm doing all this on a different branch and because I didn't want to mess up the feature market, okay? Yeah so so what you know, I guess To go back to your initial question, I would say Option A Let's first let's get a list of what the what the breakages look like, right? What what are the bugs that you're running into? What is failing and let's you know And then people can take a look at that and say whether or not this is a big deal or not a big deal To fix and get running And decide whether it's worth fixing now or whether we should put it off till skill interaction You know stuff happens And then you know if we're putting it off then basically we're also putting off Running unit tests or we can just comment like we do with the vk test We can put in you know X fails or comment the note or whatever on those on those failing tests And then come back to them once we get to skill interaction right Yeah, I mean again, I would question the validity of those unit tests I mean this is if I'm not mistaken. This is a valid analogy, right? So there was functionality that used to live in core it got moved out into a skill or vice versa Any unit tests that were interested in that process Are gonna fail because that functionality is not being provided by core anymore. Now it's being provided by a skill Is that a true statement? hmm I don't think that really applies We're like so some of the some of the tests, you know It's just a matter of updating it because we we didn't keep on top of it And maybe the other ones are similar like I haven't gotten through them all so like there was one where we appended a a packaging parameter to the To the pairing code API call and That in the test, I think, you know, it looked like Chris had added that to the test when when we'd added that as a way to As how we were getting the the pairing code but then the Function got updated again to remove that because we were changing how we were detecting that it was a You know mark to or pentacle based device versus something else and so But then the test didn't get updated and so for that one, you know I Trace it back and and you know Was wondering why why this parameter wasn't being added But then eventually saw that like that functionality been removed So I have to add the test and now that test passing so like, you know, right? So yeah, so the problem is that we weren't running unit tests Before checking in code to the bar two branches. Yeah, so we just haven't kept on top of it And If there are unit tests, whether they meet the strict definition of a unit test or not Right if there are tests for a particular repo or whatever We should be running those whether they're vk tests or not every time we do a check-in Which is what you're trying to fix right now. Yeah I'm getting at is that if you've got tests that are testing that the system is behaving in a certain way and The system's been re-architected to behave in a different way It shouldn't surprise anybody that all those tests are gonna fail. Well, great. That's the point But the question here is that are testing that the system. Well, I don't care about the semantics of whether it's just Outputs and results. It doesn't matter whether it's a system level test or a module level test or a function level test or whatever The fact is we had a bunch of tests that we weren't running when we were checking in our code Like whatever kind of tests they were right. It doesn't matter because they used to work and now they don't So Some of them by definition are never going to ever work. Yeah, I'm not saying we have to fix the code I'm saying yeah, you're right. Maybe the tests are broken. We need it Works a certain way and maybe the system's been changed to not work obviously Still comes to mind right when you when you send out We still have to fix the test doesn't behave the way it used to Yeah, you're looking this code the volume skill change the volume you're gonna fail That's the point though. So, okay. Okay. Okay. Hang on. So that's not the code. How about I am going to I'm going to go through and mark like I think this is what Michael said before But just to clarify, you know, what my next, you know course of action is I'm gonna go through and Flag all the things that are broken and just like comment out the assertions that are that are failing So we can get to a passing state With with a nice, you know to do comment And then we'll be able to see everything that's change everything that's failing and and we can come back and discuss You know, well, I'll post those in the chat and so then you know, people can see What's what's failing or not and we can we can talk about each one of those in turn or you know People can have a stab at trying to fix fix them and if I can figure out, you know, which commit Broke that then I will also include that in the comment and so Yeah, it will just help point us to the solution or you know what might have changed and therefore how the test should potentially change Right, is that all right? Yeah, okay, cool Okay, so but that won't be rolled into our build process until we get the sorted out, right? correct The the upshot being that we'll be able to do a build today if there are any if there are any changes that Could be I don't think I don't think we're doing any changes in core at the moment. Anyway, like with us Okay, so this only applies to core not skills. Yeah, correct All right anything else I Did a bug fix on the I found a thing in the weather skill Which was not present on the mark to But it was a time zone a very, you know specific time zone issue because It just boggles my mind that like a core function in the you know the Python standard library Takes takes in a time stamp, you know second since the epoch Outputs a time zone aware date time object, but doesn't include the time zone info on it It provides it as if it's a time zone naive object like What why That's just bizarre Anyway, maybe it's a bug Maybe Yeah, all right, so yeah But it only really affects people who you know Well, it affects anyone that's running on a system where they've actually set the system clock time zone to be Correct or not you TC and so anyway, that's good Okay Derek do anything that you want to say another that Someone's gonna work No, I've just been working marketing stuff today But hope to get back to doing some more on the skills interaction mock-ups that I had started earlier this week tomorrow Um the process is is in place now and so you know, I kind of mentioned earlier that this Actually producing them now should go a lot quicker now that I've figured out how to do them So yeah, and then I'll use I mean the goal is to still be used, you know, YouTube but then link them in the in the Spec document and then also use the you know, the chapter system in YouTube to to get exactly to To where you want So anyway, I'll be I'll be back on that tomorrow. I Have been thinking about that too in terms of like how we have that conversation Because like it seems like we can create a conversation around each video With the community and that I'll be like pretty hugely valuable Is it You know, yeah, anyone can comment on like, you know, whether they're technical or not Around like is this the pay-view expect is this you know, is it not, you know, how would you how would you change it? Are there other? Scenarios that you think Well, and even like what they think the rule like what they think is happening there like, you know Different people would have different interpretations of like, you know potentially what you know What they think the rules are behind it kind of thing and then whether there are other situations that apply or don't apply for that So yeah, I reckon when you if you're happy for us to start pushing them out or when you're happy for us to start pushing them out We should We should do that Yeah, well, so yeah, the first one was just more of a test, you know, it just said It wasn't necessarily a group of, you know Similar Interactions, so, you know, the idea of going forward will be like, okay, these are things dealing with I Have exactly a side of how I'm gonna group them yet, but But yeah, so it makes a little bit more sense as to, you know, why these certain interactions are together But at the same time I feel like not giving people too much information about it is You know, very helpful from like a, you know, user experience testing kind of Yeah, that's a good perspective The less the information you give people and the more you just present it to them and say, what do you think, you know What do you think's going on here? Right, we might learn some stuff Yeah, one idea I had was, you know, just starting from the base point of, you know One type of skill or one of our skills, you know saying, okay This is the weather skill, you're interacting with it and here's, you know, all these other interactions that could happen, you know from there Stuff like that, but But yeah, it kind of depends on, you know, I wasn't necessarily thinking about it in terms of, you know, keeping things somewhat ambiguous to the community to You know, get that reaction, but I mean, it's certainly one way you can do it for sure But really, I mean if you go, well, I mean, it's not taking too much time I mean, if you go back to the The interaction spec, what I really was going to do was there's a section there called Real World Examples And each of those, I kind of start with, you know, let's say you're interacting with a timer skill or you're interacting with the alarm skill and then, you know Other interactions happen, other things happen, you know, you're using timer and then alarm interrupts or something like that So anyway, that section there in the spec is kind of what I'm going to be building them off from But yeah, we could keep them somewhat vague It was just an idea and only if we think we're going to get useful information out of that, like it was just going to get confusing for people like then Yeah, I mean, like I said, I'm not, I'm not exactly, I mean it is kind of vague, right? It's not like I'm saying These are stateful skills that are being interrupted by, you know, such and such, right? It's really just like you're interacting with this skill and these things are happening, these other interactions with those skills are happening So it is really kind of without any preconception, you know, not really stating the category skill or any kind of knowledge as to what's happening behind it occurred Yeah, and I think that's what I'm really talking about is like, we don't want to say, okay, you're going to watch this video and, you know You're going to like see an immersive skill and a sticky skill and how they interact and we think what we want is that, you know, the sticky skill does this and blah, blah, blah, blah It's like, you know No, no, I'm not going to have any yet. No, it'll just be basically Yeah, here you are interacting with the weather skill and then such and such happens and such and such happens That's the idea Cool, cool. Alright, I might also do a write, I don't know, unless anyone else is doing it, I might start doing a bit of a write up on like What the goal of this sort of process is, like that'll be a blog post, I guess, of like, you know We've got the skills, we've been, you know, getting the skills individually, you know, humming along nicely And then the next phase is sort of looking at how they all interact together and really fine-tuning that and blah, blah, blah Unless that's something that, Michael, you've already started writing or you're muted Yeah, I've got a little bit of that But yeah, we can talk about that a little later I've started, I've been doing a lot of speculation on various parts of this, but I'm not really ready to share any of it just yet Yeah, cool. Alright, well maybe I'll just drop my thoughts into a document and I'll share that and we'll go from there Everyone, I got a job. We'll see you all tomorrow So, Ken? So, do we still have an office out there or did the volcano take it out? Was there a volcano today? Yeah, the volcano erupted on Kona, I thought Oh, I talked to Josh a few hours ago and he had mentioned it, so Alright, so he's still alive He was running, but And then I noticed, Gez, when you built the repository for me for the precise light runner It is, the repository is marked as an Apache license, correct? Yeah, I just included the license because that's our standard license and that's what precise is So that leads me to the question, why do we have to stick like 30 lines of code at the top of every file with the same thing? That's what the convention has always been and I assume that someone that is a lot about intellectual property law decided that we should do that So the license that covers the repository doesn't cover every part of it? I think it does, officially, but my assumption is that it's more of a protection thing So if someone takes a single file of code or forks the repository and goes somewhere else then Having the license there on every single file means that they can't pretend like they didn't realize that that code was under a particular license or something But I don't know And we don't go after licensed scoff laws, do we? Only in, I mean, yeah, actually we do, like we do because if we don't then the license can be challenged and becomes meaningless And the only times where it's like people have really fallen afoul of it is if they You know, not like Google forks our stuff and tries to turn it into the Google voice system or some shit like that But like a university student from Brazil forks it and does a finer replace and just replaces everything with their own name And all the copyright and licensing information just turns into their own name And there's zero references back to Minecraft and that sort of thing And so when that happens then we reach out and we say, hey, you probably didn't realize that what you were doing was wrong But like this is the terms of the license and this is what you've got to do and you've got to keep references to the original and blah, blah, blah So yeah, we do police it, you know, gently and with good spirit in mind I was just looking at it and I'm saying, geez, you know, we have this duplicate at the top every file, you know, doesn't seem necessary, but it makes sense So yeah, I'm working on the getting the module for the TensorFlow Lite precise runner Modular lives and seems like I'm just running into problems with setup tools and everything But I'm almost done. I think it'll be done by tomorrow It's also part of the problem is that the test of my mark two, I have to get off of my home network I got to boot up my hotspot, bring up my mark two, get my computer on my hotspot and work on my hotspot And a lot of this stuff is bringing in big files and stuff, so I didn't want to do that, but it's all right So I'm working on that. That'll be done by tomorrow, I believe We don't want this pushed out to pie pie, do we? Just to our repository, right? Because it's pretty Minecraft specific Well, we don't need to push it out to pie pie yet, but I would imagine that when we're happy with it, that that would be a good place to do it But we can just install, you can just install them from directly from GitHub, you know Yeah, yeah, no, that's what I've been doing, but the problem is it's not going to work outside of a Microsoft environment I've also been working on Hawaii accommodations a little bit because it's been a couple of weeks to a month now And I forgot where I selected Guys, when will we have GPO support in our kernel? They're working on the 510 kernel at the moment And I said that yeah, we're very keen to help them test that as soon as it's available But I haven't heard in a week or two about progress there But yeah, you could ask Julian, Julian's doing testing around that, so if you're talking to him, yeah Because I know that in Bunchy, right, that it's already in, right? That's 20.04 or whatever So that's it, yeah, and then I just haven't been maintaining my normal daily velocity because I've been up late And working on a bunch of other experimental stuff that I felt was important for me to learn So that's why I'm not going to have this module until tomorrow But that's my update I guess it's my turn, so spending time in the Mark II skill right now Figuring out the inner workings of the resting screen And trying to make changes to the home screen so that when it loads Or when it reloads that the data shows back up on the screen I think I've got it figured out, but some of the stuff is really hard to follow because like When something goes to the GUI message bus, for example, it kind of disappears into the ether because I don't know how the GUI framework handles that and what it does and where it returns And there's a lot of communication with that. So, you know, just even finding message us messages in some cases where they're being used has been difficult So yeah, I mean I spent a lot of time trying to figure out how it works and I think I might have a solution. I haven't tested it yet, but we'll see So once I get that done and there's one more bug with the home screen that's really doesn't home screen related to probably more again Mark II skill related The air doesn't there's an error that just keeps happening over and over again if there's an error in the skill So that's what I've been working on and what I'll probably working on for the rest of the week I've also been in PR land a little bit and You know on chat doing talking is so it's doing a lot of regular administrative stuff too I have a question about our bring up process. I don't know if you want to leave it on Community or shut it off. I don't care either way Well, if it's if it I'm gonna labor recording and if it seems useful, I'll leave it in and if not and Farewell everyone Pouched upon yesterday that we have Two kind of lists of skills. We have Skills that are list priority skills and then all other