guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A script to check an edit does not break anything


From: Edouard Klein
Subject: A script to check an edit does not break anything
Date: Thu, 11 Jun 2020 17:19:59 +0200
User-agent: mu4e 1.4.6; emacs 26.3

Dear Guixers,

I recently broke jupyter while updating python-prompt-toolkit (a mistake
I'm still trying to fix...) despite doing my best to follow the
instructions of the manual:
https://guix.gnu.org/manual/en/html_node/Packaging-Guidelines.html
https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html#Submitting-Patches

Because of the subtle consequences of editing a package are hard to keep
track of, I wrote the attached script (you need sharness to run it, but
with slight modification it can become a standalone script).

This script goes beyond the instructions of the manual on two fronts:
- First, it not only tries to build the packages, but also to install
them,
- Secondly, it does not limit itself to the dependents (as listed by
guix refresh --list-dependents) of the packages one is meddling with,
but to the whole reverse bags (as listed by guix graph
--type=reverse-bag).

Both these extensions are necessary to discover that my update broke the
jupyter package:
- jupyter builds, so if you don't try to install it you won't discover
it's broken
- the leafs of the dependency graph that depend on jupyter fail to build
for reasons unrelated to python-prompt-toolkit, so by just building the
leafs (which are what is being returned by guix refresh
--list-dependents) you can't discover jupyter's broken status.

I think an update of the manual is in order (I've added it to my own
TODO queue, but I have no idea when I'll be able to get to it) but I
first wanted to share my script in case it may be useful to someone
else, and gather some feedback as to whether other developers have
encountered these kind of errors, and the way seasoned developers make
sure they don't push breaking changes.

Cheers,

Edouard.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]