Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Soliciting donations from the command line #4644

Closed
claui opened this issue Aug 9, 2018 · 27 comments
Closed

Soliciting donations from the command line #4644

claui opened this issue Aug 9, 2018 · 27 comments
Assignees
Labels
discussion Input solicited from others features New features

Comments

@claui
Copy link
Contributor

claui commented Aug 9, 2018

A Twitter user suggests that we ask for donations via CLI like a number of other programs do.

homebrew clearly just needs to print one of those fancy "donate now" logs at the end of every install

Example from preact

@Homebrew/maintainers Is that worth a discussion? Some random thoughts from me:

Thoughts

  • One message on every install would be way too much.
  • One message in 1 out of 10 invocations of brew install may be more appropriate.
  • The message text would e. g. include the Patreon link.
  • Or, the message could invite users to run brew donate (which would open the Patreon URL.) A subcommand sounds silly but may actually help with conversion; people are curious, and we already know our users are CLI persons.
  • We’d ideally use stderr for this so we don’t break user-side scripts. (Not that we’d support those but to minimize support requests.)
  • To opt out, users may set HOMEBREW_NO_NAGGING=1, no matter whether they have donated or not.

Pros

Cons

  • Some users will be upset, no matter how we do it.
  • Angry users → unproductive support requests.
  • Not sure if a command-line tool really needs a personality. (For example, I avoid Yeoman precisely because of that.)
  • I like things predictable. Random nagging messages aren’t.
  • May break quite a large number of tests.
  • I’d disable nagging on my own systems in a heartbeat. (Not because I’m a soulless person; I simply hate unnecessary cognitive load.)
  • No data or experience as to whether nagging actually leads to more donations.
@claui claui added features New features discussion Input solicited from others labels Aug 9, 2018
@fxcoudert
Copy link
Member

This is very very hard to get right. We need to choose the right amount of nagging, to be quite low (even every 10 installs will be quite a lot for many users). And we would probably need to have a plan with what we want to do with the money: people would be more interested to contribute to specific projects/plans for Homebrew's future.

Even if we can get it right, I am not sure we should do it. I would not be in favour, personally.

@SMillerDev
Copy link
Member

I think it might help, even though I'm fully on board with:

I’d disable nagging on my own systems in a heartbeat. (Not because I’m a soulless person; I simply hate unnecessary cognitive load.)

I agree with:

And we would probably need to have a plan with what we want to do with the money: people would be more interested to contribute to specific projects/plans for Homebrew's future.

It is indeed a very difficult thing to do, especially with homebrew mostly installing things people expect to happen anyway, I think I would be in favor of a donation request with a clear goal. (maybe even specifying that this would go towards security?)

@woodruffw
Copy link
Member

I like the idea of a brew donate or other relatively unintrusive messaging. One idea would be an additional comment added to the file opened by brew create -- users are expected to delete the comments we leave before submitting anyways, so that's guaranteed to get at least some attention.

We might also want to look into adding messages to the Discourse instance and main website, since (IME) people tend to view those as less nagging. But that's also potentially out-of-scope for this issue.

@SMillerDev
Copy link
Member

I think a fully documented brew donate might not be a bad idea either way. Just making it easier to donate.

@DomT4
Copy link
Member

DomT4 commented Aug 9, 2018

Not sure if a command-line tool really needs a personality. (For example, I avoid Yeoman precisely because of that.)

Homebrew already has a bit of a personality, which is potentially either a positive or a negative addition to this factor. The whole brew theme around where kegs are stored being the Cellar and formulae being poured from bottles and so on. It's been toned back a little over the years but the gentle wink towards beer lends itself to more cheekiness, as such, than most package managers.

One message in 1 out of 10 invocations of brew install may be more appropriate.

I think even this is too much. If we go down this route I'd really only like to "nag" users as part of the installation process. We already tell users as part of installation about analytics and how to disable it if desired, so I think that'd be a reasonable place to also stick a message like:

We really appreciate you using Homebrew. If you find Homebrew useful & want to support the project we welcome code contributions or you can set up a small regular donation here: https://www.patreon.com/homebrew. Thank you!

I don't have a firm objection to something like a brew donate command, but I don't think we should be prodding users for money too often. Ultimately I think Homebrew as a project suffers more from being used but not supported by major corporate entities than it does Alexandria, Chloe & Taylor not donating $1 a month each, and major corporate users will generally respond better to a direct approach I suspect.

@retokromer
Copy link
Contributor

One message in 1 out of 10 invocations of brew install may be more appropriate.

con: you have to track users

Alternate solution: randomly, in average each N invocations of brew install.

@reitermarkus
Copy link
Member

We could add it to brew help, since donating helps Homebrew. 😉

@developit
Copy link

developit commented Aug 9, 2018

Hiya! I'll add some context to my Twitter suggestion: why the funding is useful and why OpenCollective. Personally I think it would be best to print that out during installation and updating of Homebrew, not during usage. People who install and update often are the most likely to appreciate and donate.

@MikeMcQuaid
Copy link
Member

I'd say we output this the same places we output analytics messages i.e. on install and a single time for all current installs when they are on a TTY (storing that we've shown it to them in git config). Nagging multiple times will just be annoying for people (myself included). Thoughts?

@MikeMcQuaid
Copy link
Member

why the funding is useful and why OpenCollective.

It's worth noting that the OpenCollective low-bureacracy model is less useful for us as we're already part of the Software Freedom Conservancy, a 501c3 and the Homebrew project have physical assets.

@emroch
Copy link

emroch commented Aug 9, 2018

I agree with @developit that Homebrew installation and brew update are probably the best places to put a message like this. Putting it in brew install will ultimately hit the users who need to install some helper utility or library dependency, potentially as a one-off thing for some other program. These aren't necessarily committed users, so showing them a donate link may turn them away in the future.

However, like developit said, users who run brew update are likely returning over and over, and might be more likely to donate. Perhaps the number of times a user has updated could be recorded somewhere and only after 5 updates is the message shown?

I also think adding a "NO_NAGGING" option is important, because there will inevitably be people who don't like it, no matter how unobtrusive it is.

@SMillerDev
Copy link
Member

How about showing it after adding a tap? I'd say it's usually a sign that you're using homebrew more than just casually. And it doesn't happen all that often.

@MikeMcQuaid
Copy link
Member

I'd really like that we show it to users literally once and then not again. I really don't think non-trivial numbers of people who are disinclined the first time will consider if future times.

It's worth noting that I've been contacted a few times about making Homebrew websites advertising supported and always shot it down because I don't believe in a detrimental user experience just to make us more money. I think the same principle applies here; there's a difference between telling people who don't know they even can donate and asking people to donate multiple times.

@vitorgalvao
Copy link
Member

Regarding donations from users versus companies, I remember Patrick McKenzie (@patio11) mentioning selling commercial licenses instead of asking for donations but not changing anything about the project. The logic being that user donations are typically small and one-off, and in some instances companies aren’t even allowed by the tax code to donate money.

I remember he even asked OSS project to sell him a license, because he has the budget from inside the company but if he writes it off as a donation, he’d get in trouble with legal. On the other hand, if he could get nothing more than an invoice saying “commercial license for X”, it’d be approved and he would be able to spend way more than as an individual.

@sjackman
Copy link
Member

sjackman commented Aug 9, 2018

I'm in favour of adding a donation message to https://github.com/Homebrew/install/blob/master/install and when the analytics message is printed the one time, and adding a brew donate command.

@vitorgalvao I agree with Vítor that we should offer a commercial license for Homebrew. I don't have a specific recommendation what the text of that license should be.

@emroch
Copy link

emroch commented Aug 9, 2018

The only concern I have with only putting the message in install is that first time users who might otherwise contribute will skip it for the sake of finishing what they were doing or because they are unsure how useful it will be. If there is a way to measure how much someone uses Homebrew (perhaps by the number of formulae installed?) then the message could be shown once after a threshold is hit.

Maybe I am in a small minority here, but I know that if I downloaded a new piece of freeware that immediately asked for a donation, I would skip it. I also enjoy contributing to projects I use, but I don't go seeking out ways to spend money. If it was only shown on install, there's very little chance I would remember to donate later on.

@iMichka
Copy link
Member

iMichka commented Aug 9, 2018

This is how oh-my-zsh does it, and I quite like it:
screen shot 2018-08-09 at 20 24 23

Of course if you run update each day it may be annoying, but oh-my-zsh is so nice to automatically run the update step for you only a few times per month.

@scpeters
Copy link
Member

@vitorgalvao said

Regarding donations from users versus companies, I remember Patrick McKenzie (@patio11) mentioning selling commercial licenses instead of asking for donations but not changing anything about the project.

I found some references:

@SMillerDev
Copy link
Member

Maybe I am in a small minority here, but I know that if I downloaded a new piece of freeware that immediately asked for a donation, I would skip it.

Same, but if the brew donate command would be at the top of the man page, it'd be a good reminder iyam

@claui
Copy link
Contributor Author

claui commented Aug 10, 2018

Thanks a lot to everyone for your thoughts and ideas, and @developit for chiming in!

Regarding donations from users versus companies, I remember Patrick McKenzie (@patio11) mentioning selling commercial licenses instead of asking for donations but not changing anything about the project. The logic being that user donations are typically small and one-off, and in some instances companies aren’t even allowed by the tax code to donate money.

@vitorgalvao I like this idea a lot! Could such a dual licensing model possibly work with the existing agreement between Homebrew and the Software Freedom Conservancy?

While I don’t know the terms of the agreement, the Conservancy’s agreement template mentions that “any and all software […] will be distributed solely as free software.” That part where it says “solely” makes me feel a bit pessimistic.

@MikeMcQuaid @JCount @mistydemeo @reitermarkus Feel free to correct me if I’m wrong (provided you feel comfortable discussing this publicly).

@sjackman
Copy link
Member

@claui wrote…

While I don’t know the terms of the agreement, the Conservancy’s agreement template mentions that “any and all software […] will be distributed solely as free software.” That part where it says “solely” makes me feel a bit pessimistic.

Excerpted from https://sfconservancy.org/docs/sponsorship-agreement-template.pdf

B. The purpose of the Project is to produce, distribute, document, and improve software and/or documentation that can be freely copied, modified and redistributed, and for which modified versions can also be redistributed (“Free Software”), and to facilitate and organize its production, improvement and ease of use.

b. The Project Will Be Free Software. Conservancy and the Committee agree that any and all software and/or documentation distributed by the Project will be distributed solely as Free Software. Conservancy retains the sole right to determine whether the Project's software and/or documentation constitutes Free Software (as defined herein).

My read is that all software/documentation distributed by the Project must be Free Software, and I'd feel that dual licensing would qualify. It's the Conservancy's call what qualifies as Free Software, so we're best asking them if they're okay with dual licensing. I'd hope that they would be.

@MikeMcQuaid
Copy link
Member

Let's not get ahead of ourselves here, folks. As (I'm pretty sure) the only person who has ever spent money on behalf of Homebrew I don't think experimenting with different ways to get additional funds is going to be worth the time and complexity for the benefits it will provide the project. Let's start with something small, incremental and what seems to be universally agreed: a one-time donate message that points to the donation section of our README.

@huntc
Copy link

huntc commented Aug 13, 2018

I'm unsure whether soliciting funding via the CLI would be a good idea. Have you considered a funding option via https://tidelift.com/?

@zbeekman
Copy link
Contributor

Hi @huntc, thanks for chiming in!

It looks like tidelift may be orthogonal to our goals; we're not trying to start a business. The homepage says:

FOR OPEN SOURCE MAINTAINERS
Tidelift gives maintainers and core teams—we call them lifters—a platform and a market for building highly profitable businesses around their projects. Tidelift provides the tools and audience necessary for lifters to get paid for delivering a professional software experience.

(caveat: I only skimmed the homepage)

@MikeMcQuaid
Copy link
Member

Locking this thread to avoid this becoming bikeshedding; we have an actionable item now and this doesn't really need discussed beyond that. Thanks all ❤️

@Homebrew Homebrew locked as resolved and limited conversation to collaborators Aug 13, 2018
@ghost ghost assigned MikeMcQuaid Aug 14, 2018
@ghost ghost added the in progress Maintainers are working on this label Aug 14, 2018
@MikeMcQuaid
Copy link
Member

I've opened PRs for this in #4682 and Homebrew/install#132

@claui
Copy link
Contributor Author

claui commented Aug 14, 2018

Cool, thanks!

Closing here.

@claui claui closed this as completed Aug 14, 2018
@ghost ghost removed the in progress Maintainers are working on this label Aug 14, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
discussion Input solicited from others features New features
Projects
None yet
Development

No branches or pull requests

17 participants