It might still a bit early to hand out Christmas presents 🎄, but this year deserves some special treatment, doesn’t it? And thus - after over four months of development and almost another month of RC testing - I hereby present you the next stable release of OctoPrint, version 1.5.0 🥳
“Wait, 1.5.0 already?” you might say, “You just released 1.4.0 earlier this year!” That’s correct - OctoPrint’s versioning has slightly changed and now fully adheres to the ideas behind semantic versioning, as-in, the so called PATCH number (the 0 in 1.5.0) will now only increase for releases containing bugfixes only. Instead, for the usual maintenance releases that contain improvements, fixes and the one or other new feature, the MINOR number (the 5 in 1.5.0) will increase from now on. Finally, backwards incompatible changes will increase the MAJOR number (the 1 in 1.5.0) - in OctoPrint’s specific case that will mean dropping Python 2 support in the not so distant future.
So, from 1.4.2 to 1.5.0 this makes a MINOR number increase and thus you can expect more than just bug fixes in this one :) And like every single release (and release candidate) of OctoPrint ever since early 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:
- Access Control is now mandatory and no longer can be disabled. If you so far had it disabled, upon upgrading to 1.5.0, OctoPrint will prompt you to create a username and password for the (first) admin user. This step was sadly necessary as too many people still will happily expose their completely unsecured OctoPrint instance on the public internet, causing additional support overhead from both attacked users and security researchers. See this guide for a way to have OctoPrint log you in automatically when connecting from an internal IP.
- A new recovery page is available under
/recovery/
that gives access to configured system commands, backups, basic printer controls and the new system information (see below), even if the main UI is no longer functional. This will hopefully help in case of a third party plugin or a misconfiguration messing with the core UI so much it is no longer usable. Take a look at this screenshot! - A new system information screen is available from footer, settings dialog and recovery page. It provides information on the system OctoPrint is running on that’s invaluable for support and issue analysis and will soon be asked for in support requests and bug reports. A one-click copy-paste link is provided. Take a look at this screenshot!
- OctoPrint will now detect when there are too many resend requests being generated by the printer (default: more than 10% of transmitted lines getting a resend request as response) and display a prominent warning to help identify communication issues causing print failures. This detection will only get armed after 100 lines have been sent to the printer, to rule out issues during initial connection handshaking.
- The bundled Software Update plugin now supports release channels for third party plugins, individually disabling notifications per update check and also update information overlays served from plugins.octoprint.org that will make future maintainer changes of plugins less cumbersome for all involved. Plugin developers probably want to take a look at the docs to learn how to make use of release channels. Take a look at this screenshot!
- A new event
plugin_backup_backup_created
will be triggered on backup creation. Allows third party plugins to perform certain actions on backup creation, e.g. saving them to a cloud provider like GDrive as displayed by the Google Drive Backup plugin. -
A terminal filter configuration for the busy protocol now comes preconfigured. If you
have modified your stock terminal filters, you’ll have to add this manually, using
name “Suppress processing responses” and regex
Recv: (echo:\s*)?busy:\s*processing
. -
Support has been added for reading the long filename from
M20
if included or adding it from a plugin (e.g. one that utilizes a storm ofM33
to fetch all long names, proof of concept here). Please note: That’s the only wayM33
will ever be supported in OctoPrint, as it is utterly the wrong way to go about fetching long names for a list of files of unknown size, so stop asking about it now please ;) - The whole code base now uses black,
prettier, isort,
pre-commit and a bunch of
custom pre-commit hooks to ensure consistent
formatting and enforcement thereof. For anyone doing development, a file containing
revs to ignore by
git blame
is included so this should hopefully not nuke the usefulness of that as long as a current git version is used, set it up viagit config blame.ignoreRevsFile .git-blame-ignore-revs
. -
New plugin timings logging feature. If enabled (via Settings > Server > Debug options)
this will write two new files to the logging dir,
plugintimings.log
andplugintimings.csv
, which contain timing information for each and every hook or implementation call on plugins registered with OctoPrint. This should be helpful to debug any kind of performance issues caused by third party plugins. It should also be a valuable tool to debug performance issues with bundled plugins. - The timelapse list now has a nifty little web player built in for MP4 timelapses, courtesy of @jneilliii. MP4 is now also the default format for new timelapses. Take a look at this screenshot!
- Several dependencies have been upgraded, most prominently Font Awesome, which is now bundled in version 5. A compatibility layer should ensure that plugins still relying on 4.x icon and class names will continue to work as expected.
-
A big number of bug fixes, among which is a fix for cancelling/pausing taking too long,
a fix in the plugin manager to remove timeout issues when installing huge plugins,
a fix for
M876
not force sending while printing, a fix for installation oftar.gz
plugins and plugin installation under Windows, several performance improvements and much much 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.
Access Control is now mandatory and no longer can be disabledIf you so far had Access Control disabled, upon upgrading to 1.5.0, OctoPrint will prompt you to create a user name and password for the (first) admin user. This step was sadly necessary as too many people still will happily expose their completely unsecured OctoPrint instance on the public internet, causing additional support overhead from both attacked users and security researchers. See this guide for a way to have OctoPrint log you in automatically when connecting from an internal IP.
Known plugin incompatibilitiesThe following plugins are confirmed to have issues with OctoPrint 1.5.0, as revealed during the RC phase. Their authors have been informed of this but no fixed version was available at the time of release:
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: @AndKe, @b-morgan, @benlye, @BillyBlaze, @ChrisHeerschap, @cp2004, @CRCinAU, @Crowlord, @Guilouz, @jneilliii, @JohnOCFII, @kmanley57, @Lantoit, @ManuelMcLure, @mild-lemon, @oliof, @Pavulon87, @Prutsium, @radfordwill, @schnello, @varazir and @zeroflow.
Insights
If you are interested in some numbers, here's some data extracted from the anonymous usage tracking for the 3 RCs that went before 1.5.0's stable release:
- 1.5.0rc1 (2020-11-10): 894 instances, 10980h or 1.3 years of accumulative printing time
- 1.5.0rc2 (2020-11-17): 263 instances, 1575h or 2.2 months of accumulative printing time
- 1.5.0rc3 (2020-11-18): 830 instances, 16800h or 1.9 years of accumulative printing time
Overall there were 1334 instances that participated in the RC testing phase and which collectively completed 29391h or 3.4 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/2020/11/30/new-release-1.5.0/