Heads-up: 1.3.11 unbundles the Cura plugin
Once installed the Cura Legacy plugin will import the settings and profiles from the former bundled Cura plugin automatically on first start.
- #1938 - Allow slicing parallel to printing on machines with more than one core.
- #2462 - Also scan and process watched folder on startup, not just during runtime.
- #2900 - Add new hook
octoprint.printer.sdcarduploadto allow plugins to override default way to upload files to the printer's SD card.
- #2904 - Added new command line switches
-6to restrict binding of the server to IPv4 or v6 respectively.
- #2905 - Use maximum of communication & temperature timeout as serial timeout to avoid issues if the user has set a longer temperature reporting interval than (busy) communication timeout.
- #2945 - Adjust default regex for filtering temperature requests and responses to not filter some
M115responses as well. New regex is
(Send: (N\d+\s+)?M105)|(Recv:\s+(ok\s+((P|B|N)\d+\s+)*)?(B|T\d*):\d+). If you modified your terminal filters you'll have to update that manually.
- #2947 - Printer safety check plugin: Disable warning for Monoprice Select Mini V2 with firmware v4.1+.
- #2953 - GCODE Viewer: Bring back the total number of printed layers.
- #2962 - Logging: deletion confirmation and bulk delete for log file management.
- #2965 - Add new hook
octoprint.events.register_custom_eventsto allow plugins to cleanly add custom events by plugins.
- #2970 - Add configurable list of commands that should never be sent to the printer, and a configurable list of commands on which OctoPrint should pause the current print job. Allows more granular configuration of behaviour of
- #2974 - Dedicated checkboxes to enable/disable webcam & timelapse functionality instead of relying on empty URLs.
- #2976 - Correctly identify v6 representations of v4 networks for auto login. Also correctly identify
::1as local network.
- #2978 - Use module name instead of plugin identifier when loading plugins from entry points. Also load bundled plugins under
octoprint.plugins.*instead of their identifier.
- #2982 - Log user activity of who started/paused/resumed/cancelled the current print. Include
ownerof a print job in event data and log.
- #2983 - Add clear button to filter box in file list.
- #2986 - Forcelogin plugin: Make login page responsive.
- #2988 - Add
--disable-pip-version-checkto pip calls to stop pip's tendency to confuse people with it's update nag messages.
- #2997 - Forcelogin plugin: Accept authentication through API key and/or authorization headers.
- #3010 - Add usage information for all folders to the API.
- #3014 - Hardening against corrupt language packs.
- #3023 - Hardening against corrupt preemptive caching configurations.
- #3030 - Backup plugin: Change name of generated backup file to have an
octoprint-prefix. See also #3039.
- #3033 - Open serial port in exclusive mode. See also #3036.
- #3038 - Detect Klipper firmware and adjust serial communication settings accordingly.
- #3040 - Add setting to disable fuzzy estimation display in the UI.
- #3049 - Workaround for broken PEP440 non-compliant Python version numbers under Debian. See also #3054.
- #3051 - Always show unfuzzy total print time and print left in a tooltip.
- #3055 - GCODE Viewer: Add ability to preview the current layer to be drawn.
- #3057 - Performance improvements in file management operations & more aggressive cleanup of stale metadata.
- #3066 - Docs: Add missing documentation about state in
jobsendpoint on API.
- #3072 - Hide temperature tab for machines with neither heated bed nor extruders.
- #3073 - Hide tool section in "Control" tab for machines with no extruders.
- #3074 - Updated several dependencies to newer versions.
- Add elapsed time and reason for failure to
SettingsUpdatedevent on save of settings.
- Simplify configuration change handling of wizards.
- Minimum Python version is now 2.7.9.
- Create a backup of working
config.yamlafter successful startup.
- Detect incomplete startups and set safe mode flag for next startup.
- Always show actual temperature as received from printer instead of "off" for very low temperatures. That way people will hopefully no longer blame OctoPrint for MINTEMP errors triggered by their firmware because it "can't handle temperatures under 10°C".
- Add full version string
OctoPrint <version>to API.
- Add systemd unit file.
- Deprecate appkey API in favor of new bundled Application Keys Plugin. AFAIK was never used by anyone anyhow.
- Take bundle status into account for plugin sorting, bundled plugins should always win before not bundled plugins if no sorting key is provided.
- Hardening against callback errors in decorators on default view.
- Unbundled the Cura plugin. It lives on as "Cura Legacy" at OctoPrint/OctoPrint-CuraLegacy and will also be available on the plugin repository.
- Hardening against invalid SD status reports.
- Cleanup now obsolete
monotonic_timefor relative times everywhere.
- Support for heated chamber firmware capabilities.
UI_API_KEYand API disabling. With the inclusion of the ForceLogin plugin that doesn't serve a real purpose anymore in most cases, and it was only ever more of a rate limiting feature than an actual security measure anyhow. Plus it lead to a ton of false security alarms.
- More resilience against broken configurations.
- More resilience against platform startup issues during environment detection.
- Don't confuse users with current
pip's "Python 2.7 is EOL" messages
- Define empty
UI_API_KEYfor backwards compatibility with third party plugins
- Add config flag
server.ignoredIncompleteStartupto override incomplete startup detection
- Hardening against errors triggered during print time estimation
- Introduce setting to disable exclusive claim on serial port. There might be issues with this out there in the field, so having the option to disable it is a good thing.
- Docs: Improve docs of connection API to avoid issues as encountered in #3043.
- Action Command Prompt plugin: Set
M876as default command as discussed in MarlinFirmware/Marlin#12982.
- Action Command Prompt plugin: Add
EMERGENCY_PARSERcompliant commands, if configured accordingly. See also MarlinFirmware/Marlin#12982.
- Action Command Prompt plugin: Signal support for action command prompts to firmware via
M876 P1, if configured accordingly. See also MarlinFirmware/Marlin#12982.
- Action Command Prompt plugin: Properly handle
PROMPT_SUPPORTcapability report from firmware and configure action command prompt support accordingly. See also MarlinFirmware/Marlin#12982.
- Error Tracking plugin: New plugin utilizing sentry.io to track any kind of errors thrown in either backend or the default UI. Will ship disabled by default, has to be enabled by the user. Release Candidates will prompt users to enable it in order to improve on error detection during RC phase.
- Error Tracking: Severely restrict what gets tracked:
- we are only interested in handled core exceptions or unhandled exceptions
- we are not interested at all in
- Error Tracking: Further restriction of what gets tracked
- Forcelogin plugin: Set sorting key to 0 to increase likelihood of coming before alternative UIs.
- Forcelogin plugin: Add favicon meta tags.
- Plugin Manager plugin, Softwareupdate plugin: Use scrollables instead of pagination.
- Printer Safety Check plugin: Add version restriction to Anycubic check.
- Tracking plugin: Add elapsed time and reason for failure to
- Tracking plugin: Add elapsed time to
- Tracking plugin: Track firmware/communication errors.
- Tracking plugin: Track printer safety warnings.
- Tracking plugin: Track uptime of OctoPrint in
- #1881 - Another attempt at fixing the hard to intentionally reproduce issue where all API endpoints start returning
403responses. Caching headers have been adjusted and API key handling has been changed, which might fix things.
- #2859 - Fix for used port and baudrate to not be properly reflected on the UI.
- #2916 - Possible workaround for a rare issue with the bundled Tornado dependency when running OctoPrint under Windows.
- #2954 - Backup plugin: Fix an issue with calculation of available free space.
- #2955 - Fix handling of
PAUSINGand handling of
PAUSINGstate not allowing a resume to proceed. See also MarlinFirmware/Marlin#12982.
- #2959 - Enforce max height smaller than available viewport for notifications so that they cannot scroll out of the screen.
- #2967 - Tracking plugin: Fix exception caused on printer events when tracking is disabled and no UUID is thus set.
- #2971 - Forcelogin plugin: Fix "remember me" not working as advertised. See also #2973.
- #2992 - Backup plugin: Use
os.renameand thus avoid issues with certain filesystem configurations. See also #2993.
- #2996 - Use non-blocking writes on serial communication to avoid
selectblocking issues under certain conditions. See also #3004.
- #3001 - Fix a race condition in SD printing detection.
- #3012 - Fix a unicode vs ASCII bug in translating plugins.
- #3024 - Fix inconsistent behaviour of CORS support on the API regarding static routes and the socket.
- #3029 & #3045 & #3061 - Fix issues in the German translation
- #3053 - GCODE Viewer: Fix an issue with multi extruder files where only a higher extruder index is actually used and all prior ones are undefined.
- #3080 - Virtual Printer plugin: Fix tracking of negative movements and homing.
- #3071 - Application Keys plugin: Fix appkeys not working when access control is disabled.
- #3088 (regression) - Fix 500 error on index rendering in case of plugins that use unicode in plugin vars.
- #3089 (regression) - Fix missing
- #3090 (regression) - Fix missing method causing an exception on
- #3091 (regression) - Printer Safety Check: Fix unicode errors in certain communication scenarios.
- #3092 - Fix invalid tool parameter detection on
- #3098 - Backup: Exclude temporary timelapse files as well if timelapses are excluded from backup.
- #3105 (regression) - Virtual printer: Fix an encoding issue
- #3108 (regression) - Fix bug in port detection
- #3111 (regression) - Refresh port list after disconnect to detect vanishing ports
- #3115 (regression) - Fix extra newlines in
serial.logand empty lines on terminal
- #3116 - Fix potential division by zero
- Fix a typo in an error message during startup.
pausedaction command must not trigger any local processing. See also MarlinFirmware/Marlin#12982.
- Only use page size from local storage in
- Fix caching headers on main view.
- Fix missing default value for
self._errorValuein comm layer.
- Don't read return code on async system commands, it won't work.
- Fix wrong textual representation of
- Fix some potential encoding errors in the comm layer
- Fix for the file list in the UI not getting refreshed after an SD list refresh from the printer.
- Docs: Fix documentation for firmware info & capability plugin hooks.
- Docs: Fix a formatting issue in the event docs, making it seem like events were deprecated when it was only payload entries that are deprecated.
- Forcelogin plugin: Never handle the UI if ACL is disabled.
- Tracking plugin: Fix tracking not starting fully if enabled during runtime.
- Tracking plugin: Fix handling of missing print time. See also #3063.
Special thanks to all the contributors!
Special thanks to everyone who contributed to this release, especially @agrif, @akraus53, @AndyQ, @CapnBry, @DanielJoyce, @devildant, @Fabi0San, @fake-name, @fieldOfView, @gloomyandy, @HarlemSquirrel, @hgross, @jubaleth, @melgish, @rgriebl and @tedder for their PRs.
- Release Candidates: