Today on my SRU shift I spent some effort trying to see past quilt diff
noise. Most of it seemed unnecessary and was only present because of
gratuitous refreshes.

I'm not sure we have best practices are documented anywhere. I'd like to
define some guidelines that make reviews easier. I think many people
stick to these already. Can we agree that they're a good thing and try
to get more people to do them?

Summary

1. Use dep3 headers (https://dep-team.pages.debian.net/deps/dep3/)

2. Use "-p ab --no-timestamps --no-index" or equivalent (as documented at
https://wiki.debian.org/UsingQuilt#Environment_variables).

3. Try not to update or refresh any quilt patch unless specifically
required (ie. a patch doesn't apply, or applies with fuzz). Exception:
do update dep3 headers.

Details and rationale:

1. Use dep3 headers (https://dep-team.pages.debian.net/deps/dep3/)

This makes it easy for reviewers to correlate the patch against
upstream, find any related upstream commentary or subsequent related
commits, etc.

2. Use "-p ab --no-timestamps --no-index" or equivalent (as documented at
https://wiki.debian.org/UsingQuilt#Environment_variables).

This reduces diff noise in the future if an update becomes required.

Exception: if taking the patch from upstream and it applies as-is, then
using the upstream form of the patch reduces the initial diff further,
so that's preferable. So this combines with 3: use these settings when a
refresh is required or generating the patch from scratch, but don't
refresh to apply the settings to reduce noise unless actually required.

3. Try not to update or refresh any quilt patch unless specifically
required (ie. a patch doesn't apply, or applies with fuzz). Exception:
do update dep3 headers.

This reduces the size of any diff taken against any other version of the
quilt patch. Hopefully to zero.

If one patch needs refreshing, refresh just that one rather than all of
them.

If a patch applies with offset, that's not a reason to refresh it.

Example 1: you can append ".patch" to an upstream Github URL, download
that to debian/patches/, rename and add dep3 headers but without
modifying the patch itself. Then a reviewer can  look at the dep3
header, identify that the origin was GitHub, diff against that same URL,
and easily confirm that the patch hasn't been modified.

Example 2: if I'm reviewing an SRU to multiple releases and the quilt
patches are exactly identical, then I only have to review the patch
itself once[1]. But if you've unnecessarily refreshed the patch on each
upload, now I have a bunch of noise I have to review to verify that there
is no functional change introduced.

Does this sound reasonable to everyone to follow in general, such that
we can document these as guidelines somewhere? I wouldn't expect them to
be enforced as a hard rule, but once documented I also think it'd be
reasonable for any reviewer to choose to push back where non-adherence
is causing an actual problem.

Anything to change, or anything to add?

Thanks,

Robie


[1] The context outside the patch itself might be different and I do
have to consider that too, but if I know the patches are identical, that
is also made easier.

Attachment: signature.asc
Description: PGP signature

-- 
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