New release candidate: 1.5.0rc1

Work on OctoPrint continues on even though the world out there is crazier and scarier than the normal, and I’m happy to hereby present you the first release candidate of the upcoming 1.5.0 release.

“Wait, 1.5.0 already?” you might say, “You just released 1.4.0 earlier this year!” That’s correct - OctoPrint’s versioning has slightly changed and now fully adheres to the ideas behind semantic versioning, as-in, the so called PATCH number (the 0 in 1.5.0) will now only increase for releases containing bugfixes only. Instead, for the usual maintenance releases that contain improvements, fixes and the one or other new feature, the MINOR number (the 5 in 1.5.0) will increase from now on. Finally, backwards incompatible changes will increase the MAJOR number (the 1 in 1.5.0) - in OctoPrint’s specific case that will mean dropping Python 2 support in the not so distant future.

So, from 1.4.2 to 1.5.0 this makes a MINOR number increase and thus you can expect more than just bug fixes in this one :) Let’s have a look at some of the highlights from the changelog, shall we?

  • Access Control is now mandatory and no longer can be disabled. If you so far had it disabled, upon upgrading to 1.5.0, OctoPrint will prompt you to create a username and password for the (first) admin user. This step was sadly necessary as too many people still will happily expose their completely unsecured OctoPrint instance on the public internet, causing additional support overhead from both attacked users and security researchers.
  • A new recovery page is available under /recovery/ that gives access to configured system commands, backups, basic printer controls and the new system information (see below), even if the main UI is no longer functional. This will hopefully help in case of a third party plugin or a misconfiguration messing with the core UI so much it is no longer usable.
  • A new system information screen is available from footer, settings dialog and recovery page. It provides information on the system OctoPrint is running on that’s invalubale for support and issue analysis and will soon be asked for in support requests and bug reports. A one-click copy-paste link is provided.
  • OctoPrint will now detect when there are too many resend requests being generated by the printer (default: more than 10% of transmitted lines getting a resend request as response) and display a prominent warning to help identify communication issues causing print failures.
  • The bundled Software Update plugin now supports release channels for third party plugins, individually disabling notifications per update check and also update information overlays served from plugins.octoprint.org that will make future maintainer changes of plugins less cumbersome for all involved. Plugin developers probably want to take a look at the docs to learn how to make use of release channels.
  • A new event plugin_backup_backup_created will be triggered on backup creation. Allows third party plugins to perform certain actions on backup creation, e.g. saving them to a cloud provider like GDrive as displayed by the Google Drive Backup plugin.
  • A terminal filter configuration for the busy protocol now comes preconfigured. If you have modified your stock terminal filters, you’ll have to add this manually, using name “Suppress processing responses” and regex Recv: (echo:\s*)?busy:\s*processing.
  • Support has been added for reading the long filename from M20 if included or adding it from a plugin (e.g. one that utilizes a storm of M33 to fetch all long names, proof of concept here). Please note: That’s the only way M33 will ever be supported in OctoPrint, as it is utterly the wrong way to go about fetching long names for a list of files of unknown size, so stop asking about it now please ;)
  • The whole code base now uses black, prettier, isort, pre-commit and a bunch of custom pre-commit hooks to ensure consistent formatting and enforcement thereof. For anyone doing development, a file containing revs to ignore by git blame is included so this should hopefully not nuke the usefulness of that as long as a current git version is used, set it up via git config blame.ignoreRevsFile .git-blame-ignore-revs.
  • New plugin timings logging feature. If enabled (via Settings > Server > Debug options) this will write two new files to the logging dir, plugintimings.log and plugintimings.csv, which contain timing information for each and every hook or implementation call on plugins registered with OctoPrint. This should be helpful to debug any kind of performance issues caused by third party plugins. It should also be a valuable tool to debug performance issues with bundled plugins.
  • Several dependencies have been upgraded, most prominently Font Awesome, which is now bundled in version 5. A compatibility layer should ensure that plugins still relying on 4.x icon and class names will continue to work as expected.
  • A big number of bug fixes, among which is a fix for cancelling/pausing taking too long, a fix in the plugin manager to remove timeout issues when installing huge plugins, a fix for M876 not force sending while printing, a fix for installation of tar.gz plugins and plugin installation under Windows, several performance improvements and much much more.

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! And a big Thank You to @chudsaviet, @coldtobi, @cp2004, @frenck, @j7126, @jneilliii, @ManuelMcLure, @mjrider, @OllisGit, @shaver, @Sophist-UK and @urish for their PRs!

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: 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/11/10/new-release-candidate-1.5.0rc1/
1 Like

Wooohoo
Good job @foosel :slight_smile:

1 Like

Should this work with the OctoPi 0.18.0rc1? (If I'm going to test, I might as well test everything at once).

Yes, it should. And at least updating the 1.4.2 on that to the RC worked in my own test (I made this scenario part of my upgrade test matrix).

For those of us that moved to Python3, are there any extra steps to take before or after to ensure the upgrade goes good and to make sure it’s still on Python3 on the other side of the upgrade?

Edit: I figured I would just backup and do the update. It went through just fine and I’m on python 3 afterwards. Took about 5 seconds to download and install and 5 more seconds to restart. Not sure if it’s a placebo, but it seems to load much faster. Feels like 30% faster. Settings for loads instantly and I’m pretty sure it would take a second before.

1 Like

Hi, how do I update to this release? I am running OctoPrint on a Pi4 and the stable version did not start all the time, the advice was to install the latest RC, but it doesn't show in the software update plugin, maybe a good thing to implement... :slight_smile:

Thank you in advance!

Kind regards

Richard

Hello @riochicken!

by whom?
Is it OctoPrint that does not start or OctoPi?

You have to activate the rc-update: Software Updates -> Plugin Configuration -> OctoPrint Release Channel -> Maintenance RCs

1 Like

There's an FAQ entry of how to test release candidates :point_up_2:

1 Like

Along with all the other great changes, I am really happy to hear about Access Control being mandatory now. Not just for the sake of silly people who disable it and expose their servers publicly, that is great. But it seems aftermarket products that come with an "all-in-one" image that includes octoprint and their own software for the buyer/user to flash onto an SD card, don't necessarily pay attention to what state octoprint is in when they wrap it up, potentially confusing new users. This actually happened to me...twice. My MCU sells a board designed to be easy for newbies to work with and their SD image includes Klipper and Octoprint. But when they wrapped up the image, they forgot they had disabled access control (likely so they could install the octoklipper plugin), and did not go back into the octoprint.yaml to re-enable it. This confused the heck out of me until I learned how to re-enable the first run wizard! In any case, this is great thanks!

2 Likes

I really want the Windows update / plugin functionality that this contains, but I also want my prints to still work but I won't mind minor UI glitches etc.

I fully understand that this is a release candidate and may have bugs, but it would help to have some idea of whether it is reasonably stable or extremely flaky.

Since on Windows the update functionality doesn't work, can someone please provide a URL and / or instructions on how to download and install the 1.5 release candidate manually?

Are we required to upgrade from Py2 to Py3 for 1.5?

From my own personal experience and from what I've seen in Discord this rc candidate is stable and fully operational. You may want to wait until next week, there are a couple of bugs that have been fixed already that wouldn't effect most people but depends on what plugins/etc. you have installed.

No

Windows specific, others can just switch the release channel in the settings as described in the blog post
If you activate your virtual environment, you can run:

  • pip install octoprint --pre - note you may have to add --no-cache-dir if it doesn't pick up the pre release.
  • pip install octoprint==1.5.0rc1

It is stable, there are a couple of minor bugs in the release that will be fixed for RC2: Issues with label 'Regression'

Yeah found it a moment later, silly me... thanks for the reply!!

@jneilliii: Found that Tab Order lost an icon in the Tab bar and the setup menu almost is empty. Is it maybe because of implementing of Font Awesome 5?

Install the RC version from the github repo.

1 Like