 And hello everyone, this is the CircuitPython Weekly for September 19th, 2022. This is the time of the week where we get together to talk about all things CircuitPython. I'm Dan and I'm sponsored by Adafruit to work on CircuitPython. What is CircuitPython? CircuitPython is a version of Python designed to run on tiny computers called microcontrollers. CircuitPython development is primarily sponsored by Adafruit, so if you want to support them and CircuitPython, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join the server anytime by going to a-d-a-f-r-u dot i-t slash discord. We hold the meeting in the CircuitPython dev text channel and the CircuitPython voice channel. Typically, this meeting happens on Mondays at 2 p.m. U.S. Eastern Time at 11 a.m. U.S. Pacific Time, except when it coincides in the U.S. holiday. In the note stock, there's a link to a calendar you can view online or add to your favorite calendar app. We also send notifications about upcoming meetings via Discord. If you would like to receive these notifications, ask us to add you to the CircuitPython EASTA's Discord role. There is a note stock to accompany the meeting and recording. The notes document contains timestamps to go along with the video, so you can use the dock to view only the parts of the video that interest you most. The meeting tends to run 45 to 60 minutes, so this gives you the option to skip around. After each meeting, we post a link for the next meeting's dot notes document to the CircuitPython dev channel on the Adafruit Discord. Check the pin messages. That's that little push pin icon at the top. To find the latest note stock, so you can add your notes to the following meeting. If you wish to participate but cannot attend, you can leave hub reports and status updates in the document for us to read during the meeting. This meeting is held in five parts. The first is community news. The second is the state of CircuitPython libraries in Blinka. The third is hub reports for the status updates, and the fifth is in the weeds. I'll explain these things as we go along, since almost everybody is already familiar. So with that, I'll begin by reading community news. Let me get a timestamp here. The news here is collected in the CircuitPython, in the weekly Python for Microcontrollers newsletter, which goes out on Tuesday mornings. You can visit AdafruitDaily.com to subscribe to the newsletter. Thanks to Ann for putting the newsletter together. If you have any Python and hardware projects to share or find content you'd like to see included, please consider contributing to the newsletter. You can open a PR and GitHub tag at sign and underscore engineer on Twitter with the hashtag CircuitPython or email cpnews at Adafruit.com with a link. Any of those are fine. We get news anyway, and it doesn't have to be about CircuitPython. It can be about things related to Python or MicroPython or anything else that seems kind of vaguely relevant. Okay, so I'll begin reading the community news. First item we've got here, Arduino IDE 2.0 was finally released. It's been in beta for a long time. After a lot of testing period, Arduino announced that the Arduino IDE 2.0 is moved to stable and is available for download. It has a modern editor and provides a better overall user experience thanks to a responsive interface and faster compilation time. It's really quite a bit nicer looking. Try it out. And you can have more than one version of the IDE installed if you feel like it. So I'd recommend that you try it. Next item, Diode, which is a virtual hardware IDE kind of, makes it easy to build, program, and run hardware projects in the browser, save time and money waiting on parts, shorten feedback loops, and build hardware better. The syntax is Python. You can play with a very limited demo now. Go to withdio.com to see more information. You can sign up for more information. Next, let's talk about the CircuitPython show. The CircuitPython show is an independent podcast hosted by Cutler, focusing on the people doing awesome things with CircuitPython. Each episode features poll and conversation with the guest for a short interview. The latest episode was released September 19th with guest Thea Flowers. Thea shares how she discovered CircuitPython, her synthesizer company Winterbloom, and how her products use CircuitPython. And if you want follow Thea on Twitter, she's got a lot of interesting things to say about hardware design. It's fun. Next item, Maker Becky Stern has a new electronic video series for Digi-Key. So Becky Stern used to work for Adafruit, did an awful lot of work on wearables that had electronics with them, made some really nice projects. So she now has a new video series that she's doing for Digi-Key. Becky has always done an outstanding job of explaining what can be intimidating technically in an entertaining and digestible way. And there's some links in the notes about how to find out more about this newsletter. I mean, this series and some blog posts about it and the like. So thank you. Sounds great. Take a look at it. Next up, the CircuitPython Community Help Desk returns September 29th. We already had one kind of the initial try of the CircuitPython Community Help Desk, which seems to work out very well. That one was on Saturday morning. This one is going to be a week from Thursday, 7 p.m. to 9 p.m. Eastern Daylight Time. That's U.S. Time. Developers will be on hand to get you ready for Hacktoberfest and share how to participate in Hacktoberfest by contributing to CircuitPython.net's libraries. So we'll have more next week. So take a look. Next up is newsletter details. I already mentioned, please send. A lot of this news comes from, or all of it comes from the CircuitPython Weekly Newsletter. So the Python are microcontrollers with the newsletter. Contribute to it, please. We would love to have stuff in it. The more images and other stuff, the better. All right. Next up is the State of CircuitPython Libraries and Blinka, which is the statistical overview of the entire project. It gives us a chance to look at the health of the project, separate from what we're up to. We'll talk about the overall project, and then separately discuss the core firmware libraries and the Blinka project. Okay. Overall, in the past week, there were 42 pull requests merged by 22 authors. Some ones I haven't seen before are Ducky the Scientist, Wynn Stormger, Strideur21, ALS programmer SNYK MKRCT, TWA 127, and, which is great, a FLAM84. I don't think I've seen that either. But if you've worked before, that's fine. Great. Thank you for contributing. Of these 42 pull requests, there were nine reviewers, and there were 43 issues closed by nine people and 16 by nine people. All right. Next up is a report about the core. Jeff has volunteered to talk about it. Thank you, Jeff. Hello. Yes, I have. I just have to find the right part of the document. So the core is the part of the CircuitPython that is written in the C language, and that makes everything work. And in the past week, we had 18 pull requests merged from 13 authors, and some of those that Dan listed off before were contributing to the core. So what a way to start. Wynn Stormger and FLAM84 and Strideur21 were some of those names. So thank you very much. Oh, and Lee, LiKinso42. I think that's your first pull request. So that's exciting. And in terms of reviewers, we had the normal crew of people so thanks to Gambler and Naradok and MicrDev outside of Adafruit for putting in those reviews. It really helps us. And Katny will tell you more about reviews and being a reviewer in her section in a little bit. In terms of pull requests, we've got 17 open pull requests, and about the first half dozen of those are over 120 days old. If those are in a draft state or if they are looking for changes, please do that when you get a chance. And if you're waiting on something from us, please feel free to ping again. We do occasionally drop the ball, and your general reminder will help get things back on the road again. Then we've also got about five PRs that are under 10 days. So it would be good to just keep an eye on everything on that list, as you all know. Issues-wise, we had eight closed issues by three people and six new issues open by six people. So the number trends down this week. It'll trend a different way another week, but we appreciate everyone who worked on those issues and everybody who's reporting new issues. When you're having a problem, there's probably other people having the same problem. So we need to know about it. That leaves us 574 open issues. We mostly organize how we work on issues in the core by milestones. So for version eight, we have 43 open issues that we'd like to resolve before we issue a final 800 release. And we may add or remove items from that list, according to our feelings at any time. And for version 73, we have zero open issues. So that's nothing pending that would make us make another 73 release right now. And when these statistics were generated, we had five issues not assigned to milestone, although while we were doing the earlier bits of the meeting, I did go through and assign milestones to all of those. So that's now zero issues not assigned to milestone and probably about 45 issues assigned to the 800 milestone. So that's how that cookie crumbled. I have not actually been doing a lot of work directly on the core right now. I know Dan is very focused on moving towards the 800 release. And that's great. Being taken in another direction right now. And so I think is micro dev. But anything that you can do to help us work through those open issues and release version eight or do testing of the version eight beta, it would be really helpful. So according to what you're able to do, we'd appreciate your help with that. And we are as ever inching towards version eight. And that's what I've got for the core. Thank you, Dan. Okay. Thank you, Jeff. I'll just note that there are some, I think there are some issues in the 800 milestone that are marked as needs retesting their tag to that tag. So if you have the time to take a chance to find those and just test them again and see if the problem still exists, that would be very helpful. Okay. Thank you. All right. Next up is the state of the libraries and catney. I believe we'll talk about it. Hey, Stan. So this applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore circuit Python underscore, as well as a few extras such as the community bundle and our cookie cutter. Over all of these repos, we had 20 pull requests merged from eight different authors and four different reviewers. Two of those pull requests were over 12 days old. So we're still keeping up with older PRs. And most of them were zero to four days old. So it's good we're keeping up with newer ones as well. And that leaves us with 33 open pull requests. In terms of issues, we had 34 closed issues by five people and 10 open by three people. So we are down quite a bit to 599 open issues, which is great. We're under 600 again. And 138 of those are labeled good first issue. If you're interested in contributing to Circuit Python on the Python side of things, you have a couple options. If you'd like to get into reviewing, you can go to... Either way, you can go to circuitpython.org slash contributing. If you're interested in reviewing, check out the open PR list. It'll give you an opportunity to pick something that interests you. If you have the hardware, test it. If you don't, take a look at the code, see how it looks to you. Leave a comment and let us know. After you get comfortable with that, we can talk about leveling you up to the review team. If you're interested in contributing code or documentation, check out the open issue list. They are set up to be by repository. And the issue name is on that page, so you can search for different things. If you're new to everything, good first issue is a great place to start. We also have a guide on contributing to Circuit Python using Git and GitHub, and we're always available on Discord to help you out. So don't let the process intimidate you. We can definitely help you be able to contribute in a way that works for you. In terms of library updates in the last seven days, there were no new libraries, and there is a list of updated libraries in the notes if you are interested. And that's what I've got. Okay. Thank you, Katny. Next up is Blinka. Maker Melissa is not available today, so I'll read this section. Just as a way of introduction, Blinka is our compatibility layer for Circuit Python on single board computers like Raspberry Pi. So you can run Circuit Python libraries under regular Python, which is also known as CPython, somewhat confusingly, because the C is not for Circuit. And Blinka is the glue that lets you do that. It's the shim that lets you use Circuit Python style code in regular Python. Okay. So in the past week, four pull requests merged by two authors, and there was one reviewer. There were still six open pull requests. There was one issue closed by one person, and zero opened by zero people. So that's no new issues. Very nice. There are still 83 open issues on the Blinka repository. There were 12,427 Pi wheels downloads in the last month, and we're supporting 91 boards right now, which is terrific. Okay. Next up is Hug Reports. Hug Reports is a chance to highlight folks in the Circuit Python community and beyond for doing awesome things. I'll start as the host, and then we'll go down the list alphabetically to give everyone a chance to participate. If you're text only or missing the meeting, but have Hug Reports in the notes document, I'll read them off as I get to you in the list. Okay. So as I said, I'll start. Thanks to Microdep for working on updating our use of the ESP IDF from ESP IDF version 4.4 to 5.0. This is some preliminary work, which we're probably not going to put in Circuit Python 8, but it's really helpful that Microdep is working on this. There's a lot of busy work involved, there are API changes and other changes between version 4.4 and version 5. Thanks to Lee, also known as LACATSO42 on GitHub for adding bulk analog input to Circuit Python and persevering through extensive naming churn. There was a lot of discussion in the poll request about how things should be named and then build issues and other things. And I really appreciate Lee working on this. It's something that we've wanted for a long time and it's now merged in. And thanks to Johnny Bergdahl, who noticed some translation issues. He's always on top of doing updating the Swedish translation as soon as he hears that there's something to do and he pointed out an issue and we fixed it right away. We really appreciate that. Okay. Next up is C Grover. I'll read their contribution. To Nerodoc and TechTrick for assistance with some recent community bundle PRs. They were very patient and helpful. Next is Charles B. I'll read it. It's a group hug for all. And next up is David Glaude. I'll read this also. Thanks to Paul Kovler for hosting the meeting last week. I was super confused because I did hear the Circuit Python show music. Some voices are just music to me. Maybe there was a big difference of audio level between Paul's microphone and everyone else's. Okay. Next up is DJ Devin. Go ahead. I'd like to send a hug to Fome Guy for all of his streams this week. I learned a couple of new tricks with PyCharm. That were really cool. Especially didn't know you could use Git with PyCharm. So that was nice. A hug to Paint Your Dragon for the Penguin silkscreen thingy. And that looks like it'll save all the Eagle designers out there a lot of time for creating their... Transitioning their silkscreen stuff. Text to silkscreen, I should say. And a hug to Phil T. For personally handing a newsletter support question. He went above and beyond for fixing that issue. Ended up being user error, my fault. Hug to Dan H. for hosting the meeting. And for all the voodoo magic he does on the back end every single day. And a hug to everyone who's working on projects for CircuitPython or Adafruit. Okay, thank you very much. Okay, let's move on to Fome Guy. Go ahead. All right, thanks Dan. This week, hug reports for C Grover for sharing a palette fader library in the community bundle that works with Display.io. Also, separately another one for looking into some technical approaches to find color similarity between multiple colors. A hug report to Tektrick for all of his work on library reviews and PR tests and things like this across the several months that Tektrick has been involved. He's done so many things. So thank you to Tektrick. Thank you to Katny for some help and advice about communicating with a contributor. And then lastly, a group hug. Thanks to everyone. Okay, thank you very much. Okay, next up is Jeff. Hello again. I wanted to thank Ann for sharing a cool new poster with me earlier in our internal meeting. And to Katny for sharing something else cool with me this weekend. Dan, thank you for staying on top of the CircuitPython core nearly single-handedly while I'm focused on PyCow. To Tektrick and Naradok for discussions of libraries and typing information just this morning. And Jimmo at MicroPython has continued plugging away at a core flash memory size savings idea and is putting in an enormous amount of work. And you know, I look forward to being able to take advantage of that work when we do the next MicroPython merge. So thanks for that. That's what I got. All right, thank you, Jeff. Okay, next up is Katny. First up, I have a hug for Paul Cutler for hosting his first CircuitPython weekly last week. To Tammy Makes Things for a lovely chat and helping with a couple things this weekend. To Anne B for helping as well. To Jeff for a quick chat and a much-needed opinion. To Tektrick for Adibot Fixes, regardless of who caused them. And a group hug. Okay, thank you, Katny. Okay, next up I'll read Mark Gamlers. Thanks to Lee for all the work with the bulk analog IOPR that was now merged. Yes, plus one. Next up is Paul Cutler. I'll read his contribution. Hug to Katny for all her help last week with hosting the weekly meeting. Hug to the Ruiz Brothers and John Park for the walk MP3 serves. And we have to decide I pronounce this like walk person project. I'm printing the parts now. I'm looking forward to building something similar. Thanks to Tektrick for helping with feedback on my first CircuitPython PR to fix a small issue in the Macropad doc strings. Next up is MicroDev. I'll read theirs. A group hug. Thanks to Dan H for quickly creating forks of some expressive repos which need customization to work in CircuitPython. And thanks to Jepler for pointing out possible pin-clinflux situations in the co-processor PR number 6902. Next up Tammy makes things. I'll read theirs. Hug to Katny for a great chat yesterday and a group hug. Next is Tektrick. Also text only. I'll read it. Thanks to FOMI guy for car reviewing a PR with me. I always appreciate having another set of eyes and ideas on things. Thanks to Paul Cutler for their first CircuitPython PR. Thanks to Paul Cutler again for getting information to Ann about the upcoming community help desk. Thanks to C Grover for all the awesome community bundle contributions. Thanks to Katny for helping me finally fix the the adabot issue in generating the library infrastructure issues page. Thanks to Jepler for the great idea of making actions for our library CI. Thanks to Jepler again for the great suggestion on adding MyPy to pre-commit. Very excited to look more into it. That will be very interesting and we may find a number of bugs by that by doing type checking during library builds. And finally a group hug. All right thanks everyone. We'll move on to status updates. That's our this is our time to sync up with what we're doing. I'll start and we'll go to the list alphabetically as before. When I call on you just take a chance to talk about what you've been doing since the last meeting and what we're doing until the next meeting. This is also an opportunity to provide tips and tricks relevant to what people are working on. If a discussion becomes too much for status updates we can move it to the in the weeds section which is at the end. All right I'll start. In the last week I've been working on this for a while. It's gone through multiple iterations but I've added the ability to preserve the state of pin state that is digital in out state during deep sleep. So when you enter deep sleep you can give it a list of digital in out pins and instead of everything being reset to some uniform high or low state or floating state you could say please leave this pin high and make it and have it be an output. Please leave this pin as an input and have a pull down that kind of thing. This is currently implemented on Espressif only. If somebody wants to look at it for other ports that would be great. Our first use for it is on Espressif just as we did deep sleep for Espressif first. Espressif also has an unusual way of doing pin holding so it's kind of specific to that port. Then I've been trying to prune the bug list down as we mentioned so there were several two or three or four issues that I worked on and either closed or had further questions or fixed them. And in non-circuit Python news we've been doing a lot of rearranging of furniture in the house to move a home office from to another room not my office but someone else's and it involved like musical chairs with six pieces of heavy furniture a lot of trouble but it looks better and I installed some more carpet tiles because I moved some furniture off the floor where the carpet tiles needed to go and this time I didn't slice my thumb open when I was doing that which was good I'm wearing a potholder on my hand now while I'm using the carpet knife and then going along with this there's a lot of musical chairs involving the insides of computers so they were older computers that are being replaced with newer computers and the disk drives are swapping between them and that caused me no end of grief last night until two in the morning and I think it's all straightened out now but doing dual boot setting up dual boots in the proper order and making sure that they work properly is a total pain all right I'll move on to see Grover's text text only inspired by FOMI guys flip clock project started working on a method to update a display IO palette for setting chroma key that is green screen transparency the quest required an unplanned detour into RGB color value comparison land it's a glowy place made vibrant with its three suns I have a working algorithm and test that needs a couple of tweaks the next challenge is to provide a logical and user friendly tolerance setting for reducing anti aliasing edge effects and there's a little picture here in the a better picture in the chat actually thank you see grover okay next up I'll read David cloud is contribution please scroll in the discord chat and vote for a name for a feature name in circuit python.org board selection go to circuit python dash org issues 1032 take a look at that David recovered and tested my Pi USB code for the buzz joystick unquote test and some Arduino USB host examples for keyboard pass through for the teensy I was misled to believe that USB host was supported in circuit python ITT 4.1 by Twitter user river Wang and also by release notes of 73 so I tried then I watched one of the two deep dives on the sub topic by Scott then I found issue 6527 that explains the status then I watched two or three videos from AT makers Bill Binko now I want to replicate one of his USB filter PCBs which are two trinkies trinkets back to back or a trinket talking to an RT talking to RP 2040 QT Pi if somebody is interested in working on USB host we'd love to have you work on it it's something that we would like to have but we have don't have enough person power to do everything right now okay thanks David let's go on DJ Devin you can go ahead okay this week I received a bunch of out of fruits new three-foot magnetic USB C cables and tips for my boards these things are awesome worth noting that you can use these as a practical replacement for an on-off switch for the Pi Pico so you just unplug it and plug it back in it magnet you don't have to worry about fumbling around with trying to figure out which way it's flipped over correctly like USB or even sometimes USB micro is um USB C is kind of immune to that though I highly recommend everyone add them to your arsenal out of fruit just added the micro B and iOS lightning tips to the store this week and I would love to see some six-foot versions for headphones so you don't rip out your headphone cords so that would be nice this week I worked on or I ignored the RFM Laura Messenger project had to completely move that to the side as a 16 step sequencers taking all of my attention there was a poorly designed pull-up circuit for the I2C expanders that I didn't catch in my first revision so I had to run a whole bunch of bodge wire in order to get the Pico to communicate with the I2C expander chips got that working and then yeah and then Sunday but that was on Friday and then on Sunday night I thought some of the traces were touching that I missed during routing and then all five boards were paperweights and then just before the meeting when I was working with some code I figured out that the footprint I used for the MCP expander chips and because I use easy EDA they were half of the pins were backwards on the on the footprint so I just started running all the stuff and doing a blink sketch and started lighting up the LEDs that way I will be fixing all of these issues in a new batch of prototype boards and thankfully because I go with JLPCB they're pretty cheap so this is a valid kind of somewhat expensive more expensive than Perfboard but it's still kind of valid yeah they're and they are pretty let's see eventually when I have working prototypes I intend to give them a way to whoever wants one developers and pythons says get first dibs and I have had a busy yet unsuccessful week here so far dealing with the PCB stuff so that's all I got is PCB updates okay thank you very much DJ Devon okay next up is FOMI guy all right thanks Dan last week I did some further PR reviews and testings I worked on the typing annotations as well as dock strings and cleanups for and I should say and cleanup of the flip clock widget library I also learned how to use typer the python module typer which I think I owe a belated high report I believe maybe the tech trick is the one who pointed me towards typer but I'm not a hundred percent sure I apologize if I got that wrong but I learned about typer and used it to make the sprite sheet generator that goes with the flip clock widget into a command line interface tool that has arguments that let you pass in all the different options to customize your flip clock visual effects this week I have been working on gathering some notes and helpful scripts that I have used at various points throughout the past year or so to carry out some automated tasks across all the libraries I think the first one I did was around this time last year for Hectoberfest making the type annotation issues and I've built up a small kind of cache of helpful tips and tricks and scripts that make it easier to do that so I've got all of those pulled into one place and actually presented in a nice easy to find place and kind of went through all of my thoughts surrounding this and got them all into a readme file for myself and others to be able to refer back to a couple other things this week I'll be generating some more sprites for the flip clock with different fonts and maybe other different visual effects like gradients some fun things like that and then I'm hoping to submit that flip clock widget to a bundle sometime later on this week so that's what I've got going on thanks okay thank you for the guy hey next up is Jeff hi so last week a guide of mine went live on the Adafruit learning system it shows how to hook a Commodore 16 keyboard up to your modern computer with USB HID it's a pretty simple eight rows eight columns keyboard but I do show some cool techniques in the guide such as how to await a keypad event this works with any of the three kinds of classes in the keypad module but needs a little core tweak that is in the 8.0 beta versions for it to work I have continued working on the PicoW also known as the PyCow the latest milestone is that I can ping another computer on the internet and I learned that you can use emoji in github branch names but maybe you shouldn't just this morning or I guess I think I started yesterday playing with type checking our annotations with MyPie I did a draft pull request in a repo that was really close to passing all of MyPie's type checks we need to agree on an approach which Tectric and Naradoc were very helpful as I mentioned earlier talking about this but I think we might end up with three different levels none non strict and strict depending how complete the typing information is and I'm not sure but I think some of the libraries may be able to go to strict soon but hopefully we can make all of them pass non strict someday and another thing that I did last week was I scanned and posted to archive.org a cool book from the 80s about floppy disks it's half informative and half tongue-in-cheek and I linked to the 80 fruit blog post that I made in the node stock I'll drop that in the channel in just a second anyway this week working on PyCow the next visible milestone will be to resolve a host with socket pools git adder info method there are about three invisible milestones before I get to that and I hope to publish a second keyboard guide on the 10 1000 before the end of the month of sept handy but PyCow does take precedence and I have a total of six different keyboards that I'd like to turn into guides over the next months all different and then I just wanted to suggest in this moment whether you would want us to all meet some point this week to do triage of the 800 bugs and or those long open pull requests so if you want to do that just you know we should chat about it and that's what I'm doing yes thank you thank you Jeff yeah I think we will maybe not today but sometime this week would be a good idea to do that and cat new is can join us as well that would be a good idea all right I appreciate it Jeff thank you all right let's move on to catney thanks Dan last week I finally published the wi-fi mailbox notifier guide that I've been working on for an exorbitantly long time I got my bivalent COVID booster and flu shot Wednesday afternoon and spent Thursday and Friday resting off the side effects so this week there's one last addition to the mailbox notifier guide show an external antenna mounted to the mailbox in case more range is needed or if the mailbox is metal I need to post board files for part number 5613 it's a new breakout the I spy breakout board there's not going to be a guide for that yet I think but that needs at least the the board files posted I'm going to be doing the qt update semi qt update to the quad alpha numeric backpack guide and then following that a guide for the LTR 329 and LTR 303 boards didn't make a note of it but after that is going to be fixing up the metro mini guide to add the Metro mini version two which has a stomach qt connector on it and hacktoberfest is coming up soon so we are all starting to talk about that and do some preparation and so on and so forth so we will be participating this year and as we did last year so if you're interested in helping out in reviewing and you're on the review team let us know I think we already kind of have folks in place so there's there's not like a desperate need or anything like that but obviously if you are already one of our reviewers and you're interested in helping out just let us know and we will make sure to involve you in the coordination and that's what I have this week okay I just and I just thank you caddy and I just take a look at the at the guide photo photo of a mailbox which is terrific in the notes here I'll scroll up so you can see it there you go very nice thank you caddy all right now I have some people who are text only first Paul Cuddler a new episode of The Circuit Python Show released today featuring Thea Flowers released the trailer for The Bootloader a new podcast with my co-host Todd Bott first episode debuts next Monday next is Tammy Make Things worked on a fix for the problem of CIRCUP creating extended attribute files on device on the current macOS beta I have a solution to the problem and I need to finish figuring out how to implement a unit test for it before I submit a PR looking to do some PR reviews this week and have carved out time for that another super busy week with the day job there's a light at the end of the tunnel but it might just be the headlights of an oncoming train uh oh but you'll make it through good luck next up is Tech Trick also text only last week went through all the library issues and tag applicable ones as good first issue in preparation for October Fest I thought they were more good first issues than before that's thank you very much patched the aforementioned adabot issue in generating library infrastructure issues page on circuitpython.org which helped in finding good issues for October Fest submit a PR for Blinkett to update underscore underscore version underscore underscore variable upon release added more crosslink documentation for the core started link creating a repository for hosting the build and release CIs used by the libraries to use them as a github action as suggested by Jepler this will help avoid adabot patches and associate cleanup every time we do things like repend the version of black in personal projects I ordered what I think is the last round of development PCBs for my menorah board project I also wrote all the code that runs on a linode server that helps me test the functionality of the menorah by acting as a fake time servers API and now automatically deploys when I merge pull requests all right this week fix the issue with adabot not reporting the unknown milestone issues nice to think we have only five issues about all look into fixing the bug more preparation for October Fest and the community help desk that will help prepare people for the events working on a github action that can be used to create MPY zip files and releases similar to the way libraries do it now which I think may be useful for personal projects I'll add that to the circuit python github org as well looking looking to Jepler's pre-commit my Pi suggestion look at other looking at other additions to my circuit python I beacon library testing the library CI actions and maybe add into the cookie cutter so they can be tested on a new library as it's being developed okay thank you for the extensive update tetric all right the next section is in the weeds where we can follow up maybe on some issues here or bring in some other more long form discussions they need to come out of status updates or the folks that identified it ahead of time if you have any in the weeds topics please make sure they get added while we're discussing other thing so we're not waiting around to see if anyone has topics so first up is foamy guy all right thanks Dan mainly I am interested in getting feedback from the team if we are interested in trying out the MPY size actions additions there's an open PR on the cookie cutter which has those but there is a PR on the specific library EMC 2101 which I think will make a good candidate to test it on individually because we know that the size will go up a little bit and so we can see the output from it and we can get a chance to test it on a single one before we make a decision on cookie cutter and certainly before we start trying to roll it out to the rest of the library so that's the main thing I'm interested in is if there's any feedback or objections to trying out the changes from that cookie cutter PR but specifically in the EMC 2101 library so we can see what it outputs for us okay is there any and is there any I think this is kind of all informational but are you looking for any volunteers no I can definitely do it just looking to make sure I didn't want to do it without discussing it just since it's a larger change that eventually we look towards getting into the rest of the libraries and I didn't want to just push it onto the top of that PR and not not ask about it or seek any kind of input I think it's going to be very useful I think that people will it'll be kind of instantly available like we can point in support in the terms of support it'll be really great to be able to say see this library is really big or something like that use this other library let's think about making a pair of down version and we'll have a quantitative no quantitatively how big something is which is which will be very helpful I think that's a great I think it should I think it should be a separate PR okay it's is my only thought on that it will so the reason it would be helpful to do it in the same one is because it compares the existing released version with the branch from the PR so we totally can do it as follow-up one but the numbers that it prints will be much much closer basically since the one that would be released at that point would be pretty much identical to the one that would be in that follow-up PR so the difference actually helps it to be able to output more interesting numbers okay I guess then I mean do you do you feel like that's going to work with the with the current situation with that PR? I do I do think so okay I need to I do still need to go over it this afternoon in more in more depth so you know if I find anything that leads me to believe otherwise then I would definitely check in again or hold off on it but off the top of my head I think it does because I think we can add that and get it get essentially what it will do is make the the action spot just print the comment for us okay all right then I get that's fine okay um that was my only concern really okay yep is the reason why it measures compared to the previous release just that that is an easy number to find because my assumption would be it would compare it to the the branch before it was merged in you know say you you have a release and then you have a PR that you accept that adds one K to your code and you you accept that PR and then you've got a second PR and it adds eight bytes it's gonna say oh you added a thousand and eight bytes compared to the last release if I understand correctly how that is gonna work ah I see so if there was multiple merges within the span of the one release I would say I mean definitely the intention is to be able to compare with what's there today I and to be honest with you I I I say that it compares to the released version but off the top of my head I don't recall if it is actually the release version or if it maybe like get pulls main they do oftentimes happen at the same time main gets updated when or right before a release happens so the majority of the time those two things would be in sync but I don't actually I don't recall off the top of my head which it does so I'll have to double check that and I am totally in favor of essentially making it as relevant to each PR as it can so if if it is the case that we end up with multiple commits or multiple PRs in between releases then I do think if it is currently pointed out releases we'll want to switch it to do like main branch that way it would see the difference for each one of them the first one would get in that scenario the first one assuming it was PR would get a print out that says this one is plus 1k compared to the current one and then the next one would get the print out that says this one is plus eight bytes or whatever the example was although there's also rules about it may or may not print depending on the size of the difference as well so if the difference is small enough then it won't print the second time sure yeah I was looking at the circuit python organized tools and I see that there's a place where it is finding the the NPY files that appear to be from the bundles so that makes me think that what you described is what it does whereas to do the other thing you'd have to figure out another branch you know check out some other code and NPY compile it so it's more difficult it's more work but I think it might be a better more accurate number okay I will look into changing that too yeah I think we should be able to get get pull main and then just build that and use that as our as the reference number current size yeah basically the yeah if you can do that I think that would be preferable okay yeah sounds good to me okay and there is a note from tetric about another good one to not sure how frequently he gets updated is the circuit playground library just because the size is so tight of the conditions the C.I. raises on it might help create good baseline the circuit playground library is useful we do have this very tricky thing we do with the circuit playground library where we don't include all of it on the circuit playground express we do include all of it on the circuit playground blue fruit or maybe not anyway it's divided up with in a tricky way with some symbolic links and so that's a the actual size of it doesn't tell us that much in the C.P.X. case so I'm not sure if we'd want to special to handle that peculiarity or not but it certainly would be good to look at all right and then I'll move on to micro dev who's text only this might have been discussed before thoughts on making micro Python core is sub module and circuit Python not a fork Jeff says that would mean getting down to zero core changes compared to micro Python which is at best extremely difficult and I said we have like very aspirationally discuss this with the micro Python folks but there are many things that are that differ the very very core language stuff we could maybe see doing that but we require a lot of refactoring and there's stuff that micro Python does where there's less of a boundary between implementation and ports or not implemented implementation and Python interface which for instance micro Python doesn't use the shared binding shared module split up so this has only been very aspirational well another example that is in the PI directory is we made a decision that we wanted our async to be more like circuit Python and we changed things about the parser about the byte code of MPY files compared to micro Python and to make micro Python core be a sub module we would have to kind of negotiate each one of those differences with micro Python and find a solution that satisfied both of us those might be additional pound defines but then that has a support cost to micro Python that they wouldn't necessarily want to bear so those are some of the things that come to mind the shared bindings to me is less of a thing because that is not I think the code we would be trying to share would be the stuff inside the PI directory of the source code that I'm thinking about what's the benefit X mod which is sometimes yeah that only X mod is what I'm thinking this was a micro dev says in the chat we are using expressive repose as sub module modifications so that is true but that would make circuit Python not be a fork of micro Python but only have micro Python we would fork micro Python core and then pull in things from that but it would also require micro Python to do some refactoring and I'm not sure if they're willing to do that right now it is it is an interesting possibility we we're now in a better state about keeping up with the merges that the merges are not so hard to do as they used to be so we'd still have to do this kind of merging in any case and we're the only client of micro Python right now so kind of or the you know the I don't I mean there are probably some other forks but we're by I'm the only fork that I really only fork I know of that's kind of published so there's is it open MV I think they do use this really of sub module of micro Python but they didn't have the interest in making core language changes and we did that was a very important thing right and Meridoc points out that we don't always use a fork of expressive we can void it yes that is true we have a very minimal number of changes to express if usually we're there there patches that are in progress yeah and so we've gotten in and out of what the sub which sub module we're using which makes it sometimes screws up people's local repo local clones because it's it's hard git gets confused by that sometimes so you have to clean up carefully but yeah micro dev if you'd like to work on it you can you can take a look but I'm not sure that micro pythons the micro python focuses are busy I'm not sure if we they would they would be they would have feel they have the time to work on these changes I guess one final note I would inject and and I'll step out after this is we don't necessarily have a good idea of what all of our deltas are that we're carrying and we could look systematically at those someone could I have a feeling it will have to be somebody else because you know we're busy won't be me or Dan get an idea of what those are and which ones can go upstream so like for instance in my hunger port I was talking about some work Jim Jim always doing on changing the way a type object is specified in the C code and I originally had an idea about how to save some flash and I implemented it in circuit python and Jim always taken it like 15 levels beyond my idea and that's going to go into micro python when that comes when his version comes in we'll have to undo what we did in circuit python and do this other thing and that has a cost the cost is we'll have to do that work but we had a benefit all this time because we were able to take the change my version of the change way before micro python did so identifying the deltas that we do carry and upstreaming the ones that we can is a way to make an incremental step toward maybe this will be possible someday because the way we can do that is by bringing our deltas down to zero is kind of my line of thinking I think another thing that we have that's a significant difference that they're not necessarily going to incorporate anytime soon is the long-lived storage stuff so which is a bunch of minor changes in a bunch of places mostly most the extra arguments yeah so it's worth it's worth it's always worth thinking about and it may not lead to exactly this but it leads to less to fewer changes which is a good idea even if we never get there it means that it's less work to do the merging and it's the more contributions we do to upstream either conceptually or with actual code the better the closer we are together which is good all right we can discuss this more kind of in the chat and stuff let I'll move on to the next thing that micro dev has enabled github discussion for takeover flow do you mean stack overflow like q and a a feature that isn't available in discord or forum so you're I'm not sure what you mean micro dev about questions and answers because either people do it in discord which isn't the greatest for threads or they do it in forums which most people don't participate in is that what you is that what you meant I mean I think we're a little worried about introducing yet another communications channel which we have to monitor and response to oh I see it has q and a with upvotes and answers that can be chosen that is interesting we might even consider making some a repo that is only for discussions or something like that I would I think Scott has also thought about this and we might discuss it when he returns which is in mid-December I know as people may know micro dev is shutting down their forum and using github discussions exclusively micro python you mean micro python sorry what did I say I don't remember okay I heard you say micro dev micro dev yeah micro python micro python and most people seem to like it it is a little harder to keep track of what the new discussions are and stuff rather than than in the traditional forum that's the primary objection that I've seen people but if it's more of a stack overflow kind of q and a that's interesting I mean there's also discourse and there's stack overflow or things like stack overflow which could be in github or could be somewhere else those are all interesting we already have so many communications channels that I don't know I get about 500 emails a day or something like that so oh discord also added a forum feature oh gee is okay anyway it's a good thing to think about also and I think maybe we'll talk about it further in the fall when Scott is back and what I would say okay I think I'll wrap up the meeting now the next meeting is next Monday as usual same time same station I have one question I started recording and then discovered about nine minutes into it that I have I had audio but not the screen I fixed that I don't know foamy guy or you you have done backup recordings if you have one I'll use it but otherwise I don't think it's a tragedy if we have audio only for the first nine minutes yep I have one running I'll send you a link here and a little bit after it uploads great thank you very much okay this isn't I have something to have more trouble with most people getting recording right and this had this is because I'm actually working on completely new installation of Ubuntu and I didn't have I recovered most of the settings and OBS started just fine and it had the audio but somehow it had to resync up with the window capture and I didn't see that right away okay thank you very much okay so we'll see you everybody next week thank you very much and I'll stop recording now