Thanks to a vacation and a surgery, this was one of the longest Release Candidate phases so far, spanning from August 4th until now. Thus I’m extra happy to finally present you with 1.7.0 today! 🥳
Like every single release (and release candidate) of OctoPrint ever since 2016 this release was made possible only through your continued support of my work 💕
The full changelog contains a long list of new features, improvements and bug fixes, but here are some of the highlights:
- Added support for the
EXTENDED_M20
firmware capability. If detected, OctoPrint will now sendM20 L
instead of plainM20
requests to firmwares, to allow immediate fetch of long names. Quoted long names, as apparently sent by some firmwares even though there was never a mention of that during the initial feature discussions, are also supported now. - Thanks to @jneilliii there’s a new bundled plugin “Event Manager” for managing event subscriptions via the UI.
- Made the system info bundle more visible. Many users are still copy/pasting the textual system info dump and forget to share the bundle. So the request was rephrased to target the bundle and the textual info dump was hidden behind a “More” area. Also, the bundle viewer has been linked.
- @cp2004 did some magic and improved the animation performance across all modals in the UI.
- The Software Update Plugin now sports an update log with a link to the associated release notes. You will now be able to see the update events of the past 30d right from within the Software Update settings in case you need to debug something. The update log will also be shared into the system info bundle.
- The Software Update Plugin will also now prompt for an update of OctoPrint during first time setup if there’s a new version available, before any other settings.
- If still running under Python 2, OctoPrint will now show a notification linking to update instructions to Python 3 on page reload/connection to the backend.
- Added tracking of user agent string via new tracking event
webui_load
. This will allow making more informed development decisions with regards to frontend development. - OctoPrint’s console output will now be colored based on log severity.
- Various fixes like fixing a non deterministic sorting behaviour and working around an arc rendering bug in Chrome, fixing some inconsistencies, typos and wordings and so on.
- … and even more.
Heads-ups
Please read the following carefully, it might impact you and how you use OctoPrint! Also see the Further Information and Links below for more information, where to find help and how to roll back.
Heads-up for anyone still on OctoPi 0.15.0 or 0.15.1OctoPrint 1.7.0 is the final release that will allow updating through the built in Software Update plugin. The Python environment on OctoPi 0.15.* has now become so ancient that the overhead of keeping on supporting it is no longer sustainable, and the likelihood of spontaneous breakage has increased significantly.
If you are one of the ~5% of users still on OctoPi 0.15, create a backup of your OctoPrint data, flash the latest OctoPrint 0.18 to ideally a fresh SD card (they age too…) and restore from backup. That should get you up and running under a current OctoPi release in no time and additionally migrate you to Python 3.
Heads-up for anyone still on Python 2I’ll do my very best to keep OctoPrint functional under Python 2 until the release of OctoPrint 2.0.0, however Python 2.7 has been EOL now for almost two years, a lot of third party libraries are releasing updates for Python 3 only at this point, and many plugin authors for OctoPrint do so as well.
It is time to upgrade, and so OctoPrint 1.7.0 will now show you a pop-up about that fact when you open the UI. You do not have to act, but it is strongly recommended you do if you don’t want to be left behind, and the pop-up will also tell you how to update:
![](upload://z9SXRMvymBkpySoQnYmJAN4kXxs.png)
Please do, the less Python 2 users are out there I still have to support, the more time I have for moving towards 2.0.
Heads-up for plugin authors: `octoprint.util.get_free_bytes` has been removedThe utility function octoprint.util.get_free_bytes
, now deprecated since version 1.2.5 in favor of psutil.disk_usage
, has finally been removed. If for any reason you’ve been using this in your third party plugin, ignoring the deprecation warning OctoPrint has been printing out to the log since 2015, now is the time to finally fix things.
Thanks
Thanks to everyone who contributed to this release and provided full, analyzable bug reports, suggestions and feedback!
A special Thank you! to these fine people for their PRs:
And last but not least, another shoutout to everyone who reported back on the release candidates this time: @AndroidCloned, @Andy-ABTec, @b-morgan, @ChrisHeerschap, @cmock, @cp2004, @donb55, @gbickel1, @jneilliii, @JohnOCFII, @kazibole, @loskexos, @MangaValk, @mild-lemon, @mod38, @Onejk1, @Phydam, @Reperiel, @sticilface, @SwgDad99, @Taomyn and @The-EG.
Insights
If you are interested in some numbers, here's some data extracted from the anonymous usage tracking for the RCs that went before 1.7.0's stable release:
- 1.7.0rc2 (2021-08-11): 1366 instances, 63900h or 7.3 years of accumulative printing time
- 1.7.0rc3 (2021-09-13): 1330 instances, 45200h or 5.2 years of accumulative printing time
Overall there were 1976 instances that participated in the RC testing phase and which collectively completed 112267h or 12.8 years of print jobs.
Further Information
It may take up to 24h for your update notification to pop up, so don't be alarmed if it doesn't show up immediately after reading this. You can force the update however via Settings > Software Update > Advanced options > Force check for update.
If you get an error about "no suitable distribution" during update, please read this.
If you have any problems with your OctoPrint installation, please seek support on the community forum.
Links
This is a companion discussion topic for the original entry at https://octoprint.org/blog/2021/10/11/new-release-1.7.0/