Mu Changelog

What's new in Mu 1.1.1

Feb 22, 2022
  • Minor clean ups in the Makefile.
  • Thank you to @microbit-mark for updating the board IDs to support version 2.2 of the device.
  • Updates to the Chinese translation by @CSharperMantle. 謝謝。
  • Updates to the Slovak translation by @bletvaska. Ďakujem.
  • The foundations of a brand new Russian translation of Mu by @grovz with contributions from @iamdbychkov. спасибо!
  • Thanks to @MinoruInachi (with feedback from @odaki) for a revised Japanese translation for Mu. ありがとうございます
  • Due to complicated dependency problems, we've updated the bundled version of Flask to 2.0.3. Thanks to @carlosperate for quickly resolving this problem.
  • Due to limitations in the way Windows MSI installers work, we're releasing this version as 1.1.1 (rather than 1.1.0).

New in Mu 1.1.0 Beta 7 (Dec 22, 2021)

  • We expect this release to be the last beta before the final 1.1 release in the new year of 2022. Season's greetings to everyone using or contributing to Mu, and here's wishing you all a flourishing and fulfilling 2022.
  • As always there have been the usual minor bug fixes and clean ups from the core team of maintainers. Thank you so much for all that you do to support the continued development of Mu.
  • Thanks to the ever-green @keith-packard for his contribution to ensure icons on the button bar continuously scale based on the window width. This looks really smooth and slick.
  • Tinsel laden @tmontes has made a number of contributions around tooling for internationalization (i18n) of Mu. These include using the
  • Babel package for generating the required translation files from our source code, and updating the Makefile (and make.py) so the process can be automated.
  • Xmassy @xbecas is a new joiner to the core team and we're very please to have him with us since he has done a huge amount of work on updating and curating the translation files needed for i18n. Thanks to his work, translators for all the other existing locales need not have to go through the string generation/update steps (he's done that for you already!).
  • Both @xbecas and @tmontes have made extensive updates to our pt-PT (Portuguese) translation. Feliz Natal e Próspero Ano Novo.
  • This was swiftly followed by a welcome contribution by @rffontenelle the red-nosed translator, who made extensive updates to the pt-BR (Brazilian Portuguese) translation. Many thanks Rafael, you continue to demonstrate why the Brazilian FLOSS community is such a vibrant place, and we hope your work will help beginner coders in Brazil take their first steps to join your community. Boas Festas!
  • Now that the upstream PyGame / PyGameZero packages have been updated and repackaged, @tmontes has ensured we use these (rather than our own custom builds) in our installers for Windows and OSX. Many thanks to our friends and collaborators in those projects (cc/ @illume and @lordmauve).
  • Once in royal @devdanzin's repos, stood some lowly bugs to fix. These include ensuring empty path handling is properly handled by get_save_path, correct highlighting of both f-strings and triple quoted strings in the editor widget, fixing a comment-toggling bug that deleted the first character of the next line under certain circumstances and more robust handling of environment variables. Wow, @devdanzin was on fire..! (...and has further work in development, thank you so much for your continued contributions.)
  • Carolling @carlosperate has put a huge effort in. He has triaged various crash reports, administered our continuous integration pipeline, and reviewed and merged much of the work described above. He also ensured our version numbering for Mu is no longer odd, and meets the guidelines set out in PEP440.
  • Good Tim Golden (@tjguk) fast typed out, a venv that's crisp and even. His outstanding work on making Python virtual environments work in some of the most inhospitable computing environments ever found is miraculous. Tim's genius is to know exactly the right intervention to make, and in this case his epic addition of -I to the Mu codebase will help ensure the user's virtual environments are properly isolated.
  • @tmonter has updated the pup packager we use to create our installer. This should fix a problem found on the new ARM based Macs. He has also made significant progress on a cross-distro Linux package which we hope will make an appearance in the not-too-distant future.
  • Finally, Nicholas (@ntoll) promises never to do another Christmas themed changelog.

New in Mu 1.1.0 Beta 6 (Oct 6, 2021)

  • There have been the usual minor bug fixes and clean ups from various regular contributors and some new ones too. Thank you for your careful and well targetted changes.
  • Carlos (@carlosperate) fixed some packaging problems relating to the iPython kernel bundled with Mu.
  • Martin (@dybber) fixed a couple of problems relating to the stopping of child processes (Flask and scripts stopped via KeyboardInterrupt in Linux).
  • The web mode checks for the availability of templates in the local directory tree before starting up. If a template directory isn't found in the expected location, then the user sees a helpful message describing the problem and what they need to do to fix it.
  • Mu's splash screen no longer always appears on top of everything else on the user's desktop. The splash screen now also logs the progress of installing the various packages needed on first install. Thanks to Carlos for these changes.
  • A new admin/settings option has been added to allow users to manually change the translation Mu uses for its interface. Updating this setting requires a restart of Mu. Zander (@ZanderBrown) contributed the icon/glyph to indicate the relevant tab is for translation related settings (not entirely obvious if Mu's UI is using a language you don't understand and you're looking for the setting that relates to translations). The icon makes this clear.
  • On some desktop windowing systems there is a bug that means windows re-open at a position higher up the screen, and so may appear off the top of the screen. We've ensured this never happens with Mu. If Mu starts with any part of the window off the screen, the window is moved to be within the dimensions of the screen. This was a weird one to track down and fix.
  • Many thanks to Ethan Spoelstra (@espoelstra) who contributed a change so Crostini on ChromeOS is used to return the correct CIRCUITPY path if it exists.
  • Huge thanks to Keith Packard (@keith-packard) for several contributions to this release of Mu. Keith refactored the way in which Mu handles pasting in the REPL window so it works correctly and more broadly across operating systems.
  • Keith also fixed some font related issues in the REPL.
  • Keith was on fire with a couple more contributions relating to SVG icons in the buttons in Mu. We're very grateful to Ben Williams (@Rybec) for putting in the work to make our button icons SVG files. Keith made the code changes to implement this.
  • Thanks to Miro Hrončok (@hroncok) for pointing out a change in Python 10 which would break some of our UI calls into PyQt, and who provided a patch to fix things.
  • Some minor clarifications in our developer documentation (https://mu.rtfd.io).

New in Mu 1.1.0 Beta 5 (Oct 6, 2021)

  • Several of us made minor updates and fixes (such as ensuring various packages had explicit dependency versions listed, updating versions for Mu's own dependencies and so on).
  • Right clicking on highlighted text in the editor, with the REPL active, now has an additional option added to the context menu: to correctly paste the text from the editor into the REPL. Thanks to Professor Chris Rogers of Tufts University for suggesting this feature.
  • The multi-talented Dan Halbert (@dhalbert) of Adafruit very kindly fixed a bug in the Adafruit board handling when on run on new Apple M1 hardware. Thank you Dan for your valuable contribution.
  • A huge amount of work by Tim (@tjguk) and Carlos (@carlosperate) has gone into analysing the crash reports from recent beta releases of Mu. This has resulted in significant effort to address many of the bugs encountered, many of which related to edge cases encountered by the new virtual environment feature. Tim and Carlos have created many fixes and checks to ensure these bugs are either completely fixed or are, at least, mitigated in more helpful ways. This has been a challenging and "fiddly" bit of work, so kudos and thanks, as always, to both Tim and Carlos for their continued efforts.
  • Carlos has also updated the version of MicroPython used in the BBC micro:bit mode to the latest 2.0.0-beta.5 version.
  • In addition, Carlos has ensured that the micro:bit mode flashes files onto the micro:bit using the correctly memory aligned hex string.
  • Github user @ajs256 has ensured the crash reporter doesn't kick in when a KeyboardInterrupt is triggered in Mu (CTRL-C).
  • Sometimes in Mu for Linux, the expected .py file extension wasn't added to new files. This depended on the user's graphical shell. Mu now checks the output from the shell and, if requires, will add .py itself.
  • Various fixes to Mu's logging make it more robust, clear and useful.
  • Tiago (@tmontes) fixed a late breaking bug in packaging Mu for OSX. All fixed in a matter of hours. Amazing work!

New in Mu 1.1.0 Beta 4 (Apr 19, 2021)

  • Carlos made many changes to clean up the specification for required modules used by the installer. This will make supporting and tracking Mu's dependencies MUCH easier. Thank you Carlos!
  • Huge thanks to Dan Halbert of Adafruit who contributed a significant amount of refactoring to the CircuitPython mode. As a result Mu now uses the adafruit-board-toolkit module for device identification, among many other helpful changes described in Dan's pull request. Thank you Dan..!
  • Carlos was on fire... he also fixed a bug in the file-copy dialog when the context menu was opened with an empty list of files.
  • Carlos (again), fixed some outstanding documentation issues for supporting Raspbian Buster (and newer). These are now at https://mu.rtfd.io/.
  • Carlos (again, again) tidied up various aspects of the Makefile so there is only a single source of truth for running various utilities and commands.
  • Logging was another focus for this release. Now that we have a few weeks worth of crash reports we've been able to look at the parts of the application that cause most grief and add extra-logging in various locations. Tim put in a great effort to make sure the "first run" and other virtual environment based aspects of Mu now have clearer and more useful logging and throw more useful exceptions, closer to the source of the problem, for the resulting crash report. Carlos ensured the IPython kernel installation was properly logged.
  • We ensured various key packages were pinned to particular versions to maximise compatibility with older versions of Python still found in schools.

New in Mu 1.1.0 Beta 3 (Mar 29, 2021)

  • During beta phase, we're moving to a fortnightly release cadence. Expect beta 4 on around the 12th April.
  • The final version of the Mu splash screen was delivered. Huge thanks to the extraordinarily talented Steve Hawkes (@hawkz) of The Developer Society for his generous artistic support, patience and humorous approach.
  • Thanks to a recent update in PyGame Zero, we're back to using the official package from PyPI, rather than our patched fork, in the installer.
  • Both Tim and Carlos have contributed updates, fixes and tests to address a bug affecting Windows users who may have a space in the file path upon which Mu is found. This was a difficult bug to reproduce but Tim did a lot of digging to isolate the cause with as much confidence as is possible when it comes to such things. Carlos did a bunch of thankless and fiddly test related work so testing with spaces in the path is part of our test suite. Work on this is ongoing so expect further improvements in upcoming releases. As always, many thanks for these efforts.
  • Tim addressed a wheel/sdist related problem that was causing odd side effects with regard to dependancies.
  • A strange bug, where it was not possible to install third-party packages on first run of Mu, opened up a deep rabbit hole of investigation. In the end Tim was able to fix this AND address the source of a warning message from Qt when Mu was starting for the first time.
  • The splash screen code was rewritten in such a way that objects relating to the splash screen will always be garbage-collected by Python and destroyed by Qt5. Previously, they existed for the full duration of the application, not really causing any problems, but "in limbo" nonetheless.
  • The crash reporting tool has had a minor update so the user is reminded to attach their log file to the bug report, along with an indication of where to find the log file.

New in Mu 1.1.0 Beta 2 (Mar 16, 2021)

  • This is the first public beta release (beta 1 was created for testing by the core development team).
  • Many minor bug fixes to the existing new features found in beta 1 (see below).
  • Many thanks to Martin Dybdal for his work on improving the admin panel.
  • Carlos made significant changes so Mu can be packaged with very recent versions of Python. Carlos also made various changes relating to the status of Python packages contained within the official installer.
  • Many thanks to Dan Pope for assistance with an upgraded version of PyGameZero (which uses the latest version of PyGame - kudos to René and the other developers of PyGame for the recent improvements).
  • Various fixes to the UI so that panes are easier to resize and the themes are correctly applied to the REPL (thanks again to Martin for these fixes).
  • Carlos also contributed fixes relating to the micro:bit mode (compatibility with versions 1 and 2).
  • Tim has made herculean efforts to ensure the creation and checking of Mu's virtual environment is robust and easy to maintain.
  • A new crash reporting feature has been added. If Mu breaks the user will be redirected to the endpoint codewith.mu/crash with details of the crash and an option to create a bug report. This ensures Mu crashes are handled more gracefully, and the user is able to see the error that caused the crash.
  • A new animated splash screen has been added so the initial creation of Mu's virtual environment happens in such a way that the user can see progress is being made, and updates are logged on the splash screen for the user. If Mu encounters a problem at this early stage, the splash screen recovers and the new crash reporting feature kicks in. The current animation was created by Steve Hawkes (thank you) with a much more polished version promised very soon..!
  • Behind the scenes, Tiago has continued to make outstanding work on the pup tool we use to create the installers for Windows 64/32 bit and MacOS X. This beta release will be the first to use installers created with pup.
  • Known bug - on first ever start of Mu, if in Python3 mode the package manager will not work. Re-starting Mu fixes this (i.e. from second and subsequent starts). We're tracking this problem via this issue.

New in Mu 1.0.3 (Jan 27, 2020)

  • Bugfix:
  • Updated to the latest version of Qt to fix syntax highlighting issues in OSX.
  • Ensure CWD is set to the directory containing the script to be run in Python3 mode.
  • Updated website with instructions in light of OSX changes.

New in Mu 1.1.0 Alpha 2 (Jul 5, 2019)

  • This is the second alpha release of the next 1.1 version of Mu. It includes several new features or improvements:
  • A new Web mode.
  • A Slovak translation.
  • The Adafruit mode has been renamed to CircuitPython mode.
  • Lots of tidy-ups, fixes and squashed bugs.
  • The full list of the changes can be found here: https://mu.readthedocs.io/en/latest/changes.html#alpha-2
  • Please see the website here: https://codewith.mu/ Developer documentation is here: https://mu.readthedocs.io/en/latest/index.html The project's blog can be found here: https://madewith.mu/

New in Mu 1.1.0 Alpha 1 (Mar 25, 2019)

  • Third party package management.
  • Code tidying with Black
  • A new ESP8266/ESP32 mode.

New in Mu 1.0.2 (Jan 15, 2019)

  • Updated OSX to macOS, as per Apple’s usage of the terms. Thanks Craig Steele.
  • Updates and improvements to the Chinese translation. Thank John Guan.
  • Improved locale detection on macOS. Many thanks to Tiago Montes.
  • Cosmetic stripping of trailing spaces on save. Thanks to Tim Golden.
  • Update PyQt version so pip installed Mu works with Python 3.5. Thanks to Carlos Pereira Atencio.
  • Fix incorrect setting of dataTerminalReady flag. Thanks to GitHub user @wu6692776.
  • Spanish language improvements and fixes by Juan Biondi, @yeyeto2788 and Carlos Pereira Atencio.
  • Improvements and fixes to the German translation by Eberhard Fahle.
  • Fix encoding bug on Windows which caused crashes and lost files. Many thanks to Tim Golden for this work.
  • Keyboard focus loss when closing REPL is now fixed. Thanks again Tim Golden.
  • More devices for Adafruit mode along with a capability to work with future devices which have the Adafruit vendor ID. Thanks to Limor Friend for this contribution.
  • Fix a bug introduced in 1.0.1 where output from a child Python process was being truncated.
  • Fix an off-by-one error when reading bytes from UART on MicroPython devices.
  • Ensure zoom is consistent and remembered between panes and sessions.
  • Ensure mu_code and/or current directory of current script are on Python path in Mu installed from the installer on Windows. Thanks to Tim Golden and Tim McCurrach for helping to test the fix.
  • Added Argon, Boron and Xenon boards to Adafruit mode since they’re also supported by Adafruit’s CircuitPython.
  • The directory used to start a load/save dialog is either what the user last selected, the current directory of the current file or the mode’s working directory (in order of precedence). This is reset when the mode is changed.
  • Various minor typo and bug fixes.

New in Mu 1.0.1 (Oct 1, 2018)

  • This is a bug-fix release. The only other enhancements to Mu have been updates to MicroPython on the micro:bit and more translations.

New in Mu 1.0.0 RC1 (Jul 17, 2018)

  • Various UI style clean ups to make sure the look of Mu is more consistent between platforms. Thanks to Zander Brown for this valuable work.
  • Added French translation of the user interface. Thanks to Gerald Quintana.
  • Added Japanese translation of the user interface. Thanks to @MinoruInachi.
  • Added Spanish translation of the user interface. Thanks to Carlos Pereira Atencio with help from Oier Echaniz.
  • Added Portuguese translation of the user interface. Thanks to Tiago Montes.
  • Fixed various edge cases relating to the new-style flashing of micro:bits.
  • Fixed off-by-one error in the visual debugger highlighting of code (caused by Windows newlines not correctly handled).
  • Fixed shadow module related problem relating to Adafruit mode. It’s now possible to save “code.py” files onto boards.
  • Updated to latest version of uflash and MicroPython 1.0.0-rc.1 for micro:bit.
  • Various minor bugs and niggles have been fixed

New in Mu 1.0.0 Beta 17 (Jul 10, 2018)

  • Update to the latest version of uflash with the latest version of MicroPython for the BBC micro:bit.
  • Change flashing the BBC micro:bit to become more efficient (based on the copying of files to the boards small “fake” filesystem, rather than re-flashing the whole device in one go).
  • Ensure user agrees to GPL3 license when installing on OSX.
  • Fix Windows “make” file to correctly report errors thanks to Tim Golden.
  • The debugger in Python mode now correctly handles user-generated exceptions.
  • The debugger in Python mode updates the stack when no breakpoints are set.
  • Major update of the OSX based automated build system.
  • Modal dialog boxes should behave better on GTK based desktops thanks to Zander Brown.
  • Right click to access context menu in file panes in micro:bit mode so local files can be opened in Mu.
  • Fix bug where REPL, Files and Plotter buttons got into a bad state on mode change.
  • Update to use PyQt 5.11.
  • On save, check for shadow modules (i.e. user’s are not allowed to save code whose filename would override an existing module name).
  • Automatic comment toggling via Ctrl-K shortcut.
  • A simple find and replace diaolog is now available via the Ctrl-F shortcut.
  • Various minor bugs and niggles have been squashed.

New in Mu 1.0.0 Beta 16 (Jun 20, 2018)

  • Updated flashing in micro:bit mode so it is more robust and doesn’t block on Windows. Thank you to Carlos Pereira Atencio for issue #350 and the polite reminder.
  • Updated the mu-debug runner so if the required filename for the target isn’t passed into the command, a helpful message is displayed to the user.
  • Developer documentation updates.
  • Updated to the latest version of uflash, which contains the latest stable release of MicroPython for the micro:bit. Many thanks to Damien George for all his continuing hard work on MicroPython for the micro:bit.
  • Inclusion of tkinter, turtle, gpiozero, guizero, pigpio, pillow and requests libraries as built-in modules.
  • Update to latest version of Pygame Zero.
  • Fix plotter axis label bug which wouldn’t display numbers if value was a float.
  • Separate session and settings into two different files. Session includes user defined changes to configuration whereas settings contains sys-admin-y configuration.
  • Update the CSS for the three themes so they display consistently on all supported platforms. Thanks to Zander Brown for his efforts on this.
  • Move the mode selection to the “Mode” button in the top left of the window.
  • Support for different encodings and default to UTF-8 where possible. Many thanks to Tim Golden for all the hard work on this rather involved fix.
  • Consistent end of line support on all platforms. Once again, many thanks to Tim Golden for his work on this difficult problem.
  • Use mu-editor instead of mu to launch the editor from the command line.
  • More sanity when dealing with cross platform paths and ensure filetypes are treated in a case insensitive manner.
  • Add support for minification of Python scripts to be flashed onto a micro:bit thanks to Zander Brown’s nudatus module.
  • Clean up logging about device discovery (it’s much less verbose).
  • Drag and drop files onto Mu to open them. Thanks to Zander Brown for this really useful feature.
  • The old logs dialog is now an admin dialog which allows users to inspect the logs, but also make various user defined configuration changes to Mu.
  • Plotter now works in Python 3 mode.
  • Fix problem in OSX with the mount command when detecting Circuit Python boards. Thanks to Frank Morton for finding and fixing this.
  • Add data flood avoidance to the plotter.
  • OSX automated packaging. Thanks to Russell Keith-Magee and the team at BeeWare for their invaluable help with this problematic task.
  • Refactoring and bug fixing of the visual debugger’s user interface. Thank you to Martin O’Hanlon and Carlos Pereira Atencio for their invaluable bug reports and testing.
  • Various fixes to the way the UI and themes are displayed (crisper icons on HiDPI displays and various other fixes). Thanks to Steve Stagg for putting lipstick on the pig. ;-)
  • A huge number of minor bug fixes, UI clean-ups and simplifications.

New in Mu 0.9.13 (Oct 26, 2017)

  • Add ability to change default Python directory in the settings file. Thanks to Zander Brown for the contribution.

New in Mu 0.9.12 (Oct 26, 2017)

  • Change the default Python directory from ~/python to ~/mu_code.
  • Add instructions for installing PyQt5 and QScintilla on Mac OS.
  • Update to latest version of uFlash.
  • Add highlighting of search matches.
  • Check if the script produced is > 8k.
  • Use a settings file local to the Mu executable if available.
  • Fix bug with highlighting code errors in Windows.
  • Check to overwrite an existing file on the micro:bit FS.
  • Start changelog