#160 How to handle Python/etc. mass rebuilds of modules
Opened a year ago by churchyard. Modified 10 days ago

When we update Python to a new version (3.N+1), we mass rebuild all the Python packages in Fedora and we pummel them until they are either rebuilt or retired.

See https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython for the current procedure, namely https://fedoraproject.org/wiki/SIGs/Python/UpgradingPython#Rebuild_everything_else

We do that in a side tag. We use repoquery to figure out what packages still need to be rebuilt.

We don't currently rebuild modules that depend on Python at all. We don't know how:

  1. We don't know how to query all modular packages on rawhide to figure out which need to be rebuilt.

  2. We don't know how to "rebuild such modules in the side tag" (or how achieve similar results). This is potentially especially problematic, if non-modular packages BuildRequire affected modular packages (even transitively).

See this e-mail on devel and the thread that is below that (don't know how to link a subthread, sorry).

Note: When I say "we", I mean the Fedora's Python SIG and/or Red Hat Python Maint, but it is currently usually done by me.


Given the recent synchronization of Python and Fedora schedules, we will most likely be usually doing this right after branching. This is both bad and good:

  • right after branching, there are no rawhide modules to query (until they are rebuilt)
  • the rawhide modules need to build in order to be created - if this happens after our side tag is merged, we don't need to track it - either they build with new Python or they don't exist

However, I would rather not use this as a long term strategy.

Metadata Update from @sgallagh:
- Issue priority set to: high
- Issue tagged with: Meeting

a year ago

Metadata Update from @asamalik:
- Issue untagged with: Meeting
- Issue tagged with: needs-design

a year ago

We have updated Python in rawhide to 3.9. I'd like to rebuild all rawhide modular streams that need it. I don't know what to do. Any advice?

Based on information from #165 I was able to identify the following modular packages that need to be rebuilt:

$ repoquery --setopt=*.module_hotfixes=yes --repo=rawhide-modular --whatrequires 'python(abi) = 3.8'  --whatrequires 'libpython3.8.so.1.0()(64bit)'
python3-aexpect-0:1.5.1-6.module_f33+8267+d222b029.noarch
python3-avocado-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-glib-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-golang-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-loader-yaml-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-output-html-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-result-upload-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-resultsdb-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-varianter-cit-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-varianter-pict-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-plugins-varianter-yaml-to-mux-0:79.0-1.module_f33+8897+4c9a3c59.noarch
python3-avocado-vt-0:77.0-2.module_f33+9012+f22a9456.noarch
python3-librealsense-devel-0:2.33.1-4.module_f33+8623+c2e7b150.x86_64

$ repoquery --setopt=*.module_hotfixes=yes --repo=rawhide-modular --whatrequires 'python(abi) = 3.8' --whatrequires 'libpython3.8.so.1.0()(64bit)' --source
avocado-vt-77.0-2.module_f33+9012+f22a9456.src.rpm
librealsense-2.33.1-4.module_f33+8623+c2e7b150.src.rpm
python-aexpect-1.5.1-6.module_f33+8267+d222b029.src.rpm
python-avocado-79.0-1.module_f33+8897+4c9a3c59.src.rpm

I have no idea how to proceed further.

We will be doing mass rebuild for Python 3.10 in ~1 month:

https://fedoraproject.org/wiki/Changes/Python3.10

Since there has been no new information here, we plan to ignore modules entirely. Let me know if we should do something else.

Login to comment on this ticket.

Metadata