Update from 2019-10-24: Heads-up if you have an MMU2
Some people have run into weird reset and loop issues with their MMU2 and OctoPrint 1.3.12. The cause of this - as far as the currently available information suggests - are simply misconfigured printer profiles inside OctoPrint.
If you have a multi-extruder setup like the MMU2, make sure your printer profile has configured all available extruders. In the case of the MMU2, you should have five extruders and a shared nozzle configured in OctoPrint. For an MMU it's four extruders and a shared nozzle.
Failure to properly setup your printer profile will cause issues!
Heads-up if you are updating from OctoPrint < 1.3.6
Due to new versions of third party dependencies, this and future versions of OctoPrint will no longer update via the update script/
python setup.py install that used to be OctoPrint's standard update mechanism in versions prior to 1.3.6, at least not in older Python environments as they can be found on e.g. OctoPi 0.14.
Heads-up if you are still running OctoPi 0.14
As it is becoming increasingly complicated to make OctoPrint and its third party dependencies run in the by now ancient Python environment found on OctoPi 0.14, 1.3.12 will no longer allow to be updated from within OctoPrint on OctoPi 0.14 or a similarly outdated Python environment.
- #1239 & #3227 - Add command line interface for user management. Via
octoprint user [list|add|remove|activate|deactivate|password]it is now possible to list, add, remove, activate & deactivate users or change their passwords right from the command line instead of just through the web interface. That should also make password recovery easier and as simple as
octoprint user password username.
- #2896 - Add confirmation dialog when removing a plugin (see also #3179).
- #3075 - Calculate filament usage for all extruders in
M605duplicate/mirror setup (see also #3181).
- #3101 - Support tags on GCODE script hook and add
plugin:<plugin id>to script parts from plugins.
- #2669 - Add option for disabling filters on search results in the file list (see also #3126).
- #3131 - Allow subscribing to multiple events in one yaml based event subscription.
- #3133 - Adjust wording in case of file upload errors to also hint at permission problems.
- #3134 - Add support for logging in (and creating users) through
REMOTE_USERheader supplied by a reverse proxy in front of OctoPrint.
- #3147 - Forcelogin: Add autofocus to the username
- #3161 - Plugin manager: Reduce height of plugin list.
- #3162 - Make closing behaviour of dialogs adjustable: default behaviour is to close on click outside of dialog, this can now be disabled.
- #3167 - Make it configurable whether to perform the parity double open workaround on serial needed for (some?) debian based systems. Solves issues for FreeBSD systems & Klipper.
- #3180 - Add button to terminal tab to clear the log.
- #3188 - Suppress scary
WebSocketClosedErrormessages in the log simply caused by closing the browser.
- #3171 & #3204 - Action command prompts: Add close button to prompts triggered through action commands by the firmware, in case the firmware forgets to add action buttons.
- #3174 - Include upload date & time in State panel to make file refreshs clearer.
- #3191 - Docs: Clarify that a target temperature value of 0 turns heaters off.
- #3198 - Clarify execution order of GCODE scripts.
- #3199 - Hardening against corrupt print recovery data.
- #3203 - Add documentation for
- #3206 - Better resilience against garbage on the line on initial connect to the printer due to more handshake attempts.
- #3207 - Try to guess the mimetype if there is none during the webcam stream test.
- #3218 - Small refactoring in comm layer
- #3225 - Quote arguments in
pip installto avoid issues with shells other than bash.
- #3249 & #3263 - Printer profile events are now properly triggered.
- #3250 - Add optional confirmation dialog for starting a print.
- #3271 - Extend safemode to also disable third party language packs
- Make emergency codes configurable.
- Detect endless resend requests of the same line. If the printer keeps requesting the same line over and over again, something is either seriously wrong with the line or with the connection. In any case, log an error and disconnect.
M112on disconnect due to an error (configurable) to try to disable heaters and such.
- More type annotations throughout the code.
- Re-add missing
minHeightsupport to modals.
- Ensure line breaks on copy of terminal contents.
- Error Tracking: Further limit events that go out, this time by fqcn of callback methods, if needed.
- GCODE viewer: Increase logging.
- Plugin Manager: Prevent plugin installs while throttled due to undervoltage or overheating.
- Software Update: Consider an empty restart command an unset one.
- Software Update: Prevent updates while throttled due to undervoltage or overheating.
- Tracking: Track plugins & versions once every 24h. This is a feature requested repeatedly by plugin developers and will also allow the compilation of something like a Top-10-list.
- Tracking: Track slicing events
- #3022 & #3236 - Ignore
Infvalues in GCODE analysis result, don't allow
- #3095 - Fix a small error in the frontend through bootstrap update.
- #3096 - Fix handling of
Emptyexception in send loop.
- #3104 -
M112and other emergency codes must always jump the internal command queue even when printing and be sent immediately.
- #3107 - Prevent issues if
hashfield on file metadata is unset.
- #3109 - Fix some unicode issues on the API.
- #3114 - Virtual printer: Fix handling of closed connection.
- #3137 - Do not invert axes in GCODE viewer. The axis inversion is only relevant to the control panel (depends on how the print head is positioned), NOT the rendition of the GCODE.
- #3142 - Only do autologin if not actively logged out.
- #3143 - Fix layers vanishing from GCODE viewer on settings access.
- #3153 - Fix wrong variable name in an exception handler.
- #3154 - Strip interface tags from IPv6 addresses in local address check.
- #3155 - Backup: Make sure
excludeis always a list.
- #3156 - Tracking: Fix error if tracked time is
- #3157 - Plugin manager: Better handling of unexpected repository format (e.g. in case of a misconfigured repository URL).
- #3166 & #3211 - Fix caching behaviour in case of active wizards.
- #3171 - Action command prompts: Remove prompts on disconnect from the printer.
- #3176 - Forcelogin: Don't touch static endpoints.
- #3177 - Always report all tools in shared nozzle setups to avoid inconsistencies.
- #3190 - Plugin Manager: Refresh the repository list on cache timeout, not just on server restart and/or connectivity events.
- #3194 & #3196 - Fix typo causing a
KeyErroron starting a second consecutive print of a file (see also #3195).
- #3217 - Docs: Fix typo in chambers documentation
- #3220 - Fix
M191on comm layer.
- #3224 - Fix file selection not being cleared in the frontend on printer disconnect.
- #3253 - Software Update: Fix error in python version detection (see also #3256).
- #3257 - Appkeys: Ignore empty username on
requestendpoint to avoid later issues.
- #3270 - Properly escape translation strings in single/double quoted template locations
- #3272 (regression) - GCODE viewer: Fix out-of-sync & layer slider issue
- #3273 (regression) - Fix minimum pip version for OctoPi 0.15.1, which turns out is 9.0.3, not 10.0.1 as on OctoPi 0.15.0 due to a bug related version pin back then when.
- #3277 (regression) - GCODE viewer: Fix huge memory consumption due to misplaced deep clone.
- #3282 (regression) - Don't trigger
M112routine for firmware errors on a connection error when no connection has even been established yet. * Fix broken filtering of valid tools
- Properly clear out user data from user management dialogs
- Appkeys: Fix handling of empty request body, should return
400 Bad Requestinstead of
500 Internal Server Error.
- Printer safety: Anycubic 1.1.2 is already safe (off by one error, used to only detect >1.1.2 instead of >=1.1.2)
Special thanks to all the contributors!
Special thanks to everyone who contributed to this release and provided full, analyzable bug reports and pull requests, especially @aliaksei135, @AndyQ, @dmweis, @esver, @gdombiak, @jackwilsdon, @JanneMantyharju, @kevans91, @pusewicz, @rfinnie and @tduehr for their PRs.