Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1660921

Summary: Switch python-avocado to Python 3
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-avocadoAssignee: Merlin Mathesius <mmathesi>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mmathesi
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-07-02 20:55:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1285816, 1625773    

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!