Welcome to 2024! Today I’m happy to present to you the first release candidate of the upcoming 1.10.0 release.

As always with a new minor version that brings not only bug and security fixes but also improvements and whole new features, the changelog has grown quite large. I’ve done my best to make it a bit more readable by introducing some sub sections.

But let’s still take a look at some of the highlights, shall we?

  • OctoPrint now has achievements! The new bundled Achievements Plugin will now internally record some instance stats and monitor some events and based on that give out various achievements. This version contains 36 achievements, 22 of which are hidden and for you to be discovered. Additionally, the instance stats are also being recorded per year to make it possible in the future to give you some yearly stats overview of your OctoPrint and printing use. Be sure to check out the screenshots below!
  • We got some huge performance improvements thanks to refactoring of the internal settings data structure and making the Tornado WSGI interface run multi-threaded. What this means for you is that OctoPrint’s web interface should now load significantly faster!
  • A new firmware error dialog has been added that gets displayed when the printer reports an unrecoverable error, containing the error message, what happened due to that error (print cancellation, disconnect), if available a link to an FAQ entry, the last lines of communication and a big reminder that printer errors are printer errors and not OctoPrint’s fault. For an example, take a look here The dialog will be automatically opened on connected clients, however it can also be accessed later by clicking on the new error icon added to the printer state panel. This will hopefully help all of you in the future to better understand what happened when your printer suddenly stopped printing, and where to start looking for a solution.
  • The system info bundle now contains a new section with information supplied by your printer’s response to M115, enabling people helping you with issues you seek help with to better understand your printer’s capabilities and firmware version, allowing them to better help you. Additionally, the abridged version of the bundle can no longer be mistakenly provided instead of the full bundle zip - it has been removed from the system info bundle page unless a debugging parameter is supplied.
  • The temperature graph has gotten some love: The x axis is now always scaled to the last 30 minutes (or whatever cut-off interval you have configured), so things should no longer jump around right after connecting, target temperatures lines are now dashed to allow them to be better distinguished from the actual temperatures by more than just color (thank you @mintsoft!), and two new markers have been added to the graph to indicate when the printer got connected and disconnected again. See all of that in action in this screenshot.
  • OctoPrint now supports Python 3.12.
  • A new reauthentication dialog will now pop up when you haven’t entered your password in the past five minutes and are attempting to perform a potentially dangerous action (e.g. installing a plugin, adding a new user, etc) - see here how that looks. This also mitigates a moderate security issue responsibly disclosed by Timothy “TK” Ruppert and further tracked in CVE-2024-23637.
  • Several bugs have been fixed, including hardening the temperature offset code against empty temperature commands inside GCODE files, some regressions, an error when attempting to set a custom logging level under certain circumstances, folder sorting by date of last print, and more.
  • … and even more.

You can find the full changelog and release notes as usual on GitHub.

Special thanks to everyone who contributed to this release candidate and provided full, analyzable bug reports, you help making the next release as stable as possible!

A special Thank You! to these 21 fine people for their PRs, and an extra warm welcome to our 13 first-time contributors! 🎉

As the past RCs have shown me that a lot of people appear to be unaware of this: Please do not install this RC if you expect a fully stable version. It is not a stable release, it is a release candidate: severe bugs may occur, and they might be bad enough that they make a manual downgrade to an earlier version necessary - maybe even from the command line.

You should feel comfortable with and capable of possibly having to do this before installing an RC.

If you want to and can help test this release candidate, you can find information on how to switch to the "Maintenance RCs" release channel in this guide if not already done (also linked below).

Please provide feedback on this RC. For general feedback you can use this ticket on the tracker. The information that everything works fine for you is also valuable feedback 😄. For bug reports please follow How to file a bug report - I need logs and reproduction steps to fix issues, not just the information that something doesn't work so make sure to fill out all fields of the issue template.

While testing the release candidate, please take a closer look at these things:

  • Proper behaviour when using the included web interface as well as any third party clients at your disposal.

  • User and group management functioning as expected.

  • Plugin installation functioning as expected.

  • Application key management functioning as expected. Authentication workflow with third party clients at your disposal (e.g. slicers) works as it should.

Thanks!

Depending on the feedback regarding this version I'll look into fixing any observed regressions and bugs and pushing out a follow-up version as soon as possible and necessary.

Images

OctoPrint's new achievements list, giving an overview of the available (and not hidden) achievements and their unlock status.
An achievement notification, in this case for the "Mass Production" achievement.
OctoPrint's new instance stats overview, showing information on when stats collection started and with what version, how many versions have been seen, number of server starts, print count, total print duration and longest print recorded so far.
An example of the new firmware error dialog.
The temperature graph with the new markers, dashed target temperature lines and the new x axis scaling.
The reauthentication dialog, in this case triggered by an attempt to install a plugin, asking to re-enter the password.

Discuss!