I was on my first +1 maintenance shift last week. I began the week
with some reading of +1 report of the past shifts, to get a basic idea
of what to do and how to do it.

First thing, I retriggered tests related to a proposed migration
excuse bug that I had fixed just before my +1:
- onionshare vs. python3-werkzeug
- lektor vs. python3-werkzeug
They passed. But I learnt that a run prior to mine had also passed and
python3-werkzeug was no longer blocked.

I ran the find-proposed-cluster script from the ubuntu-archive tools
package. Though I was aware of the python3 and perl transition
clusters in noble-proposed, I was curious about the script output.

I realize that universe packages are the primary target of +1 shifts.
But because the Perl & Python migrations are critical at this moment,
I decided to split my time between universe packages, Python 3.12
migration excuses and Perl 5.38 migration excuses.

*** Perl 5.38 migration excuses ***

=== ldap-account-manager ===
The package produces two binaries, only one of which is Perl-based.
The autopkgtests failed because a new upstream release brings in a new
PHP-dependency, for the other binary. This didn't seem like a
Perl-blocker. I wrote up a bug report [1]. I later realized that
vorlon triggered autopkgtests with the right targets and cleaned this
up from the list.

[1] https://bugs.launchpad.net/ubuntu/+source/ldap-account-manager/+bug/2051559

=== libmonitoring-livestatus-perl ===
I investigated an autopkgtest failure [2] which is reported on arm64,
but failed intermittently on my amd64 setup too. It's a flaky test
that depends on the output of the `ps` command. I think it has now
been marked as a badtest (through a different investigation by
vorlon/ginggs).

[2] 
https://git.launchpad.net/ubuntu/+source/libmonitoring-livestatus-perl/tree/t/23-Monitoring-Livestatus-BigData.t

*** Misc universe packages ***

=== ccache ===
Autopkgtests fail because a new upstream change causes uncaught
exceptions which bring down the ccache utility with a SIGABRT.
Interestingly, the test which core-dumps is deemed as passed, but the
core-dump messages on stderr cause tests to fail.

I started a discussion on the upstream repository, which was later
accepted as a bug [3] and there is a fix committed. The upstream
maintainer, who also happens to maintain the Debian package mentioned
on the Debian bug report [4] that the fix will be out through a new
upstream release next week. Just in case, it doesn't happen, I have a
merge-proposal with a work-around [5].

[3] https://github.com/ccache/ccache/discussions/1390
[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1062810
[5] 
https://code.launchpad.net/~pushkarnk/ubuntu/+source/ccache/+git/ccache/+merge/459639


=== asterisk-espeak ===
This package represents an asterisk module related to speech
synthesis. The failing test just tried to load the module into
asterisk, but failed. I have an Ubuntu merge proposal [6] as well as a
Debian merge request [7] for this. Please read the connected bug
reports for more details.

[6] 
https://code.launchpad.net/~pushkarnk/ubuntu/+source/asterisk-espeak/+git/asterisk-espeak/+merge/459769
[7] https://salsa.debian.org/pkg-voip-team/asterisk-espeak/-/merge_requests/2


*** Python 3.12 migration ***

=== faiss ===
The failing autopkgtests indicated a disutils dependency. I filed a
bug report [8] and was trying to backport an upstream change when I
realised that faiss fails to build from source in noble. Most likely
it is the swig 4.2.0 (now released) that does not generate a couple of
faiss' Python bindings. I filed an Ubuntu bug report [9] (a Debian
report exists [10]) and an upstream bug report [11].

[8] https://bugs.launchpad.net/ubuntu/+source/faiss/+bug/2052041
[9] https://bugs.launchpad.net/ubuntu/+source/faiss/+bug/2052017
[10] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1061741
[11] https://github.com/facebookresearch/faiss/issues/3239

=== flye ===
Autopkgtests for flye failed because Python 3.12 removed support for
find_module(), replacing it with find_spec() for path-based module
finders [12]. A vendored dependency of flye uses find_module() which
fails to load a module causing an import failure. I submitted an
upstream pull-request [13]. While filing a Debian bug report, I
realized that a new Debian package release with the vendored
dependency removed was done on the same day [14].

[12] https://docs.python.org/3/reference/import.html#the-meta-path
[13] https://github.com/fenderglass/Flye/pull/670
[14] https://launchpad.net/ubuntu/+source/flye/2.9.3+dfsg2-1

=== freedombox/bootstrapform ===
The freedombox package depends on bootstrapform. Autopkgtests of the
former fail because the latter imports distutils. I did a Debian MR
[15] to replace distutils.StrictVersion with packaging.Version. But I
now see bootstrapform also failing, independent of this merge request,
with Python 3.12. Test pipelines on the MR are failing and this needs
more investigation.

[15] 
https://salsa.debian.org/freedombox-team/python-django-bootstrap-form/-/merge_requests/4

=== glueviz ===
This needs a migration from package "imp", which was purged in Python
3.12, to package "importlib". I submitted a Debian merge request [16]
for it.

[16] https://salsa.debian.org/debian-astro-team/glue/-/merge_requests/3

=== factory-boy ===
An autopkgtest of factory-boy, evidently picks up zero tests to run,
at least since the past four releases. In Python 3.12, the behaviour
of package "unittest" was modified to return failure (exit code 5) if
zero tests were selected. As a result, the factory-boy autopkgtest
began failing. I submitted a Debian merge request [17].

[17] 
https://salsa.debian.org/python-team/packages/factory-boy/-/merge_requests/1

It was a nice experience. Given my limited experience with distro
packages prior to this shift, I must say I learnt a lot!

Thanks for reading!
 - Pushkar

-- 
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

Reply via email to