Bug 1312031 - Put all of the test module in the -test subpackage
Summary: Put all of the test module in the -test subpackage
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python3
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Lumír Balhar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1728780
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-02-25 15:02 UTC by Miro Hrončok
Modified: 2019-07-15 15:53 UTC (History)
7 users (show)

Fixed In Version: python3-3.7.4-3.fc31
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-07-15 15:53:29 UTC
Type: Bug


Attachments (Terms of Use)

Description Miro Hrončok 2016-02-25 15:02:27 UTC
Should we really have test module installed in python3-libs?

Isn't it self test suite?

Comment 1 Jan Kurik 2016-07-26 04:10:21 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 25 development cycle.
Changing version to '25'.

Comment 2 Charalampos Stratakis 2017-04-18 18:12:07 UTC
I guess we are talking about /usr/lib64/python3.5/test ?

Also we are shipping with python3-libs the idle tests at /usr/lib64/python3.5/idlelib/idle_test

I think this should be changed as well (assuming it won't break idle somehow).

Comment 3 Charalampos Stratakis 2017-04-19 12:29:15 UTC
Did some digging.


These lines exist at python3-libs package

%dir %{pylibdir}/test/
%dir %{pylibdir}/test/__pycache__/
%dir %{pylibdir}/test/support/
%dir %{pylibdir}/test/support/__pycache__/
%{pylibdir}/test/__init__.py
%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
%{pylibdir}/test/support/__init__.py
%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}

the test.support module is there due to bug 596258

Commit: http://pkgs.fedoraproject.org/cgit/rpms/python3.git/commit/?id=e1c7be02b9c4543cb0b26d6b9c02ea4d95fc3d4b

Now the rest of the lines have been propagated there from python2 package when the tests subpackage was actually created. Not sure if there is reason for that and/if we should change it.

Relevant commit:
http://pkgs.fedoraproject.org/cgit/rpms/python.git/commit/?id=860ed4856c8af7b8fc75f22f7b1dab5007b1e5a0

Comment 4 Fedora End Of Life 2017-11-16 19:09:26 UTC
This message is a reminder that Fedora 25 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 25. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '25'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 25 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 5 Charalampos Stratakis 2017-11-20 17:02:11 UTC
Still valid.

Comment 6 Petr Viktorin 2018-01-18 14:25:47 UTC
I don't understand what's wrong. Miro, could you clarify what the problem is?

Comment 7 Miro Hrončok 2018-01-18 14:39:38 UTC
Note to self: be more verbose.

I'll revisit the content of test/libs and be more specific or close this.

Comment 8 Miro Hrončok 2018-02-15 14:55:25 UTC
I have no idea. Sorry.

Comment 9 Petr Viktorin 2019-03-27 15:17:02 UTC
OK, I now remember what's wrong.
Re-opening this, as it's relevant for PEP 949.


All of test module, including support, should be in the `python3-test` package.
[The documentation] says test.support is not a public module. Other things should not depend on it, and if something is useful outside the CPython test suite, we should ideally take it out of test.support.

How much breakage would there be if we move test.support to -test?


[The documentation]: https://docs.python.org/3/library/test.html#module-test.support

Comment 10 Miro Hrončok 2019-03-27 15:37:33 UTC
I remember test.support usage in upstream project tests. However if it is not support, it is not supported.

I can imagine a small self-contained change (mostly so we make sure packagers are aware of this and we have a release note point) and move everything to -test.

A workaround for the package maintainer is to BR python3-test. For the user, the workaround is to install it. This could actually help upstream to find out where and how are the bits used.

So yes, let's do this for Fedora 31 - we are breaking things anyway (Sphinx 2, pyetst 4, Python 3.8).

Comment 11 Miro Hrončok 2019-03-27 15:49:34 UTC
> However if it is not support, it is not supported.

I meant to type: If such usage is not supported, it is not supported.

Comment 12 Miro Hrončok 2019-04-02 13:10:02 UTC
For reference:

https://fedoraproject.org/wiki/Releases/31/Schedule

2019-07-23	Change Checkpoint: Proposal submission deadline (Self Contained Changes)

Comment 13 Miro Hrončok 2019-04-12 08:54:15 UTC
Just a note: gevent uses test.support very much:

https://github.com/gevent/gevent/tree/master/src/greentest/3.7

Comment 14 Lumír Balhar 2019-06-24 07:55:07 UTC
The first draft of a self-contained change: https://fedoraproject.org/wiki/Changes/Unification_of_placement_of_Python_test_modules

I am going to find all test modules, place them in the -test subpackage and do some testing.

Is there anybody who would like to work on it with me?

Comment 15 Miro Hrončok 2019-06-24 08:09:33 UTC
Thanks. I can work with you as a reviewer etc.

I suggest to mention test.support in the detailed description (as the most significant example of this).

Comment 16 Lumír Balhar 2019-06-24 09:13:46 UTC
After a quick meeting with Petr, it seems that the change can be rewritten with less general wording because it's applicable only on test.support module. Tkinter has tests in -test subpackage already and if we'd want to move also tests of idle there, it'd be better to do it in upstream.

I'll provide a new proposal in a while.

Comment 17 Petr Viktorin 2019-06-24 09:22:55 UTC
On a higher level, the chat was about what the `python3-test` means: I argued for "the `test` module", rather than "all of CPython's tests".

Split along modules/directories makes the packaging more straightforward and to align with upstream. (For IDLE tests, it might be aligning with an upstream bug -- but that's better solved upstream, if at all).

Comment 18 Lumír Balhar 2019-06-24 09:30:57 UTC
A new version of change proposal: https://fedoraproject.org/wiki/Changes/Move_test.support_module_to_python3-test_subpackage

Comment 19 Miro Hrončok 2019-06-24 09:36:32 UTC
I like this new change more, thanks!

However, please add more into "Benefit to Fedora". Namely, Ir recommend digging out and linking some old bugs where parts of the test.support module were in -libs and parts in -test and it made it broken. The main benefit here is that moving it all to -test is less fragile and more consistent.

I also recommend quoting Petr with:

"[The documentation] says test.support is not a public module. Other things should not depend on it, and if something is useful outside the CPython test suite, we should ideally take it out of test.support."

Comment 20 Lumír Balhar 2019-06-24 12:19:33 UTC
(In reply to Miro Hrončok from comment #19)
> I like this new change more, thanks!
> 
> However, please add more into "Benefit to Fedora". Namely, Ir recommend
> digging out and linking some old bugs where parts of the test.support module
> were in -libs and parts in -test and it made it broken. The main benefit
> here is that moving it all to -test is less fragile and more consistent.
> 
> I also recommend quoting Petr with:
> 
> "[The documentation] says test.support is not a public module. Other things
> should not depend on it, and if something is useful outside the CPython test
> suite, we should ideally take it out of test.support."

Updated.

Comment 21 Miro Hrončok 2019-06-24 12:27:17 UTC
LGTM, from my POV, ready to be presented to the wrangler.

Comment 22 Lumír Balhar 2019-06-24 12:52:26 UTC
The state switched to "ChangeReadyForWrangler".

Comment 23 Lumír Balhar 2019-06-28 08:08:58 UTC
Sharing the same info about the impact of the change as I sent recently to the devel@ mailing list:

I am bringing here some numbers which help us to understand that the change won't affect a lot of packages.

I've prepared a special COPR [0] where test.support module is not available at all and then I rebuilt all Python packages. From 2952 packages 2769 built successfully and only 182 failed. Most failures were caused by missing dependencies (python2-), incompatible pytest or sphinx version, etc. and only 7 packages fail to build because of the missing test.support module. From those 7 packages, 4 already require python3-test so there will be need to change only 3 packages after we'll move test.support module from python3-libs to python3-test.

[0] https://copr.fedorainfracloud.org/coprs/lbalhar/test.support_change/


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