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 variousE
values and the currently selected toolT
. In order to fully implement this feature, the following improvements were also done:- New
PositionUpdated
event when OctoPrint receives a response to anM114
position query. - Extended
PrintPaused
andPrintCancelled
events with position data fromM114
position query on print interruption/end.
- New
- 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 settingstartOnceInSafeMode
that disables all third party plugins when active. The config setting will automatically be removed fromconfig.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 frompip 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
andM115
responses withok
-prefix. - Make sure
?l10n
request parameter gets also propagated to API calls asX-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)