New release candidate: 1.4.1rc1

After some insane months thanks to an pandemic induced increase in support requests, it’s finally time to push out a first release candidate for the upcoming 1.4.1 maintainence release!

The full changelog contains a long list of improvements and bug fixes, however I want to highlight the following:

  • The temperature tab got a new control to select preconfigured temperature profiles on all heaters with one click
  • The newly bundled “File Check” plugin will sanity check uploaded files and warn about potential issues. Currently the plugin only detects {travel_speed} place holders left in GCODE. Read more in the plugin’s README.
  • The first run wizard now allows to restore from a plugin right away.
  • You can now move files in the file list to other folders without the need of a third party plugin.
  • The Plugin Manager now shows stats on the plugins available on the repository, such as number of known installs, date of last release etc. Installed plugins now also make it more transparent whether they are already compatible to Python 3 or not.
  • The Plugin Manager now also supports installing so called single-file plugins - mini plugins only consisting of a single python file which are a quick and easy way to work around broken communication or similar backend-only situations. This feature was developed live on air, you can learn more about it in this episode of OctoPrint Code & Chat. Consequently, the Software Update plugin was also extended with some new version check and updater types to support auto-updating single file plugins, read more in the docs here.
  • The Printer Safety Check has been renamed to Firmware Check & extracted into a still bundled but separately maintained plugin. It now also detects firmware with known broken communication protocol implementations (like the infamous CBD make it and ZWLF make it variants) and links to related FAQ entries on detection.
  • The broken by design comm port auto detection has been rewritten completely from scratch. That should hopefully make auto detection work more reliably in the future.
  • Original file modification timestamps will now be persisted on restoring from a backup.
  • The “read-only” group behaviour has been fixed so that it is actually possible to create a read-only account. The User group is no longer enforced on users, though pre checked for new users (if kept default). This makes it also possible to create group less users, so keep that in mind.
  • The permission issue that kept the Announcement icon show up on the navbar has been solved.
  • A bunch of dependencies were upgraded to the latest versions. Among these is also the templating engine Jinja2, which results in a heads-up for plugin authors, read below.
  • … and many more improvements & fixes.

There are also a bunch of heads-ups with this release for plugin authors and other developers:

Heads-up for plugin authors: Jinja2 update has one backwards incompatibility, please read

Current Jinja versions no longer allow modifying variables set outside of for loops inside them. […]

See also #1697 and https://jinja.palletsprojects.com/en/2.11.x/templates/#assignments

The Jinja dependency upgrade thus introduces a breaking change for plugins as well. However, it was necessary for security reasons: older versions have a bug that could allow template authors to break out of the template sandbox. Not a huge risk in the context of OctoPrint (plugins already have a lot more power than jinja would give them), but still overdue to fix.

You can find more details and example code in the Release Notes.

Heads-up for plugin authors: awesome-slugify is now bundled as octoprint.vendor.awesome_slugify, update your imports!

Due to a necessary dependency update of a third party dependency pulling in a different slugify library (“python-slugify”) that clashes with awesome-slugify, the latter has been bundled. If you use import slugify anywhere in your code, please be aware that that will now possibly pull in the aforementioned other library or possibly a partially overwritten awesome-slugify. Plugin authors are advised to update the imports of awesome-slugify like this:

### old
# example 1
import slugify
# example 2
from slugify import Slugify
### new
# example 1
try:
  # OctoPrint>=1.4.1
  import octoprint.vendor.awesome_slugify as slugify 
except ImportError:
  # OctoPrint<=1.4.0
  import slugify
# example 2
try:
  # OctoPrint>=1.4.1
  from octoprint.vendor.awesome_slugify import Slugify
except ImportError:
  # OctoPrint<=1.4.0
  from slugify import Slugify

That will also guarantee backwards compatibility if installed under OctoPrint versions prior to 1.4.1. Alternatively switch fully to the 1.4.1 version and adjust your plugin listing to a minimum OctoPrint version of 1.4.1.

Heads-up for developers: The included virtual printer has had its settings migrated to a different location in config.yaml

The bundled Virtual Printer plugin has finally been turned fully isolated into a self contained plugin and thus its settings have been moved from devel.virtualPrinter to plugins.virtual_printer in config.yaml. An auto migration is in place that should take care of moving anything already configured on first start under 1.4.1+, however should you be somehow manipulating config.yaml through automation or something in order to change virtual printer settings, you’ll have to update your workflows.

You can find the full changelog and release notes as usual on Github.

Special thanks to everyone who contributed to this release candidate and provided full, analyzable bug reports, you help making the next release as stable as possible!

As the past RCs have shown me that a lot of people appear to be unaware of this: Please do not install this RC if you expect a fully stable version. It is not a stable release, it is a release candidate, and of the next big release to boot: severe bugs may occur, and they might be bad enough that they make a manual downgrade to an earlier version necessary - maybe even from the command line.

You should feel comfortable with and capable of possibly having to do this before installing an RC.

If you want to and can help test this release candidate, you can find information on how to switch to the “Maintenance RCs” release channel in this guide if not already done (also linked below).

Please provide feedback on this RC. For general feedback you can use this ticket on the tracker. The information that everything works fine for you is also valuable feedback 😄. For bug reports please follow “How to file a bug report” - I need logs and reproduction steps to fix issues, not just the information that something doesn’t work so make sure to fill out all fields of the issue template.

Thanks!

Depending on the feedback regarding this version I’ll look into fixing any observed regressions and bugs and pushing out a follow-up version as soon as possible and necessary.

Links


This is a companion discussion topic for the original entry at https://octoprint.org/blog/2020/07/06/new-release-candidate-1.4.1rc1/
2 Likes

Hi Gina!

Just installed it and sadly most of the plugins do not work any more.
I tried a system reboot, but no effect.
I can't reach the 3rd party plugins in the OctoPrint Settings and also not the settings below "Software Update".

1_4_1_logs.zip (103.8 KB)

grafik

This is how the Recource Monitor looks:
grafik

@Ewald_Ikemann Can you please try a hard reload in your browser (I can't see any errors in your log apart from one issues with Display ETA due to invalid python syntax, so it might just be a frontend issue) and if that doesn't help open a proper bug report? Thanks.

I used another browser (Opera instead of Firefox) and it works. :+1:

But the Settings of the plugins are still not accessible.
It appears, that all the settings below Software Update up to Pi Support are appended to the setup sections that are above Announcements. I tried that on different browsers.

Some examples:

Sounds like something got messed up with either the HTML templating or you have some severe javascript issues there. Please open a full bug report

Oh, wait, I just noticed you have it set to german. I switched my local installation to German too and can reproduce. So it's got something to do with the locale, probably some string that wasn't properly escaped somewhere. Stick to english for now, I'll fix that in 1.4.1rc2.

1 Like

I have updated to 1-4-1rc1 and experienced a few problems, to make a useful report I tried to switch back to 1.4.0 to make a few screenshots.

I can't get back to 1.4.0. I have switched the release channel back to stable and clicked "check for updates now" but the available octoprint version remains at 1.4.1rc1. Even a restart of octoprint hasn't changed the list.

Have I overlooked something or do I have to reinstall octopi?

I have downgraded with this instruction.

The Themeify plugin doesn't work anymore.
The FilamentManager doesn't get its list of spools, so no printing with it enabled.
The dashboard looks funny. "Job" and "Layer" are displayed although no print is running. EDIT: and there is a new PauseResume button, both actions with one click - awesome :wink:.

1.4.0:

1.4.1rc1

Cannot confirm issues with Themeify, it runs just fine here under 1.4.1rc1. No clue about the other third party plugins, I don't use any of those. Please report any issues with third party plugins to their authors, I can't fix any issues, only resolve backwards compatibility issues, but to identify those I need help from the plugin authors in question.

May it depend on the OctoPi version? With upgrading from 1.4.0 on 0.17.0 I had no issues.
I had my troubles with OctoPi 0.16.1

I have OctoPi 0.17.0.

The dashboard doesn't show the target and actual temperatures. The print-button on the dashboard doesn't work, the print-button on the left (state-panel?) works.

Maybe I have some dashboard modifying plugins installed.

Sending gcode from cura works.

With 1.4.0 I see some "analyzing" in the state-panel, with 1.4.1rc1 there is no "analyzing".

Printing works including pause and resume (from the state-panel).

I think the problem is else where.
I've got it running this way:

  • Make a backup of the current installation
  • Install OctoPi 0.17.0 on a SD card
  • Update to OctoPrint 1.4.1rc1
  • Restore the update.

I can confirm the Themeify problem. It is disabled and can't be enabled again when you update when Themeify is already installed. But when installed after upgrading, it works.

I hesitate to reinstall OctoPi because I had trouble to get the pi-cam working with correct orientation and resolution and I'm not certain to know what the necessary and successful steps were. :thinking:

My print is finished. Timelapse works.

The octoprint server burns > 100% cpu on a rpi 4b without stopping. Nothing to see in octoprint.log. Safe mode and serial logging disabled makes to difference. This cpu burning happens after the first print starts.

Hm... As I said, I have it on one of my instances and it stayed enabled across the update. In any case, should be reported to the plugin's author.

And also please please please report this kind of stuff in the feedback ticket and if needed in bug reports, as mentioned in the post. Having to check multiple places for possible issue reports makes keeping track of things so much harder for me and makes it so much more likely for something critical to be missed :confused: