[Pkg-javascript-devel] Rebuilding of nodejs reverse dependencies

Paolo Greppi paolo.greppi at libpf.com
Thu Mar 17 14:10:31 GMT 2022


Hi Jérémy,

Il 17/03/22 13:26, Jérémy Lal ha scritto:
> ...
> 
>     So I ended up installing a gitlab-runner with nspawn-runner and a
>     semi-active server I maintain.
>     I documented the process here:
>     https://wiki.debian.org/Salsa/Doc/CustomRunners/SystemdNspawnRunner
>     <https://wiki.debian.org/Salsa/Doc/CustomRunners/SystemdNspawnRunner>
> 
>     salsa's driving that runner to rebuild the thousands of packages now.
>     Minimal build time is 1 minute, so it should take about two days to
>     rebuild the whole.
> 
>     After that, anyone knowing gitlab API and bugs.debian.org
>     <http://bugs.debian.org> API could help to open FTBFS bugs ?
> 
> I started this:
> https://salsa.debian.org/kapouer/dance 
> <https://salsa.debian.org/kapouer/dance>
> 
> to fetch logs of failed jobs, and also to be able to retry jobs that 
> failed because of external reasons
> (runner configuration issue, for example).
> When all jobs are finished, i'll start to use "dance" to send bug reports.
> 
> Jérémy

this is all super interesting. In the past I have done quite a few mass 
rebuilds of reverse dependencies using ratt 
(https://salsa.debian.org/debian/doxygen/-/wikis/ratt_doxygen_1.9.1-1_amd64%20partial%202)

Your approach is cool because it can be easier to automate.

To look at pipeline results programmatically I would have used this 
Python library:
- https://packages.debian.org/bullseye/python3-gitlab
- 
https://python-gitlab.readthedocs.io/en/stable/gl_objects/pipelines_and_jobs.html

But I see you plan to use JS for "dance".

Do you intend to trigger the dance from within the pipeline ? You'd then 
have a recursive pipeline ... who knows if it will finish in finite time ;-)

Anyway from my experience:

1. some rdeps reproducibly fail all the time, these should be excluded

2. ratt rebuilds failed rdeps against the previous version of the parent 
package (this filters out false positives), does your job definition do 
that as well ? (too lazy to check)

3. some rdeps take much longer to build than others, I ended up creating 
lists of "fast" and "slow" rdeps; if you only include "fast" ones your 
mass rebuild can run in hours instead of days, but may still be able to 
catch regressions

4. I used to create spreadsheets to compare build times and which rdep 
failed; for max fun it would be nice to have a database (!) where to 
store (stamp, parent_package, old_version, new_version, rdep, status, 
duration)

Paolo



More information about the Pkg-javascript-devel mailing list