Open dominikschulz opened 3 years ago
Any others we could use?
It's fun you're asking that.
I've started a while ago with some bash scripts to gather some stats about Gopass from Github API and recently moved to a Google sheet with a GApps script.
On 2021-02-04:
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.11.0 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
1026
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.10.1 | grep "download_count" |awk '{s+=$2} END {print s}'
10572
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.10.0 | grep "download_count" |awk '{s+=$2} END {print s}'
397
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.9.2 | grep "download_count" |awk '{s+=$2} END {print s}'
5441
On 2021-02-25:
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.12.0 | grep "download_count" |
awk '{s+=$2} END {print s}'
448
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.12.1 | grep "download_count" |
awk '{s+=$2} END {print s}'
399
On 2021-03-12:
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.12.1 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
894
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.12.0 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
483
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.11.0 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
1562
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.10.1 | grep "download_count" |awk '{s+=$2} END {print s}'
14906
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.10.0 | grep "download_count" |awk '{s+=$2} END {print s}'
499
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.9.2 | grep "download_count" |awk '{s+=$2} END {print s}'
5556
And here is the Google sheet: https://docs.google.com/spreadsheets/d/1kfEG8jZ2LfvF6arOAbsYu9uiiV_KZ2n5xtHKfa31_O4/edit?usp=sharing
But a better tooling (Grafana for graphs? A Jupyter notebook?) would be nice :D
Running my curl stuff again today (2021-03-19) gives:
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.12.2 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
284
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.12.1 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
1002
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.12.0 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
530
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.11.0 | grep "download_count" | head -n -2 | awk '{s+=$2} END {print s}'
1695
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.10.1 | grep "download_count" |awk '{s+=$2} END {print s}'
15465
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.10.0 | grep "download_count" |awk '{s+=$2} END {print s}'
500
$ curl -s https://api.github.com/repos/gopasspw/gopass/releases/tags/v1.9.2 | grep "download_count" |awk '{s+=$2} END {print s}'
5574
v1.10.1 must be linked somewhere or used by some distro or automated process since it has got a lot of new downloads.
I have to admit your comments about the download numbers got me thinking about this. A curl script is nice, but I was looking for something more structured. A Google Sheet is nice and might hit a sweet spot.
Another option would be a script that can be run - manually or as a GHA - to update that info either on gopass.pw or on a GH wiki page.
As always this shouldn't require complex custom infrastructure since I'd like to avoid liabilities as much as possible.
$ curl -s 'https://pkgstats.archlinux.de/api/packages/gopass' | jq
{
"name": "gopass",
"samples": 14392,
"count": 207,
"popularity": 1.44,
"startMonth": 202102,
"endMonth": 202102
}
$ popcornctl --server popcorn.voidlinux.org --port 8003 pkgstats --pkg gopass
According to PopCorn data, there are at least 5 installs on the following versions:
1.10.1_1
1.10.1_2
1.12.0_1
But the numbers look extremely low (even for very popular packages).
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Should we maybe also consider including a user survey in one release? It could prompt the user maybe once to complete it... That could be a lovely experience, I'd be curious to know more about our users.
I did think about this before, too. But I wasn't sure if that would maybe feel to invasive?
I still don't think we should do a survey.
But I'd like to automate stats aggregation a bit and publish that when we update the website.
Maybe querying the GraphQL API with following could be a starting point
{
repository(owner: "gopasspw", name: "gopass") {
releases(first: 100, orderBy: {field: CREATED_AT, direction: DESC}) {
nodes {
releaseAssets(first: 60) {
nodes {
downloadCount
name
}
totalCount
}
name
}
totalCount
pageInfo {
endCursor
hasNextPage
}
}
}
}
{
"data": {
"repository": {
"releases": {
"nodes": [
{
"releaseAssets": {
"nodes": [
{
"downloadCount": 1,
"name": "gopass-1.15.4-linux-armv7.tar.gz"
},
{
"downloadCount": 1,
"name": "gopass-1.15.4-windows-armv6.zip"
},
{
"downloadCount": 1,
"name": "gopass-1.15.4-openbsd-armv7.tar.gz"
},
{
"downloadCount": 39,
"name": "gopass-1.15.4-linux-amd64.tar.gz"
},
...
Gopass does not contain any kind of telemetry by design. This is a core principle and we will not change that.
But still it is very interesting to us developers to get some understanding about it's usage, e.g. how many users we have, on which platforms and so on. One example why this matters are the - planned and now shelved - breaking changes which were discussed in e.g. #1365 . Before starting that discussion I had the impression that gopass had at most a few hundred users.
But if we look at homebrew for example we see that we had at least 12k install of the official gopass formula in the last year. That is at least an order of magnitude more than I anticipated.
More users means we should be much more careful wrt. breaking changes, documentation etc.
So my proposal is that we use the usage numbers that already exist (e.g. from GitHub, Homebrew, maybe some distros have numbers) and create a little bit of tooling retrieve these on a regular basis. That would help us prioritize our (very) limited time better between different platforms / features.