OMERO / Python 3 Rollout Plan

After recent questions regarding Python 3, a few first beta testers, and over 200 PRs, we’d like to get your feedback on the Python 3 rollout plan for OMERO covering the next few months. We’re happy to help developers migrate their scripts & plugins ASAP but it’s critical to have system administrators onboard as well. Read the Bad News below for why.

Roadmap

The current plan is to have a public milestone (either beta or release candidate) available in one month (early December) for deployment testing. A major component of that release will be the deployment guide for everyone to test and nitpick. We are primarily testing with the default Python 3.6 on CentOS 7 and some conda deployments. Help covering more platforms would be welcome.

Since the final update will require changing base packages on your deployment systems, we’d very much encourage everyone to give this a try before the general release is ready early 2020.

The Good News

Luckily, the upcoming OMERO version (currently planned as 5.6.0) will not be significantly different from 5.5. Other than the change of the base Python installation, there should be no significant hurdles:

  • No database upgrade is needed.
  • There are no changes in Java or Ice version.
  • API changes are minimal and only where forced by the differences between Python 2 and Python 3.
  • Updates to all the standard web plugins (e.g. figure, iviewer, parade, gallery, mapr) as well as cli plugins (e.g. duplicate, render) will be provided.

The Bad News

However, (you knew there was a catch) with the Python 2.7 countdown nearly counted down and support for OMERO’s current Django version (1.8) long since dropped, Python 2 will no longer be supported. All plugins, extensions, and user-code will need to be migrated.

As a result, all future security patches will only be available for OMERO 5.6 and greater. For your own safety, it will be imperative that you be ready to upgrade your OMERO installation early in 2020.

The @OMETeam

10 Likes

Happy to test this out at JAX!

1 Like

Great news. Thank you for the work. Will the client of this new OMERO python 5.6.0 be able to connect to older OMERO server versions?

1 Like

There’s an undocumented https://downloads.openmicroscopy.org/omero/5.6.0-m1 if you’d just like to jump into the deep end.

At the moment, it certainly can and we’ll try to keep it that way. The mostly likely cause of an incompatibility will be OpenSSL.

~J

Fantastic! I noticed you pushed the python3 changes to both the omero-server-docker & omero-web-docker repositories. These are building & passing my (limited) tests. :+1:

1 Like

Great to hear, @perlman. Thanks. (And welcome to image.sc :bouquet:)

Do you happen to have it a list of those API changes somewhere?

Hi @carandraug,

You can keep an eye on the respective changelog’s for anything critical, e.g.:

The biggest issue one is likely to run into is the str/unicode v unicode/bytes issue. Our plan is to have a general migration guide along with the release candidate including the type of changes we’ve made. Happy to do that on image.sc and/or github issues as a prelim though.

We plan to introduce something like mypy annotations for helping to detect bytes issues. Stay tuned.

~J.

P.S. There may also be a few module renames a la https://github.com/ome/omero-py/pull/123 before we’re done.

For anyone following along, there’s a fresh crop of releases:

as well as new images on Docker Hub:

and a conda channel:

As ever, feedback welcome. The @OMETeam

P.S. next round may start to move from dev to something exciting like beta or rc and should finally include some documentation.

1 Like

There have still been no major objections to the rollout plan above, so we’re moving forward – :trumpet: :drum: – a first public milestone of OMERO (5.6.0-m4) is now available for downloading and upgrade testing:

https://downloads.openmicroscopy.org/omero/5.6/artifacts/

We encourage those of you who will be testing the migration to start with the migration page:

https://docs.openmicroscopy.org/omero/5.6/sysadmins/python3-migration.html

As a reminder, support for Python 2 will be dropped with the final release of 5.6.0 early in 2020. We’d very much liked to hear if anything is unclear or doesn’t work on your particular setup. We plan to push out documentation updates as frequently as necessary.

All the best,
The @OMETeam

2 Likes