Assets 2

Heads-up for plugin authors regarding the sarge dependency

OctoPrint has updated its sarge dependency. The new version 0.1.5 has a small breaking change - the async keyword was renamed to async_ for compatibility reasons with Python 3.7. This might also affect your plugin if you happen to use sarge somewhere therein. OctoPrint has a workaround for this in place so your plugin will continue to function for now. However, you should look into updating it to use async_ instead of async if running against OctoPrint 1.3.10+.

See also here for the sarge changelog.

Improvements

  • #1504 - Added detection of EMERGENCY_PARSER firmware capability and if it's present add M108 to the cancel procedure, to cancel blocking heatups.
  • #2674 - Improved error handling when the file OctoPrint is currently printing from becomes unreadable.
  • #2698 - Made favicon color match custom theme color.
  • #2717 - Various speed ups of the GCODE viewer.
  • #2723 - Always allow the file analysis to run, even if the slicer does provide analysis data. Allows plugins implementing the analysis hook to override behaviour in all cases.
  • #2729 - Allow additional video formats to appear in the timelapse tab.
  • #2730 & #2739 & #2742 - Improved GCODE analysis speed.
  • #2740 & #2859 - Make the connection panel reflect the current connection parameters.
  • #2769 - Cura Plugin: Improve error handling a profile import fails.
  • #2802 - Updated the temperature filters to ignore more sent and received lines belonging to temperature requests/responses that so far weren't covered.
  • #2806 - Refactored some unit tests.
  • #2827 - Spelling fixes in the documentation.
  • #2839 - Recognize position reports that include a space after the axis, as e.g. observed in the firmware of AlfaWise U20
  • #2854 - Auto detect Teacup firmware.
  • #2865 - Added speed parameter to extrude command on the /api/printer/tool API endpoint which allows to set the feedrate to use for the extrude per request.
  • Improve SD print detection
  • Added the Anonymous Usage Tracking Plugin. Tracking will only take place if the plugin is enabled and you’ve decided to opt-in during initial setup (or enabled it manually afterwards, through the corresponding switch in the settings). The tracking data will give insight into how OctoPrint is used, which versions are running and on what kind of hardware OctoPrint gets installed. You can learn about what will get tracked (if you opt-in) on tracking.octoprint.org. Please consider helping development by participating in the anonymous usage tracking.
  • The OctoPi Support Plugin is now the Pi Support Plugin:
    • Always enabled when running on a Raspberry Pi, regardless of whether OctoPi is used or not.
    • Now detects undervoltage/overheat issues and displays an alert on the UI if such an issue is found.
    • Changed detection method of the Raspberry Pi Model to something a bit more future proof.
  • Added the Application Keys Plugin: The new bundled plugin offers an authorization for third party apps that doesn't involve manually copying API keys or using QR codes. Third party client developers are strongly advised to implement this workflow in their apps. Read more in the documentation.
  • Added the Backup & Restore Plugin: The new bundled plugin will allow you to make a backup of your OctoPrint settings, files and list of installed plugins, and to restore from such a backup on the
    same or another instance. This should make migration paths from outdated installations to newer ones easier.
  • Software Update Plugin: Automatic updates in outdated environments are no longer supported. After repeated issues out in the fields with ancient installations and ancient underlying Python environments, OctoPrint will no longer allow automatic updates of itself or plugins via the Software Update Plugin if a certain set of minimum versions of Python, pip and setuptools isn't detected. The current minimum versions reflect the environment found on OctoPi 0.14.0: Python 2.7.9, pip 9.0.1, setuptools 5.5.1. See also the related FAQ entry.
  • OctoPrint will now longer allow itself to be installed on Python versions less than 2.7.3 or higher than 2.7.x, to avoid peope running into issues in unsupported environments.
  • Protect/educate against the dangers of opening up OctoPrint on the public internet:
    • Detect connections to the UI from external IPs and display a warning in such cases.
    • Added explicit warning to the first run wizard.
    • Added explicit warning to the documentation.
    • Added the ForcedLogin Plugin: Disables anonymous read-only access. To get back the old behaviour you'll have to explicitely disable this plugin.
  • Removed printed/visited layer counts from the GCODE viewer since it was confusing people more than helping them.
  • Added a warning to the documentation re expensive code in gcode hooks.
  • Added the no_firstrun_access decorator.
  • Only disable autoscroll in the terminal when scrolling up, not when scrolling down.
  • Added a new asset type clientjs for JS client library components.
  • Added new options for the showConfirmationDialog UI helper:
    • oncancel: callback to call when the cancel button is pressed
    • noclose: don't allow dismissing/closing the dialog without having chosen to proceed or cancel.
  • Allow further access restrictions on API and Tornado routes by third party plugins.
  • Support using the JS client library with an unset API key.
  • Added documentation for octoprint.util.commandline module
  • More resilience against third party plugins that happily block or kill important startup threads
  • Improved backwards compatibility of the sarge dependency by monkey patching it to support the old async keyword parameter. Plugin authors are still advised to switch to the new async_ parameter if running against sarge>=0.1.5, unmodified plugins should continue to work now however. For reference, OctoPrint 1.3.10 requires sarge==0.1.5post0.
  • Better detection of ipv6 support by the underlying OS.
  • Updated several dependencies to current versions where possible.
  • Announcements Plugin: Add documentation.
  • Anonymous Usage Tracking: Added elapsed time & reason of print failure to tracking (to be able to distinguish cancelled from errored out prints)
  • Anonymous Usage Tracking: Added undervoltage/overheat detection on Pis to tracking (to correlate print failures to power issues, see also #2878).
  • Backup: Exclude generated, logs and watched folders from backup
  • Backup: Use base version for version check on restore
  • Pi Support plugin: Better wording on the "undervoltage & overheat" popover & added a link to the FAQ entry
  • Printer Safety Plugin: Added Ender 3 stock firmware, Micro3D stock firmware and iME firmware to detection

Bug fixes

  • #2629 - Cura Plugin: Fixed wrong gcode snippet being used when slicing against a printer profile with multiple extruders.
  • #2696 - Fixed a comment.
  • #2697 - Fixed documentation regarding unit of estimatedPrintTime field in the analysis result.
  • #2705 - Fixed internal server error on GET request for files on the printer's SD card.
  • #2706 - Fixed a documentation error regarding HTTP status code returned on invalid API key
  • #2712 - Fixed updating via commandline (octoprint plugins softwareupdate:update).
  • #2749 - Fixed empty API key being treated as anonymous API key.
  • #2752 - Only reset timeout to shorter "busy" timeout once the busy configuration command has been sent to the printer.
  • #2772 & #2764 - Stop sending commands to the printer if a fatal error is reported that results in a kill(), even if OctoPrint is configured to keep the connection going on firmware errors.
  • #2774 - Fixed autoscroll in the terminal stopping when switching browser windows or tabs.
  • #2780 - Fixed error when trying to save timeout settings.
  • #2800 - Fixed a conjugation error in the documentation.
  • #2805 - Fixed duplicated method name in a unit test.
  • #2846 - Removed requirement to have messages.pot exist to use babel_extract for translating plugins (see also #2846).
  • #2850 - Fixed a race condition in the web socket causing the push connection to fail (see also #2858).
  • #2852 - Fixed issue with zeroconf announcement failing for the second instance of OctoPrint on the same Linux host due to a name conflict.
  • #2872 (regression) - Fix Timeout when connecting to printer that doesn't send start on connect
  • #2873 (regression) - Fix GCODE viewer no longer being able to load files.
  • #2876 (regression) - Fix semi functional UI when access control is disabled
  • #2879 (regression) - Fix favicon in Firefox
  • #2897 (regression) - Improved error resilience of is_lan_address so an error during its execution no longer nukes requests
  • #2898 (regression) - ForceLogin plugin no longer interferes with websocket messages sent by plugins right on UI load but instead puts them into a (limited) backlog and then sends them out in received order once the user has authenticated on the socket.
  • #2903 - Backup plugin: Support for ZIP64 extensions for large zip files
  • #2903 - Backup plugin: Better error reporting
  • #2908 (regression) - Tracking: Use the file's path instead of just the name for file name hashing.
  • #2920 - Backup plugin: Fix wrong compatibility check logic in plugin install during restore
  • Fixed an issue with collision free SD name detection.
  • Fixed some JS warnings in the GCODE viewer.
  • Fixed wrongly used .error instead of the correct .fail in the UI's logout handler.
  • Fixed the disable_hotends snippet in case of a shared nozzle setup.
  • Logout socket on UI logout
  • Announcements Plugin: Fix an issue with atom feeds.
  • Anonymous Usage Tracking: More error resilience for the wizard to possibly work around issues observed with the first RC (for which sadly no information was provided to reproduce and analyse).
  • Anonymous Usage Tracking: Fixed homepage link in plugin manager
  • Backup: Disable restore on Windows servers where it's not supported thanks to the Windows file system
  • Backup: Fix reporting of restore failure due to version mismatch or other cases of an invalid backup
  • Backup: Fix feedback in UI during restore, start feedback right on upload of backup
  • Printer Safety: Fix localization of warning message
  • Software Update Plugin: Fixed the update button being visible although the update is impossible.
  • Software Update Plugin: More resilience against invalid data in config
  • Software Update Plugin: Fixed version output of CLI update message

Special thanks to all the contributors!

Special thanks to everyone who contributed to this release, especially @BillyBlaze, @bradcfisher, @eyal0, @fieldOfView, @gdombiak, @gerfderp, @hashashin and @tedder for their PRs.

More information