1.3.1rc1 (release candidate)

@foosel foosel released this Jan 13, 2017

Note for upgraders

Change in stock terminal filter configuration

1.3.1 fixes an issue with the two terminal filters for suppressing temperature and SD status messages and adds a new filter for filtering out firmware wait messages. These changes will only be active automatically though for stock terminal filter configurations. If you have customized your terminal filters, you'll need to apply these changes manually under "Settings > Terminal filters":

  • Changed "Suppress temperature messages" filter, new regex is (Send: (N\d+\s+)?M105)|(Recv: ok (B|T\d*):)
  • Changed "Suppress SD status messages" filter, new regex is (Send: (N\d+\s+)?M27)|(Recv: SD printing byte)
  • New "Suppress wait responses" filter, regex is Recv: wait

Improvements

  • #1607 - Way better support for password managers (e.g. browser built-in, 1Password, Lastpass, Dashlane)
  • #1638 - Make confirmation dialog when cancelling a print optional.
  • #1656 - Make wording of buttons on print cancel dialog less confusing.
  • #1705 - Simplified install process on Mac by removing dependency on pyobjc.
  • #1706 - Added a mask icon for Safari pinned tab and touchbar.
  • Support extraction of filament diameter for volume calculation from GCODE files sliced through Simplify3D.
  • Abort low priority jobs in the file analysis queue when a high priority job comes in - should make file analysis and hence time estimates show up faster for newly uploaded files.
  • Added a terminal filter for firmware wait messages to the stock terminal filters. If you did modify your terminal filter configuration, you might want to add this manually:
    • New "Suppress wait responses" filter: Recv: wait

Bug fixes

  • #1344 - Fix ProgressBarPlugins to not correctly be triggered for 0% (second try, this time hopefully for good).
  • #1637 - Fix issue preventing a folder to be deleted that has a name which is a common prefix of the file currently being printed.
  • #1641 - Fix issue with octoprint --daemon not working.
  • #1647 - Fix issue with octoprint command throwing an error if an environment variable OCTOPRINT_VERSION was set to its version number.
  • #1648 - Added missing websocket-client dependency of octoprint client to install script.
  • #1653 - Fix for an issue with the included init script on the BBB (see also #1654)
  • #1657 - Fix init script regarding check for configured CONFIGFILE variable.
  • #1657 - Don't care about ordering of common parameters (like --basedir, --config) on CLI.
  • #1660 - Do not show hint regarding keyboard controls beneath webcam stream if keyboard control feature is disabled.
  • #1667 - Fix for matching folders not getting listed in the results when performing a search in the file list.
  • #1675 - Fix model size calculation in GCODE analysis, produced wrong values in some cases. Also adjusted calculation to match implementation in GCODE viewer, now both produce identical results.
  • #1685 - Cura Plugin: Fix filament extraction from CuraEngine slicing output
  • #1692 - Cura Plugin: Fix solid layer calculation (backport from Ultimaker/CuraEngine#140)
  • #1693 - Cura Plugin: Support perimeter_before_infill profile setting. Additionally added support for solidarea_speed, raft_airgap_all, raft_surface_thickness, raft_surface_linewidth profile settings and adjusted mapping for engine settings raftAirGapLayer0, raftFanSpeed, raftSurfaceThicknessand raftSurfaceLinewidth according to current mapping in Cura Legacy and adjusted Mach3 GCODE flavor to substitute S with P in temperature commands of generated start code, also like in Cura Legacy.
  • #1697 - Pin Jinja to versions <2.9 for now due to a backwards compatibility issue with templates for versions newer than that. Also pushed as a hotfix to 1.3.0 (as 1.3.0post1).
  • #1708 - Cura Plugin: Fixed selection of start.gcode for sliced file
  • Allow a retraction z-hop of 0 in timelapse configuration.
  • Fix files in sub folders to not be processed by the initial analysis backlog check during startup of the server.
  • Various fixes in the file analysis queue:
    • High priority items are now really high priority
    • Abort analysis for items that are to be deleted/moved to get around an issue with file access under Windows systems.
  • Fix stock terminal filters for suppressing temperature messages and SD status messages to also be able to deal with line number prefixes. If you have added additional terminal filters, you will have to apply this fix manually:
    • Changed "Suppress temperature messages" filter: (Send: (N\d+\s+)?M105)|(Recv: ok (B|T\d*):)
    • Changed "Suppress SD status messages" filter: (Send: (N\d+\s+)?M27)|(Recv: SD printing byte)
  • Fix issue in german translation.

(Commits)

Downloads

1.3.0 (stable)

@foosel foosel released this Dec 8, 2016 · 1 commit to master since this release

Note for plugin authors

As always I've done my best to ensure backwards compatibility with regards to documented functionality and APIs. If you depended on any undocumented quirks/bugs however, those things might have changed, so best check that your plugin still works fine. In general I'd strongly suggest to always keep an eye on OctoPrint's ongoing development for that reason as well.

Features

  • You can now create folders in the file list, upload files into said folders and thus better manage your projects' files.
  • New wizard dialog for system setups that can also be extended by plugins. Replaces the first run dialog for setting up access control and can also be triggered in other cases than only the first run, e.g. if plugins necessitate user input to function properly. Added wizards to help configuring the following components in OctoPrint on first run: access control, webcam URLs & ffmpeg path, server commands (restart, shutdown, reboot), printer profile. Also extended the bundled Cura plugin to add a wizard for its first setup to adjust path and import a slicing profile, and the bundled Software Update plugin to ask the user for details regarding the OctoPrint update configuration. Also see below.
  • New command line interface (CLI). Offers the same functionality as the old one plus:
    • a built-in API client (octoprint client --help)
    • built-in development tools (octoprint dev --help)
    • extendable through plugins implementing the octoprint.cli.commands hook (octoprint plugins --help)
  • New features within the plugin system:
    • Plugins may now give hints in which order various hooks or mixin methods should be called by optionally providing an integer value that will be used for sorting the callbacks prior to execution.
    • Plugins may now define configuration overlays to be applied on top of the default configuration but before config.yaml.
    • New mixin UiPlugin for plugins that want to provide an alternative web interface delivered by the server.
    • New mixin WizardPlugin for plugins that want to provide wizard components to OctoPrint's new wizard dialog.
    • New hook octoprint.cli.commands for registering a command with the new OctoPrint CLI
    • New hook octoprint.comm.protocol.gcode.received for receiving messages from the printer
    • New hook octoprint.printer.factory for providing a custom factory to contruct the global PrinterInterface implementation.
    • New TemplatePlugin template type: wizard
  • New Javascript client library for utilizing the server's API, can be reused by UiPlugins.
  • 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

  • #1048 - Added "Last print time" to extended file information (see also #1522)
  • #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.
  • New central configuration option for commands to restart OctoPrint and to restart and shut down the system OctoPrint is running on. This allows plugins (like the Software Update Plugin or the Plugin Manager) and core functionality to perform these common administrative tasks without the user needing to define everything redundantly.
  • pip helper now adjusts pip install parameters corresponding to detected pip version:
    • Removes --process-dependency-links when it's not needed
    • Adds --no-use-wheel when it's needed
    • Detects and reports on completely broken versions
  • Better tracking of printer connection state for plugins and scripts:
    • Introduced three new Events Connecting, Disconnecting and PrinterStateChanged.
    • Introduced new GCODE script beforePrinterDisconnected which will get sent before a (controlled) disconnect from the printer. This can be used to send some final commands to the printer before the connection goes down, e.g. M117 Bye from OctoPrint.
    • The communication layer will now wait for the send queue to be fully processed before disconnecting from the printer for good. This way it is ensured that the beforePrinterDisconnected script or any further GCODE injected into it will actually get sent.
  • Additional baud rates to allow for connecting can now be specified along side additional serial ports via the settings dialog and the configuration file.
  • Option to never send checksums (e.g. if the printer firmware doesn't support it), see #949.
  • Added secondary temperature polling interval to use when printer is not printing but a target temperature is set - this way the graph should be more responsive while monitoring a manual heatup.
  • Test buttons for webcam snapshot & stream URL, ffmpeg path and some other settings (see also #183).
  • Temperature graph automatically adjusts its Y axis range if necessary to accomodate the plotted data (see also #632).
  • "Fan on" command now always sends S255 parameter for better compatibility across firmwares.
  • Warn users with a notification if a file is selected for printing that exceeds the current print volume (if the corresponding model data is available, see also #1254)
  • Added option to also display temperatures in Fahrenheit (see also #1258)
  • Better error message when the config.yaml file is invalid during startup
  • API now also allows issuing absolute jogging commands to the printer
  • Printer profile editor dialog refactored to better structure fields and explain where they are used
  • Option to detect z-hops during z-based timelapses and not trigger a snapshot (see also 1148)
  • File rename, move and copy functionality exposed via API, not yet utilized in stock frontend but available in file manager plugin.
  • Try to assure a sound SSL environment for the process at all times
  • Improved caching:
    • Main page and asset files now carry proper ETag and Last-Modified headers to allow for sensible browser-side caching
    • API sets Etag and/or Last-Modified headers on responses to GET requests where possible and feasible to allow for sensible browser-side caching
  • Renamed GcodeFilesViewModel to FilesViewModel - plugin authors should accordingly update their dependencies from gcodeFilesViewModel to filesViewModel. Using the old name still works, but will log a warning and stop working with 1.4.x.
  • Make sure volume.depth for circular beds is forced to volume.width in printer profiles
  • Support for M116
  • Support M114 responses without whitespace between coordinates (protocol consistency - who needs it?).
  • M600 is now marked as a long running command by default.
  • Don't focus files in the file list after deleting a file - made the list too jumpy.
  • Cura plugin: "Test" button to check if path to cura engine is valid.
  • Cura plugin: Wizard component for configuring the path to the CuraEngine binary and for importing the first slicing profile
  • GCODE viewer: Added Layer Up/Down buttons (see also #1306)
  • GCODE viewer: Allow cycling through layer via keyboard (up, down, pgup, pgdown)
  • GCODE viewer: Allow changing size thresholds via settings menu (see also #1308)
  • GCODE viewer: Added support for GCODE arc commands (see also #1382)
  • Language packs: Limit upload dialog for language pack archives to .zip, .tar.gz, .tgz and .tar extensions.
  • Plugin Manager: Adjusted to utilize new pip helper
  • Plugin Manager: Show restart button on install/uninstall notification if restart command is configured and a restart is required
  • Plugin Manager: Track managable vs not managable plugins
  • Plugin Manager: Allow hiding plugins from Plugin Manager via config.yaml.
  • Plugin Manager: Limit upload dialog for plugin archives to .zip, .tar.gz, .tgz and .tar extensions.
  • 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 plugin: More verbose output for logged in administrators. Will now log the update commands and their output similar to the Plugin Manager install and uninstall dialog.
  • Software Update plugin: CLI for checking for and applying updates
  • Software Update plugin: Wizard component for configuring OctoPrint's update mechanism
  • Software Update plugin: "busy" spinner on check buttons while already checking for updates.
  • Software Update plugin: Prevent update notification when wizard is open.
  • Plugin Manager / Software Update plugin: 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 plugin: The "busy" dialog can no longer be closed accidentally.
  • Timelapse: Better (& earlier) reporting to the user when something's up with the snapshot URL causing issues with capturing timelapse frames and hence making it impossible to render a timelapse movie on print completion.
  • Virtual printer: Usage screen for the !!DEBUG commands on !!DEBUG, !!DEBUG:help or !!DEBUG:?
  • Updated frontend dependencies (possibly relevant for plugin authors):
    • Bootstrap to 2.3.2
    • JQuery to 2.2.4
    • Lodash to 3.10.1
    • SockJS to 1.1.1
  • Better error resilience against errors in UI components.
  • Various improvements in the GCODE interpreter which performs the GCODE analysis
  • Various adjustments towards Python 3 compatibility (still a work in progress though, see also #1411, #1412, #1413, #1414)
  • Various code refactorings
  • Various small UI improvements
  • Various documentation improvements

Bug fixes

  • #1047 - Fixed 90 degree webcam rotation for iOS Safari.
  • #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.
  • #1599 - Properly handle exceptions that arise within the update script during runtime.
  • It's not possible anymore to select files that are not machinecode files (e.g. GCODE) for printing on the file API.
  • Changes to a user's personal settings via the UI now propagate across sessions.
  • Improved compatibility of webcam rotation CSS across newer browsers (see also #1436)
  • Fix for system menu not getting properly reloaded after entries changed
  • 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.
  • Fix for /api/settings not being properly invalidated for plugin settings that do not have a representation in config.yaml but are only added at runtime (and hence are not captured by config.effective).
  • 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.
  • Fix a rare race condition in the command line helper and the update script that could cause the code to hang due to waiting on an event that would never be set.
  • Fix issue with handling new settings substructures when they are compared to existing settings data in order to find the structural diff.
  • Fix for the temperature graph not displaying the data history on site reload.

More information

Downloads

1.3.0rc3 (release candidate)

@foosel foosel released this Dec 2, 2016 · 4 commits to rc/devel since this release

Improvements

  • Added note to JS client docs that it depends on JQuery and Lodash.
  • Improved a (manual) doctest

Bug fixes

  • #1599 - Properly handle exceptions that arise within the update script during runtime.
  • Fix a rare race condition in the command line helper and the update script that could cause the code to hang due to waiting on an event that would never be set.
  • Fix issue with handling new settings substructures when they are compared to existing settings data in order to find the structural diff.
  • Fix for /api/settings not being properly invalidated for plugin settings that do not have a representation in config.yaml but are only added at runtime (and hence are not captured by config.effective).
  • Fix for the temperature graph not displaying the data history on site reload.

(Commits)

Downloads

1.2.18 (stable)

@foosel foosel released this Nov 30, 2016 · 1016 commits to master since this release

Improvements

  • Allow arbitrary frame rates for creating timelapses. Before, the entered fps value was also directly used as frame rate for the actual video, which could cause problems with any frame rates not specified in the MPEG2 standard. Now OctoPrint will use a standard frame rate for the rendered video and render the timelapse stills into the finished movie with the configured frame rate.
  • Limited Cura profile importer to .ini files and clarified the supported versions
  • Add support for the R parameter for M109 and M190

Bug fixes

  • #1541 - Fix selecting the printer profile to use by default
  • #1543 - Fix target temperature propagation from communication layer
  • #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.

More information

Downloads

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

1.2.18rc1 (release candidate)

@foosel foosel released this Nov 22, 2016 · 1076 commits to rc/maintenance since this release

Improvements

  • Allow arbitrary frame rates for creating timelapses. Before, the entered fps value was also directly used as frame rate for the actual video, which could cause problems with any frame rates not specified in the MPEG2 standard. Now OctoPrint will use a standard frame rate for the rendered video and render the timelapse stills into the finished movie with the configured frame rate.
  • Limited Cura profile importer to .ini files and clarified the supported versions
  • Add support for the R parameter for M109 and M190

Bug fixes

  • #1541 - Fix selecting the printer profile to use by default
  • #1543 - Fix target temperature propagation from communication layer
  • #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

1.2.17 (stable)

@foosel foosel released this Nov 8, 2016 · 1030 commits to master since this release

Notes for Upgraders

A bug in 1.2.16 might prevent you from updating, here's what to do if that is the case

If you are running 1.2.16 and are receiving an error message about the upgrade not being possible upon attempting to upgrade, open the Settings dialog, click "Save" once (you don't have to modify anything!) and then try again[1]. Your update should work now.

The reason for this being necessary is a small bug in 1.2.16: a missing migration step for a changed setting required for the update mechanism to work. Saving the settings triggers the migration step and fixes the issue.

[1] : To get the notification displayed again, either reload the page, or trigger it manually via Settings > "Software Update" > "Check for update now"

Improvements

  • Files like config.yaml etc will now persist their permissions, with a lower and upper permission bounds for sanitization (e.g. removing executable flags on configuration files but keeping group read/write permissions if found).
  • Log full stack trace on socket connection errors when debug logging for octoprint.server.util.sockjs is enabled
  • SettingsPlugins may now mark configuration paths as restricted so that they are not returned on the REST API
  • Updated LESS.js version
  • Improved the serial.log logging handler to roll over serial log on new connections to the printer instead of continuously appending to the same file. Please note that serial.log is a debugging tool only and should not be left enabled unless you are trying to troubleshoot something in your printer communication.
  • Split JS/CSS/LESS asset bundles according into asset bundles for core + bundled plugins ("packed_core.{js|css|less}") and third party plugins ("packed_plugins.{js|css|less}"). That will allow the core UI to still function properly even if an installed third party plugin produces invalid JS and therefore causes a parser error for the whole plugin JS file. See #1544 for an example of such a situation.

Bug fixes

  • #1531 - Fixed encoding bug in HTTP request processing triggered by content type headers on form data fields
  • Fixed forced config.yaml save on startup caused by mistakenly assuming that printer parameters were always migrated.
  • Fixed issue causing remember_me cookie not to be deleted properly on logout
  • Fixed broken filter toggling on ItemListHelper class used for various lists throughout the web interface
  • Fixed an issue with the preliminary page never reporting that the server is now up if the page generated during preliminary caching had no cache headers set (e.g. because it contained the first run setup wizard)
  • Fixed a bug causing the update of OctoPrint to not work under certain circumstances: If 1.2.16 was installed and the settings were never saved via the "Settings" dialog's "Save", the update of OctoPrint would fail due to a KeyError in the updater. Reason is a renamed property, properly switched to when saving the settings.
  • Fixed the logging subsystem to properly clean up after itself.
  • Fixed a wrong order in loading JS files on the client introduced in 1.2.17rc2 to make the UI more resilient against broken plugin JS.
  • Properly handle empty JS file list from plugins. Solves a 500 on OctoPrint instances without any third party plugins installed generated during web asset bundling introduced in 1.2.17rc2.

More information

Downloads

1.3.0rc1 (release candidate)

@foosel foosel released this Oct 19, 2016 · 110 commits to rc/devel since this release

New Features

  • You can now create folders in the file list, upload files into said folders and thus better manage your projects' files.
  • New wizard dialog for system setups that can also be extended by plugins. Replaces the first run dialog for setting up access control and can also be triggered in other cases than only the first run, e.g. if plugins necessitate user input to function properly. Added wizards to help configuring the following components in OctoPrint on first run: access control, webcam URLs & ffmpeg path, server commands (restart, shutdown, reboot), printer profile. Also extended the bundled Cura plugin to add a wizard for its first setup to adjust path and import a slicing profile, and the bundled Software Update plugin to ask the user for details regarding the OctoPrint update configuration. Also see below.
  • New command line interface (CLI). Offers the same functionality as the old one plus:
    • a built-in API client (octoprint client --help)
    • built-in development tools (octoprint dev --help)
    • extendable through plugins implementing the octoprint.cli.commands hook (octoprint plugins --help)
  • New features within the plugin system:
    • Plugins may now give hints in which order various hooks or mixin methods should be called by optionally providing an integer value that will be used for sorting the callbacks prior to execution.
    • Plugins may now define configuration overlays to be applied on top of the default configuration but before config.yaml.
    • New mixin `UiPlugin for plugins that want to provide an alternative web interface delivered by the server.
    • New mixin WizardPlugin for plugins that want to provide wizard components to OctoPrint's new wizard dialog.
    • New hook octoprint.cli.commands for registering a command with the new OctoPrint CLI
    • New hook octoprint.comm.protocol.gcode.received for receiving messages from the printer
    • New hook octoprint.printer.factory for providing a custom factory to contruct the global PrinterInterface implementation.
    • New TemplatePlugin template type: wizard
  • New Javascript client library for utilizing the server's API, can be reused by UiPlugins.

Improvements

  • #1048 - Added "Last print time" to extended file information (see also #1522)
  • New central configuration option for commands to restart OctoPrint and to restart and shut down the system OctoPrint is running on. This allows plugins (like the Software Update Plugin or the Plugin Manager) and core functionality to perform these common administrative tasks without the user needing to define everything redundantly.
  • pip helper now adjusts pip install parameters corresponding to detected pip version:
    • Removes --process-dependency-links when it's not needed
    • Adds --no-use-wheel when it's needed
    • Detects and reports on completely broken versions
  • Better tracking of printer connection state for plugins and scripts:
    • Introduced three new Events Connecting, Disconnecting and PrinterStateChanged.
    • Introduced new GCODE script beforePrinterDisconnected which will get sent before a (controlled) disconnect from the printer. This can be used to send some final commands to the printer before the connection goes down, e.g. M117 Bye from OctoPrint.
    • The communication layer will now wait for the send queue to be fully processed before disconnecting from the printer for good. This way it is ensured that the beforePrinterDisconnected script or any further GCODE injected into it will actually get sent.
  • Additional baud rates to allow for connecting can now be specified along side additional serial ports via the settings dialog and the configuration file.
  • Option to never send checksums (e.g. if the printer firmware doesn't support it), see #949.
  • Added secondary temperature polling interval to use when printer is not printing but a target temperature is set - this way the graph should be more responsive while monitoring a manual heatup.
  • Test buttons for webcam snapshot & stream URL, ffmpeg path and some other settings (see also #183).
  • Temperature graph automatically adjusts its Y axis range if necessary to accomodate the plotted data (see also #632).
  • "Fan on" command now always sends S255 parameter for better compatibility across firmwares.
  • Warn users with a notification if a file is selected for printing that exceeds the current print volume (if the corresponding model data is available, see also #1254)
  • Added option to also display temperatures in Fahrenheit (see also #1258)
  • Better error message when the config.yaml file is invalid during startup
  • API now also allows issuing absolute jogging commands to the printer
  • Printer profile editor dialog refactored to better structure fields and explain where they are used
  • Option to detect z-hops during z-based timelapses and not trigger a snapshot (see also 1148)
  • File rename, move and copy functionality exposed via API, not yet utilized in stock frontend but available in file manager plugin.
  • Try to assure a sound SSL environment for the process at all times
  • Improved caching:
    • Main page and asset files now carry proper ETag and Last-Modified headers to allow for sensible browser-side caching
    • API sets Etag and/or Last-Modified headers on responses to GET requests where possible and feasible to allow for sensible browser-side caching
  • Renamed GcodeFilesViewModel to FilesViewModel - plugin authors should accordingly update their dependencies from gcodeFilesViewModel to filesViewModel. Using the old name still works, but will log a warning and stop working with 1.4.x.
  • Make sure volume.depth for circular beds is forced to volume.width in printer profiles
  • Support for M116
  • Cura plugin: "Test" button to check if path to cura engine is valid.
  • Cura plugin: Wizard component for configuring the path to the CuraEngine binary and for importing the first slicing profile
  • GCODE viewer: Added Layer Up/Down buttons (see also #1306)
  • GCODE viewer: Allow cycling through layer via keyboard (up, down, pgup, pgdown)
  • GCODE viewer: Allow changing size thresholds via settings menu (see also #1308)
  • GCODE viewer: Added support for GCODE arc commands (see also #1382)
  • Language packs: Limit upload dialog for language pack archives to .zip, .tar.gz, .tgz and .tar extensions.
  • Plugin Manager: Adjusted to utilize new pip helper
  • Plugin Manager: Show restart button on install/uninstall notification if restart command is configured and a restart is required
  • Plugin Manager: Track managable vs not managable plugins
  • Plugin Manager: Allow hiding plugins from Plugin Manager via config.yaml.
  • Plugin Manager: Limit upload dialog for plugin archives to .zip, .tar.gz, .tgz and .tar extensions.
  • Software Update plugin: More verbose output for logged in administrators. Will now log the update commands and their output similar to the Plugin Manager install and uninstall dialog.
  • Software Update plugin: CLI for checking for and applying updates
  • Software Update plugin: Wizard component for configuring OctoPrint's update mechanism
  • Timelapse: Better (& earlier) reporting to the user when something's up with the snapshot URL causing issues with capturing timelapse frames and hence making it impossible to render a timelapse movie on print completion.
  • Virtual printer: Usage screen for the !!DEBUG commands on !!DEBUG, !!DEBUG:help or !!DEBUG:?
  • Updated frontend dependencies (possibly relevant for plugin authors):
    • Bootstrap to 2.3.2
    • JQuery to 2.2.4
    • Lodash to 3.10.1
    • SockJS to 1.1.1
  • Various improvements in the GCODE interpreter which performs the GCODE analysis
  • Various adjustments towards Python 3 compatibility (still a work in progress though, see also #1411, #1412, #1413, #1414)
  • Various code refactorings
  • Various small UI improvements
  • Various documentation improvements

Bug Fixes

  • #1047 - Fixed 90 degree webcam rotation for iOS Safari.
  • It's not possible anymore to select files that are not machinecode files (e.g. GCODE) for printing on the file API.
  • Changes to a user's personal settings via the UI now propagate across sessions.
  • Improved compatibility of webcam rotation CSS across newer browsers (see also #1436)
  • Fix for system menu not getting properly reloaded after entries changed

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

Improvements

  • Allow arbitrary frame rates for creating timelapses. Before, the entered fps value was also directly used as frame rate for the actual video, which could cause problems with any frame rates not specified in the MPEG2 standard. Now OctoPrint will use a standard frame rate for the rendered video and render the timelapse stills into the finished movie with the configured frame rate.
  • Limit Cura profile importer to .ini files and clarified the supported versions
  • Add support for the R parameter for M109 and M190

Bug fixes

  • #1541 - Fix selecting the printer profile to use by default
  • #1543 - Fix target temperature propagation from communication layer

Downloads

1.2.17rc4 (release candidate)

@foosel foosel released this Oct 17, 2016 · 1090 commits to rc/maintenance since this release

Bug fixes

  • Properly handle empty JS file list from plugins. Solves a 500 on OctoPrint instances without any third party plugins installed generated during web asset bundling introduced in 1.2.17rc2.

(Commits)

Downloads

1.2.17rc3 (release candidate)

@foosel foosel released this Oct 13, 2016 · 1092 commits to rc/maintenance since this release

Bug fixes

  • Fixed a wrong order in loading JS files on the client introduced in 1.2.17rc2 to make the UI more resilient against broken plugin JS.

(Commits)

Downloads