Cylc-flow: Run test-battery against 3.5 instead of 3.7, and include 3.5 for unit tests

Created on 3 Apr 2019  路  6Comments  路  Source: cylc/cylc-flow

Hello,

Found in #3063 , a case where we are using a Python 3.7+ function, which broke Cylc in my Ubuntu LTS Python 3.6.

So, @cylc/core , at the moment we build Cylc master (i.e. Cylc 8) with:

  • 3.6 for unit tests
  • 3.7 for unit tests
  • 3.7 for functional tests

I have a vague memory that we were set to support Python 3.5 and greater? If so, perhaps we should have:

  • 3.5 for unit tests
  • 3.6 for unit tests
  • 3.7 for unit tests
  • 3.5 for functional tests

i.e. the lowest supported version for functional tests. As the latest versions should be backward compatible with 3.5 (perhaps a few warnings here and there, but nothing broken I reckon).

Running the functional tests against all version would be great too, but that would take too long.

Thoughts?

wontfix

Most helpful comment

I don't think we need to support 3.5 (I vaguely recall we decided to go "straight to the top", i.e. 3.7). But happy to take input from others on this - it depends what we think we can get away with at existing sites.

All 6 comments

I don't think we need to support 3.5 (I vaguely recall we decided to go "straight to the top", i.e. 3.7). But happy to take input from others on this - it depends what we think we can get away with at existing sites.

I think there are features we want to utilise at 3.7 (or 3.6?), off the top of my head.

I think there are features we want to utilise at 3.7 (or 3.6?), off the top of my head.

Yup, those f strings... I believe they are also Python 3.6. So 3.5 was probably ruled out. So looks like we are supporting just 3.6. and 3.7. now 馃憤 and if the consensus is to run functional tests with 3.7, +1 from me (@hjoliver 's argument convinced me)

BTW: I didn't purposely support 3.6 with the py3 conversion, I chucked it into the TB as it seemed to work so why not...

We may need to do a quick survey with existing site admins, explain and propose possible ways on how to deploy Cylc-8+ and its full stack of dependencies.

My current understanding is that we'll recommend deploying the full stack with Conda with Python 3.7. But what else do we need to support?

We may need to do a quick survey with existing site admins, ...

I'm somewhat reluctant to that. Wouldn't be surprised to get a bunch of divergent but equally strident opinions, difficult for us to support.

I'd prefer to settle on what we think is best (in due course, as we finish packaging and get all the basic components functioning - but probably pip or conda + 3.7 as you say). Then say "this is what you need to do if you want to use Cylc" ... plus support other ways (e.g. rpm, containers, ...) if we have the time and resources to do so.

Was this page helpful?
0 / 5 - 0 ratings