On 6/25/19 12:25 PM, Miro Hrončok wrote:
On 25. 06. 19 12:07, Pierre-Yves Chibon wrote:
> On Tue, Jun 25, 2019 at 10:48:42AM +0200, Miro Hrončok wrote:
>> On 25. 06. 19 9:50, Pierre-Yves Chibon wrote:
>>>>>>>> I would say the scoping should happen (e.g. in copr)
first,
>>>>>>>> then we'll
>>>>>>>> know what the scope (and hence feasibility) of this
change
>>>>>>>> truly is.
>>>>>>>
>>>>>>> What will the scoping actually tell us? If it tells us that X
>>>>>>> hundred packages
>>>>>>> need to add BR for python3-test, we'll just do that and
report
>>>>>>> the list to
>>>>>>> upstream. We can do that during the mass rebuild.
>>>>>>
>>>>>> If there would indeed be X hundred packages affected, would this
>>>>>> move
>>>>>> still make sense? The python3-test subpackage is even larger
>>>>>> than most
>>>>>> of the rest of python3 combined, and the vast majority of it is
>>>>>> irrelevant to other packages. Such usage would indicate to me
that
>>>>>> some work needs to be done within the ecosystem to respect its
>>>>>> official
>>>>>> status as internal-only. (Perhaps, in that case, a move to
>>>>>> python3-
>>>>>> devel could be considered instead.)
>>>>>
>>>>> Good questions. What number of affected packages do you think
>>>>> would be crucial?
>>>>> I say X hundred, because I don't anticipate it will go to
>>>>> thousands. However
>>>>> with 3000 Python packages, couple hundreds is IMHO not a big
>>>>> deal. Note that
>>>>> this is build dependency, not a runtime one.
>>>>
>>>> Nevertheless, there has been a great deal of effort recently to
>>>> shrink
>>>> buildroots and speed up build times. Having to add BR:
>>>> python3-test to
>>>> packages would mean adding a download of ~9MiB and an installation of
>>>> ~3K files to every single affected package's build time. IMO this
>>>> needs to be fully scoped before consideration.
>>>
>>> Wait a minute, adding a BR python3-test would mean an additional
>>> 9MiB ok, but
>>> currently these files are part of python3-libs which *every
>>> packages* get.
>>> In other words, for the packages that require python3-test the
>>> amount of data
>>> downloaded doesn't change while for all the packages that do *not*
>>> require
>>> python3-test, the amount of data is reduced.
>>> This sounds like a win to me :)
>>
>> Unfortunately, this is not correct.
>>
>> python3-test already is large.
>>
>> We just move a small bit of python3-libs (test.support) and we move
>> it to
>> python3-test for consistency.
>>
>> test.support is 396K installed (for Python 3.8).
>
> Arf, then it's a lesser win than I thought.
> Have you considered doing a python3-test-support subpackage? This
> would allow
> the separate package and thus give you the information you're looking
> for as
> well as avoid downloading the entire python3-test for these few files.
The purpose of this change is to make packaging of Python easier and
avoid problems, when the test.support module cannot be properly used
without the rest of the test module. What you are proposing will make
packaging more complicated and would not eliminate the problems at all.
I think we are talking about couple packages here. Would it make sense
to have a number and say that if more than X packages suddenly need to
add BR for python3-test, we revert the change and consider a different
approach?
BTW python3-test is now buildrequired by 7 packages:
python-bz2file
python-honcho
python-iniparse
python-kitchen
python-typing-extensions
python-urwid
python-zodbpickle
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/