Patch Pilot Report 2011-03-07

Dave Walker DaveWalker at
Tue Mar 8 10:06:44 UTC 2011

On 08/03/11 02:45, Bryce Harrington wrote:
> 719324: ubuntu-geoip - GET should be uppercase
>          Already approved, uploaded and pushed to bzr trunk

I starting reviewing this one the other day and left it as a "Comment" 
rather than "Needs Fixing".  The proposed branch (now merged) edits the 
upstream code directly, but the package is of format 3.0 (quilt).  I 
admit I should have set a more appropriate review type.  Additionally, I 
commented that perhaps it should be contributed directly upstream 
(particularly as it's a package native to Ubuntu), and has a Ubuntu 
derived Vcs-* field defined in debian/control.

This means that the changes have been generated into an automagic patch 
in debian/patches/debian-changes-0.0.2-0ubuntu5.  Now we have a 
situation where what is in the archive [0], doesn't match what is in the 
UDD branch [1].

Last week, I had a similar situation where I dput'd and pushed to the 
UDD bzr at the same time, and someone else uploaded the same version 
bump around 10 minutes before me; causing mine to be rejected and theirs 
was now already accepted.

I was worried about this, so James Westby kindly explained that a branch 
mismatch between the archive and UDD should mean that the 
package-importer uncommits, land the version from the archive and raises 
a merge proposal for the delta (nice!), however there seems to be a bug 
at the moment.  Although, neither the Maintainer, Last Uploader or 
Signer (sponsor) is made aware of it automagically.

Now, this is a tricky situation because we have three differing 
branches.  Those that normally upload this package are no doubt 
expecting their Vcs-* branch to have trumps, so will continue committing 
there.  If they attempt to upload 0.0.2-0ubuntu4_0.0.2-0ubuntu5, they'll 
become aware that there is a difference by their package being 
rejected.  However, if they were to upload a new upstream version, the 
resolution that this bug was trying to address will be lost.

When I was reviewing this branch, I did try and reconcile the UDD 
ancestor based merge proposal and the ~ubuntu-desktop one, but lack of 
common ancestor and attempting to declare a base rev seemed to fail.... 
and for the small size of the patch, i gave up and suggested the merge 
proposal author rebase against the Vcs-* branch.  I was tempted to do 
this myself setting the --author tag appropriately, but there is a fine 
line between trying to be helpful (do the right thing), and doing too 
much.  Equally, I didn't feel comfortable committing to another teams 
branch, as I have commit access to lp:~ubuntu-desktop/* through 
inheritance of teams, rather than direct membership... which would mean 
raising a new merge proposal... which takes the original author out of 
the loop.

Another issue i'd like to raise that is related is UDD mismatches, there 
is an example here - not a major one, but another minimal example is 
[2].  A merge proposal author has gone to the effort of submitting code 
based on a UDD branch, which is the wrong version as the package-import 
failed; this means that somebody needs to reconcile the versions... 
without a current UDD branch, this is near impossible - which means 
reverting back to traditional development by creating a bzr based 
debdiff to apply to the the flat source... meaning that UDD has not won 
this situation.

I think what I am trying to raise, is some work flow process...

* With traditional development, we get a warning if we apt-get source 
and a Vcs-* field is set, with UDD we do not.
* If the UDD branches have diverged or are out of date, the contributor 
has no way on knowing without checking manually, via rmadison, 
launchpad, etc.  A contributor shouldn't have to do this manually, as 
its' easily missed and very frustrating.
* Additionally, I when merge+commit someone elses branch - I feel really 
rude making the bzr history look like it was my work..  Whilst I agree I 
would be the "merge author" (as in the person that decided to do it), I 
am not the person that did most of the work. It seems only appropriate 
to set the --author tag appropriately and therefore bzr marking myself 
as the committer for traceability.  I wish debcommit had native support 
for this, but instead of fixing this properly i've been lazy and written 
a crappy script[3] to automate this, which i call debcommit-sponsor (not 
really related to debcommit!)... bzr being awesome, pulls in the 
changelog difference in $EDITOR.


Kind Regards,
Dave Walker

More information about the ubuntu-devel mailing list