Page MenuHomePhabricator

Build an opt-in "report stats to upstream" workflow to collect version/usage data
Open, LowPublic


We could make better decisions about removing support for old versions of software, removing config options, and prioritizing applications if we had usage information. For example, it would greatly inform our ability to answer these questions:

  • When can we drop support for PHP 5.2 (T7408)?
  • Config option x.y seems silly -- can we just remove it, or is it being used?
  • Can we throw Ponder away?

The best answers to questions like these involve balancing costs against benefits, but we often have to guess at the magnitude of the benefits right now. Although we seem to be doing OK on this overall, it does cause us to make some very conservative choices (like retaining support for old versions of things) which might not really be necessary.

Overall, I'd like to collect this data:

  • Version of PHP and MySQL.
  • Version of phabricator, arcanist, and libphutil.
  • Version of hg, git, and svn.
  • Which config options have been changed from the default values.
  • Which setup issues are unresolved or ignored.

I think this data would be interesting, but it begins to ebb into less-anonymous territory, and I think it is less valuable for us to collect (fewer decisions would be informed by having it):

  • Order of magnitude counts for major objects: users, tasks, revisions, wiki pages, etc.

From a user perspective, these UX concerns are important:

  • It should be opt in.
  • It should clearly explain what data is being collected, and why.
  • It should show users exactly what data will be sent and let them confirm that they want to transmit it.
  • It should be as non-annoying as possible, and easy to dismiss permanently.

I think the trickiest part of this is UX around "non-annoying". Maybe something like a notification which doesn't fire until an install has been up for at least a week? But then we have to delete the notification if one administrator completes the process...

Event Timeline

epriestley raised the priority of this task from to Low.
epriestley updated the task description. (Show Details)
epriestley added a subscriber: epriestley.

Non-annoying would be IMO simply put it up along with install and "setup issueas" to simply be one of setup issues to opt in.

this could simply have setup issue interface and instead of Do some command line stuff there should be checklist like:

  • Yeah, I'm cool with sending usage data to you guys
  • Not now, remind me with next setup issue pops up or in a week
  • Oh HELL NO, I won't trust anybody with my data. go away

It certainly wouldn't annoy me...

The response could also inform installs about security updates, although it might be better to put that on a different channel so we can deliver notifications in a more timely manner.

The one about security update could also say things like:

  • "Since you've last updated, we've added 3 db migrations, one of which may be long"
  • "Since you've last updated, we've re-written Aphlict; You might have to make some changes to your setup"

We can do both this and security notices without exposing any information on the install beyond its existence, by downloading a CHANGELOG and diffing it with a local version.

I never remember the name of this ticket, so here are the things I think it's called: phone home mothership