1.3.0rc2 (release candidate)

@foosel foosel released this Nov 24, 2016 · 14 commits to rc/devel since this release

Note for Upgraders coming from 1.3.0rc1

Due to the encoding issue #1586 with the included update script that still existed in 1.3.0rc1 under certain circumstances you might encounter an error when upgrading to 1.3.0rc2 similar to this:

Installed /home/pi/oprint/lib/python2.7/site-packages/OctoPrint-1.3.0rc2-py2.7.egg
Processing dependencies for OctoPrint==1.3.0rc2
Searching for tornado==4.0.2
Reading https://pypi.python.org/simple/tornado/
Best match: tornado 4.0.2
Downloading https://pypi.python.org/packages/66/bb/782999291b390181aa2c38ac3ad167567d933e92c0d7ce3f421b3abe4586/tornado-4.0.2.tar.gz#md5=985c0e704b765c33a6193d49d1935588
Processing tornado-4.0.2.tar.gz
Writing /tmp/easy_install-Bl9zQY/tornado-4.0.2/setup.cfg
Running tornado-4.0.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Bl9zQY/tornado-4.0.2/egg-dist-tmp-dETMqs
Traceback (most recent call last):
File "/home/pi/oprint/lib/python2.7/site-packages/OctoPrint-1.3.0rc1-py2.7.egg/octoprint/plugins/softwareupdate/scripts/update-octoprint.py", line 275, in <module>
main()
File "/home/pi/oprint/lib/python2.7/site-packages/OctoPrint-1.3.0rc1-py2.7.egg/octoprint/plugins/softwareupdate/scripts/update-octoprint.py", line 272, in main
install_source(python_executable, folder, user=args.user, sudo=args.sudo)
File "/home/pi/oprint/lib/python2.7/site-packages/OctoPrint-1.3.0rc1-py2.7.egg/octoprint/plugins/softwareupdate/scripts/update-octoprint.py", line 215, in install_source
raise RuntimeError("Could not update, \"python setup.py install\" failed with returncode %d: %s" % (returncode, _to_error(*stdout)))
TypeError: _to_error() argument after * must be a sequence, not NoneType

The update did not finish successfully. Please consult the log for details.

OctoPrint will report your upgrade as having failed. It actually has not. Simply doing a manual restart of your OctoPrint server should start up 1.3.0rc2 just fine.

The issue in question has been fixed in 1.3.0rc2, but naturally is still present in your existing 1.3.0rc1 version. See also #1599.

Features

  • OctoPrint will now track the current print head position on pause and cancel and provide it as new template variables pause_position/cancel_position for the relevant GCODE scripts. This will allow more intelligent pause codes that park the print head at a rest position during pause and move it back to the exact position it was before the pause on resume (Example). Note that this is NOT enabled by default and for now will necessitate adjusting the pause and resume GCODE scripts yourself since position tracking with multiple extruders or when printing from SD is currently not fool proof thanks to firmware limitations regarding reliable tracking of the various E values and the currently selected tool T. In order to fully implement this feature, the following improvements were also done:
    • New PositionUpdated event when OctoPrint receives a response to an M114 position query.
    • Extended PrintPaused and PrintCancelled events with position data from M114 position query on print interruption/end.
  • Added (optional) firmware auto detection. If enabled (which it is by default), OctoPrint will now send an M115 to the printer on initial connection in order to try to figure out what kind of firmware it is. For FIRMWARE_NAME values containing "repetier" (case insensitive), all Repetier-specific flags will be set on the comm layer. For FIRMWARE_NAME values containing "reprapfirmware" (also case insensitive), all RepRapFirmware-specific flags will be set on the comm layer. For now no other handling will be performed.
  • Added safe mode flag --safe and config setting startOnceInSafeMode that disables all third party plugins when active. The config setting will automatically be removed from config.yaml after the server has started through successfully.
  • Added octoprint config CLI that allows easier manipulation of config.yaml entries from the command line. Example: octoprint config set --bool server.startOnceInSafeMode true

Improvements

  • #1422 - Added option for post roll for timed timelapse to duplicate last frame instead of capturing new frames. That makes for a faster render at the cost of a still frame at the end of the rendered video. See also #1553.
  • #1551 - Allow to define a custom bounding box for valid printer head movements in the printer profile, to make print dimension check more flexible.
  • #1583 - Strip invalid pip arguments from pip uninstall commands, if provided by the user as additional pip arguments.
  • #1593 - Automatically migrate old manual system commands for restarting OctoPrint and rebooting or shutting down the server to the new system wide configuration settings. Make a backup copy of the old config.yaml before doing so in case a manual rollback is required.
  • Support M114 responses without whitespace between coordinates (protocol consistency - who needs it?).
  • Don't focus files in the file list after deleting a file - made the list too jumpy.
  • Better error resilience against errors in UI components.
  • M600 is now marked as a long running command by default.
  • Plugin Manager: Allow closing of all notifications and close them automatically on detected server disconnect. No need to keep a "Restart needed" message around if a restart is in progress.
  • Software Update: "busy" spinner on check buttons while already checking for updates.
  • Software Update: Prevent update notification when wizard is open.
  • Plugin Manager / Software Update: The "There's a new version of pip" message during plugin installs and software updates is no longer displayed like an error.
  • Plugin Manager / Software Update: The "busy" dialog can no longer be closed accidentally.

Bug fixes

  • #1148 - Fixed retraction z hop setting for Z-triggered timelapses. Was not correctly propagated to the backend and hence not taking effect.
  • #1567 - Invalidate /api/settings cache on change of the user's login state (include user roles into ETag calculation).
  • #1586 - Fixed incompatibility of update script and command line helper with non-ASCII output from called commands.
  • #1588 - Fixed feedback controls again.
  • Invalidate /api/settings cache on change of the currently enabled plugins (by including plugin names into ETag calculation) and/or on change of the current effective config.
  • Invalidate /api/timelapse cache on change of the current timelapse configuration.
  • Fixed an issue causing the version number not to be properly extracted from sdist tarballs generated under Windows.
  • Get rid of double scroll bar in printer profile editor.
  • Fixed tracking of current byte position in file being streamed from disk. Turns out that self._handle.tell lied to us thanks to line buffering.
  • Fixed select & print not working anymore for SD files thanks to a timing issue.
  • Fixed PrintFailed event payload (was still missing new folder relevant data).
  • Fixed premature parse stop on M114 and M115 responses with ok-prefix.
  • Make sure ?l10n request parameter gets also propagated to API calls as X-Locale header in case of locale sensitive API responses.
  • Fix language mixture due to cached template configs including localized strings; cache per locale.
  • Only insert divider in system menu after core commands if there are custom commands.
  • Fix update of webcam stream URL not being applied due to caching.
  • Fixed a rare race condition causing the new "The settings changed, reload?" popup to show up even when the settings change originated in the same client instance.
  • Fixed a bunch of missing translations.
  • Pinned Tornado version to 4.0.2. Former version requirement was able to pull in a beta version causing issues with websockets due to a bug in permessage-deflate handling. The Tornado requirement needs an update, but we'll leave it at 4.0.2 for 1.3.0 since we'll need to do some migration work for compatibility with anything newer. Potentially related to #1523.

Changes from maintenance not yet released as part of a stable release

Bug fixes

  • #1567 - Fix issue with restricted settings getting parsed to the wrong data structure in the frontend if loaded anonymously first.
  • #1571 - Fix parsing of port number from HTTP Host header for IPv6 addresses
  • Fix issue with settings restriction causing internal settings defaults to be changed.

(Commits)

Downloads