It's time for the monthly update again, and I'm excited to bring you up to speed. Thank you for your incredible support, which makes all of this possible! This month was a mix of visible features, important bug fixes, and a lot of "behind-the-scenes" work that is crucial for the stability and future of Mainsail.
Wrapping up the Neopixel Refactoring & Bug Fixes
As announced in the last post, the fix for the Neopixel reactivity bug evolved into a complete refactoring of the module. The good news: After testing by a few users, it looks like the bug has been fixed! The Pull Request is now waiting for the final review by the crew.
For those who want to follow the progress, you can find it here: PR #2218
Additionally, I was able to fix two smaller bugs: the incorrect display of directory sizes for new folders and an issue with "Scarf Seams" in the G-Code Viewer, for which an external library was updated.
Behind-the-Scenes Improvements: Infrastructure & Tooling
I spent a few days improving our internal tools and processes. This work isn't always directly visible, but it's extremely important for the quality and efficiency of our development:
MainsailOS Build & Release Workflows: I fixed an issue in the MainsailOS release process that occurred when merging develop into the master branch. I also added a new feature to the build workflow that allows us to create special test images not intended for release. This helps us to test new features or integrations, like Klipperscreen, and allows us to identify potential problems before they can cause failures in an official release.
Virtual Klipper Printer: Our virtual-klipper-printer Docker image is an important tool for developing Mainsail, as it allows us to work on it without needing a real printer running. Unfortunately, the image could no longer be built recently because OS and Klipper updates broke something. So far, I haven't been able to get it running again. But there's good news: Just as I'm writing this, a contributor has reached out with a promising solution! I hope it will be working again soon, as this would make working on Mainsail during GPN, for example, significantly easier for me. (Issue #51)
Furthermore, a community-submitted Pull Request for extended date formats was reviewed and successfully merged. A huge thank you to everyone who contributes!
Progress on Multi-Color Support
I was finally able to dedicate time to the extensive Pull Requests for multi-color support! I started with the AFC-Panel from the BoxTurtle team.
During the review, I noticed some issues with reactivity and visual inconsistencies. To ensure a clean integration, I decided to rewrite the PR from scratch. This work is nearly complete, and I am in close contact with the BoxTurtle/AFC team, who are already testing the new version and providing valuable ideas to fully support their Klipper module.
The next/last steps here are:
Print Start Dialog: Implementing the mapping of filament lanes to tools in the print start dialog.
Status Panel: Displaying filament changes in the status panel instead of layers, when you print a multi-color print.
As soon as this is finished (which should be in the next few days), I will begin reviewing the HappyHare PR.
Personal News: GPN23 & Vacation
Next week, I'll be at GPN23 in Karlsruhe, Germany!
I'll most likely be walking around in my Mainsail T-shirt. So if you're there, please don't hesitate to say hello! Whether you have a question, an idea, or just want to grab a Tschunk (a famous GPN beverage) together – I would be thrilled to meet some of you in person.
Right after GPN, I will be on vacation for two weeks. This means there will be a bit less development activity next month. I just wanted to give you a transparent heads-up.
Once again, thank you so much for your support. It is the driving force behind this project!
Best regards,
Stefan Dej / meteyou