ARGH.  My bad :-(  Really sorry guys.  It's very simple what happened,
and in fact you already know most of it:

  - There was a long period of time in between the completion of the
    review and pushing to staging, due to my misunderstanding of the
    development process (which I will partially blame on the CG being
    incomplete ;-)

  - When I finally came to rebase my patches onto staging in order to
    be able to push them, there was a one-line merge conflict due
    David's patch providing the new $() syntax.

  - I read up on the change, and decided that I could resolve the
    conflict simply by taking his version and changing \super to
    \normal-size-super.  As I was already way over time budget on this
    whole series and the push was already late, I made a judgement
    call that this was all simple enough that I could get away without
    waiting another hour or two for a full build and run of the
    regression tests.  However while using kdiff3 to resolve the
    conflict, somehow (I'm guessing too many late night hacking
    sessions) I managed to totally screw it up.  I could have sworn I
    eyeballed the rebased patch after and thought it looked fine, but
    obviously it wasn't.

  - A few hours later I saw a mail from James saying that staging was
    not compiling, and I wondered if it might have been my fault, so
    I launched a build and saw the failure:

      
/home/adam/.GIT/3rd-party/lilypond/build/out/share/lilypond/current/scm/lily.scm:847:21:
Unbound variable: x00f8

    but I never touched lily.scm and this didn't look like it could be
    related to my changes, so I assumed someone else had broken it.

I definitely agree with Graham that there's no reason to panic about
this, since it arose due to a combination of unusual circumstances,
and if any single one of those was different, it would not have
happened.  There's certainly no reason to increase the red tape - in
fact one could argue that it was red tape which caused the latency
between review and push to staging in the first place.

I suggest the following morals to the story:

  - I underestimate my own capacity for making mistakes.

  - Untested work will empirically demonstrate Murphy's Law.

  - A slow build/test cycle encourages developers (or me, at least) to
    be sloppy.  I'm not sure I have a good solution for that though,
    other than perhaps substantially simplifying and optimizing the
    build system.

  - Cumbersome project tools encourage developers (or me, at least) to
    be sloppy.  If I hadn't gone so far over time budget due to the
    inadequacies of Rietveld and its lack of integration with the
    Google Code issue tracker, I most likely would not have been
    tempted to cut corners in testing.

  - It's really important that critical sections of the CG are
    complete and up to date.

  - The build error could have been better at pointing out the real
    culprit file (GOP 5?)

On Tue, Nov 29, 2011 at 3:09 AM, David Kastrup <d...@gnu.org> wrote:
> I backed out all of the jazz chord changes.  Since they were last in
> staging, this did not actually require a rebase.  This should likely be
> pretty painless.  It does have the disadvantage that anybody who already
> fetched them can accidentally push them back in without the git server
> complaining about this not being a fast forward.

Yup - I agree this is the best approach.  I'm building a fixed version
of the patch series as I type this, and will push as soon as I'm
convinced it's good, in order to minimise the risk of someone else
accidentally pushing the old series back in.

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to