← Back to team overview

launchpad-dev team mailing list archive

Re: Thoughts about forks and patches, esp. in LP eggs

 

On 03/30/12 16:27, Robert Collins wrote:
I have a few questions inspired by the events that lead to at least
two of our forks, and various experiences in Ubuntu.

How do we preserve our velocity while working with upstream? Do we
wait for upstream to be totally happy before we move forward? Do we
monkey patch? Do we have a transient fork?

What should we do when upstream are hard to work with? E.g.: they've
broken API compatibility in trunk and our patches vs trunk are totally
different to patches vs what we are using, and upgrading what we're
using is nontrivial .... and trunk isn't releasable? Or what if they
only release once a year, or if they really don't want our patch? Or
if they want to polish the patch a great deal more than we need it
polished, before they'll consider landing it?

I've experienced some of the frustrations you allude to here as well (and really great upstream experiences, of course).

Most of the observations and questions from my email were of the "well, you've decided to fork, now what" variety. The observations lead to one approach to answering the questions you give here: you should put up with the difficulties of working with upstream until you estimate that the long-term cost of maintaining a *good* fork (branches updated, tests maintained, new tests added) seems less. That's a pretty big cost, but I can think of at least a couple of instances in which it might have been arguably less.

What if upstream aren't in bzr? How do we 'make a branch' there?

(Thanks to imports, that's usually not a big problem IME. I can imagine exceptions.)

Would we upgrade a dependency for a service that is working fine and
has no other work planned for it?

As I said, our current inclination is approximately what someone advocated (and reportedly practiced) in canonical-tech: if the upstream is healthy and moving, yes, upgrade regularly. It should be a big, conscious decision not to do so.

That's my current guess. <shrug>

Gary


References