1. 42
    Pull Requests are Free Puppies ☶ video programming youtube.com

Lightly edited transcript of Richard Hipp, creator of SQLite, from 28'53":

Suppose you had a pull request for SQLite. "Hey, I've got this new feature for SQLite. Here's the pull request." When you want me to pull that into the tree, you say, "Oh, it's free."

No, it's not free. What you're doing is asking me - you've got this cool feature, and you want me to maintain it for you, to document it for you, to test it for you, to maintain it for you for the next twenty-five years. That's not free.

Linus Torvalds is famous for saying there's free as in beer and free as in speech. But there's another kind of freedom: free as in puppies. "Oh look, I've got a free puppy for you." You see where this is going?

A pull request is a free puppy. And then you've just got a kennel full of puppies at the end of the day. And you can't just throw them out - you're morally obligated to take care of them for their natural life.

I don't want any free puppies.

  1.  

    1. 10

      I believe the first person to come up with this metaphor was Scott Hanselman in 2006.

      https://www.hanselman.com/blog/sandcastle-microsoft-ctp-of-a-help-chm-file-generator-on-the-tails-of-the-death-of-ndoc

      We are blessed. This Open Source stuff is free. But it's free like a puppy. It takes years of care and feeding. You don't get to criticise a free puppy that you bring in to your home.

      1. 11

        My favorite Secret Fourth Option to the "Free as in beer /speech / puppy" trifecta is "free as in mattress": look, it's all yours if you really want it, but I'd prefer a little more assurance of where it came from before I sleep on it.

        1. [Comment removed by author]

        2. ~

          PRs often feel more like "pull requirements" than "pull requests"

          This "open source, closed contribution" model is going to continue gaining in popularity. Ladybird just did this: https://ladybird.org/posts/changing-how-we-develop-ladybird/

          1. ~

            I'm very curious to see how this goes. There's always been a continuum of requirements for accepting patches. To completely block them means there's no shared ownership, so the community will never be engaged, hurting adoption. Most open source projects are successful because the community has a direct say in the direction, or they're funded by a big corporation. I'm not convinced the project will ever be very popular as a result.

            I've also always thought ladybird was overly ambitious, and would never have the resources to build a competitive browser. So I'm likely biased.

          2. ~

            Ignores pull requests as a way of cultivating a talent pool to take over maintainership of a project if you step away. But maybe that transition is so rarely successful that it is fine to ignore it.

            1. ~

              but concurrent writes...