Bug 1660921 - Switch python-avocado to Python 3
Summary: Switch python-avocado to Python 3
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-avocado
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Merlin Mathesius
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON3 PY2REMOVAL
TreeView+ depends on / blocked
 
Reported: 2018-12-19 15:26 UTC by Miro Hrončok
Modified: 2019-07-02 20:55 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-07-02 20:55:41 UTC
Type: Bug


Attachments (Terms of Use)

Description Miro Hrončok 2018-12-19 15:26:00 UTC
according to upstream's setup.py [1], avocado supports Python 3.

Please add python3-avocado packages and remove all **unneeded** (not required by anything) python2-avocado* packages from Fedora [2].

Python 2 support ends in 1 year and 12 days.

This should also allow meta-test-family and modularity-testing-framework to switch to Python 3 as well. Once that is done, please remove all python2-avocado* packages.

Thank you!

[1] https://github.com/avocado-framework/avocado/blob/master/setup.py
[2] https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal

Comment 1 Merlin Mathesius 2018-12-20 16:35:37 UTC
There should be nothing holding up meta-test-family and modularity-testing-framework from switching to Python 3. The "avocado:latest" module stream contains all of the Python 3 packages.

The "avocado:stable" module stream and non-modular avocado packages are both currently based on upstream avocado 52.0--which does NOT support Python 3. Thus, they are still Python 2 only, and will remain so.

Comment 2 Miro Hrončok 2018-12-20 22:41:21 UTC
meta-test-family and modularity-testing-framework are in rawhide and depend on the rawhide avocado packages.

This bug is about rawhide. If everything goes into a module, maybe the packages should be retired on rawhide.

Comment 3 Miro Hrončok 2018-12-20 22:42:58 UTC
I don't get this part:

> non-modular avocado packages ... are still Python 2 only, and will remain so.

For how long?

Comment 4 Merlin Mathesius 2018-12-20 23:20:51 UTC
(In reply to Miro Hrončok from comment #2)
> meta-test-family and modularity-testing-framework are in rawhide and depend
> on the rawhide avocado packages.
> 
> This bug is about rawhide. If everything goes into a module, maybe the
> packages should be retired on rawhide.

Sorry, I misunderstood. Yes, I'll look into the retirement of the non-modular packages from Rawhide.

(In reply to Miro Hrončok from comment #3)
> I don't get this part:
> 
> > non-modular avocado packages ... are still Python 2 only, and will remain so.
> 
> For how long?

Unknown.

The "avocado:stable" module stream and non-modular avocado packages are the same, and are tracking with avocado's most recent Long Term Stability release, 52.0, which is Python 2 only. (See https://avocado-framework.readthedocs.io/en/latest/rfcs/LongTermStability.html#long-term-stability-lts-releases)

LTS releases happen whenever the Avocado team feels the code is stable enough to be maintained for a longer period of time, with no fixed schedule. Thus, although it's been nearly 18 months since the most recent LTS release, there is not yet a new LTS release (with Python 3 support) to replace it.

Comment 5 Miro Hrončok 2018-12-20 23:31:35 UTC
Thanks for the info.

Comment 6 Merlin Mathesius 2019-01-09 17:26:50 UTC
I have received word that there should be a new upstream Long Term Stability release of avocado with Python 3 support available near the end of February.

Comment 7 Merlin Mathesius 2019-01-21 20:44:30 UTC
(In reply to Miro Hrončok from comment #2)
> meta-test-family and modularity-testing-framework are in rawhide and depend
> on the rawhide avocado packages.
> 
> This bug is about rawhide. If everything goes into a module, maybe the
> packages should be retired on rawhide.

FYI, the "avocado:stable" module stream has been set as the default in rawhide by https://pagure.io/releng/fedora-module-defaults/pull-request/41, and the corresponding non-modular "python-avocado" package has been retired in rawhide by https://src.fedoraproject.org/rpms/python-avocado/pull-request/7. However, as noted in comment #6, we're still awaiting the new upstream avocado LTS release with Python 3 support which will go into "avocado:stable".

Comment 8 Miro Hrončok 2019-01-21 22:24:39 UTC
What about the meta-test-family and modularity-testing-framework packages? They only need avocado on runtime, so they are good?

Comment 9 Merlin Mathesius 2019-01-22 17:14:10 UTC
(In reply to Miro Hrončok from comment #8)
> What about the meta-test-family and modularity-testing-framework packages?
> They only need avocado on runtime, so they are good?

Yes, they're good. Having the "avocado:stable" module stream set as default allows the modular versions of the avocado package dependencies to be pulled in automatically at install time.

Comment 10 Merlin Mathesius 2019-04-02 14:30:44 UTC
The latest upstream LTS release of avocado with full Python 3 support is currently available in the "avocado:69lts" module stream. PR https://pagure.io/releng/fedora-module-defaults/pull-request/81 has been created to make that the default stream in Rawhide.

Note: The old Python2-only "avocado:stable" stream name has been deprecated in favor of the name "avocado:52lts".

Is anything else needed to resolve this BZ?

Comment 11 Miro Hrončok 2019-04-02 15:58:09 UTC
I'd like to keep track of removal of all python2-avocado* packages as well. Can we keep this open until that happens?

Comment 12 Merlin Mathesius 2019-04-02 18:46:35 UTC
(In reply to Miro Hrončok from comment #11)
> I'd like to keep track of removal of all python2-avocado* packages as well.
> Can we keep this open until that happens?

Of course. The removal of Python 2 packages will happen in the next release of the module stream "avocado:latest", since upstream avocado started dismantling Python 2 support immediately after the recent 69.0 LTS release.

I've already had to start dropping several Python 2 sub-packages in F30 and Rawhide for the old module streams "avocado:52lts" and "avocado:latest" as the dependencies have been evaporating. After giving folks a little time to transition to the new "avocado:69lts" module stream, I'll finish dropping Python 2 support for all module streams in Rawhide.

Comment 13 Miro Hrončok 2019-05-11 23:49:59 UTC
Do you have a timeline for the "little time to transition" given to folks? It seems that the meta-test-family and modularity-testing-framework packages haven't got a (not automated) Fedora update in more than a year.

Comment 14 Merlin Mathesius 2019-07-02 18:54:16 UTC
The most recent "avocado:latest" module stream release is based upon upstream avocado 70.0--which is Python 3-only for all Fedora releases.

The "avocado:69lts" module stream based upon upstream avocado 69.x long term stability series has been made Python 3-only in F31, but continues to include Python 2 support in F29 and F30. It is also the default stream for F31.

The older "avocado:stable" and "avocado:52lts" module streams are Python 2-only and are being retired in F31. (https://pagure.io/releng/issue/8401)

The Python 3 transition for the avocado module is now complete.

Comment 15 Miro Hrončok 2019-07-02 20:55:41 UTC
Thanks!


Note You need to log in before you can comment on or make changes to this bug.