adafruit / adabot

Adabot is our robot friend who helps Adafruit online
MIT License
13 stars 27 forks source link

Tabulate Core Download Stats #54

Closed sommersoft closed 5 years ago

sommersoft commented 5 years ago

With the translations, the core download stats have gotten long and eye-soreish. So, in an effort to reduce this, and make the meeting notes a little more mouse-wheel friendly, I figure tabulating the stats will do the trick.

Board        lang1   lang2   lang3
Feather        19      45     32
kattni commented 5 years ago

Sounds brilliant!

sommersoft commented 5 years ago

Soo...bit of an idea "fail". 😄 I scrolled passed the stats so much, I forgot that its not by board/language. Its release/board & release/language.

I still think I can squash it a little vertically.

kattni commented 5 years ago

It occurs to me that we could do like we do with the lib listings and maybe limit the stats to the top 10-20 boards or something.

This may mean that no community boards would end up on the list. My thought there is perhaps we add a file to the core repo, circuitpython_stats.md or something, that has a nicely rendered table of all the download statistics, and then show the top whatever in the weekly notes, and link to that file so people can see the rest if they'd like.

sommersoft commented 5 years ago

Thoughts?

Download stats by board:

| Board                                | 3.1.2  | 4.0.0-beta.0  |
| -------------------------------------|--------|---------------|
| arduino_mkr1300                      |   -    |       0       |
| arduino_mkrzero                      |   -    |       0       |
| arduino_zero                         |  115   |       0       |
| catwan_usbstick                      |   -    |       0       |
| circuitplayground_express            |  618   |       1       |
| circuitplayground_express_crickit    |  122   |       1       |
| feather52832                         |   23   |       -       |
| feather_huzzah                       |  221   |       -       |
| feather_m0_adalogger                 |   52   |       1       |
| feather_m0_basic                     |   84   |       1       |
| feather_m0_express                   |  131   |       1       |
| feather_m0_express_crickit           |   15   |       1       |
| feather_m0_rfm69                     |   15   |       1       |
| feather_m0_rfm9x                     |   22   |       1       |
| feather_m4_express                   |  163   |       2       |
| feather_nrf52840_express             |   -    |       1       |
| feather_radiofruit_zigbee            |   -    |       0       |
| gemma_m0                             |   69   |       1       |
| grandcentral_m4_express              |   -    |       1       |
| hallowing_m0_express                 |   48   |       1       |
| itsybitsy_m0_express                 |   77   |       1       |
| itsybitsy_m4_express                 |   97   |       2       |
| makerdiary_nrf52840_mdk              |   -    |       0       |
| makerdiary_nrf52840_mdk_usb_dongle   |   -    |       0       |
| meowmeow                             |   -    |       0       |
| metro_m0_express                     |   99   |       0       |
| metro_m4_express                     |   71   |       6       |
| mini_sam_m4                          |   -    |       0       |
| particle_argon                       |   -    |       2       |
| particle_boron                       |   -    |       0       |
| particle_xenon                       |   -    |       0       |
| pca10056                             |   -    |       0       |
| pca10059                             |   -    |       0       |
| pirkey_m0                            |   7    |       0       |
| pyportal                             |   -    |       0       |
| sparkfun_nrf52840_mini               |   -    |       0       |
| sparkfun_samd21_mini                 |   -    |       0       |
| trellis_m4_express                   |   -    |       3       |
| trinket_m0                           |  311   |       1       |
| -------------------------------------|--------|---------------|
|                                Total |  2360  |      29       |
| -------------------------------------|--------|---------------|

Haven't done languages yet, but will be the same...

siddacious commented 5 years ago

verra-naas

sommersoft commented 5 years ago

Updated sample, with full core stats section:

State of CircuitPython + Libraries
Overall
* 47 pull requests merged
  * 7 authors - microbuilder, jerryneedell, tannewt, dhalbert, melissagirl, Tasm-Devil, kattni
  * 5 reviewers - tannewt, ladyada, kattni, dhalbert, siddacious
* 8 closed issues by 4 people, 4 opened by 4 people

Core
* 23 pull requests merged
  * 4 authors - dhalbert, Tasm-Devil, jerryneedell, tannewt
  * 4 reviewers - dhalbert, tannewt, ladyada, kattni
* 9 open pull requests
  * https://github.com/adafruit/circuitpython/pull/1496
  * https://github.com/adafruit/circuitpython/pull/1495
  * https://github.com/adafruit/circuitpython/pull/1494
  * https://github.com/adafruit/circuitpython/pull/1423
  * https://github.com/adafruit/circuitpython/pull/1415
  * https://github.com/adafruit/circuitpython/pull/1365
  * https://github.com/adafruit/circuitpython/pull/1363
  * https://github.com/adafruit/circuitpython/pull/1274
  * https://github.com/adafruit/circuitpython/pull/1144
* 1 closed issues by 1 people, 1 opened by 1 people
* 152 open issues
  * https://github.com/adafruit/circuitpython/issues

Download stats by board:

| Board                                | 3.1.2  | 4.0.0-beta.0  |
| -------------------------------------|--------|---------------|
| arduino_mkr1300                      |   -    |       1       |
| arduino_mkrzero                      |   -    |       0       |
| arduino_zero                         |  132   |       3       |
| catwan_usbstick                      |   -    |       0       |
| circuitplayground_express            |  682   |       3       |
| circuitplayground_express_crickit    |  137   |       2       |
| feather52832                         |   25   |       -       |
| feather_huzzah                       |  235   |       -       |
| feather_m0_adalogger                 |   53   |       3       |
| feather_m0_basic                     |   86   |       3       |
| feather_m0_express                   |  141   |       3       |
| feather_m0_express_crickit           |   15   |       1       |
| feather_m0_rfm69                     |   15   |       1       |
| feather_m0_rfm9x                     |   23   |       1       |
| feather_m4_express                   |  173   |       4       |
| feather_nrf52840_express             |   -    |       3       |
| feather_radiofruit_zigbee            |   -    |       0       |
| gemma_m0                             |   76   |       2       |
| grandcentral_m4_express              |   -    |       4       |
| hallowing_m0_express                 |   51   |       3       |
| itsybitsy_m0_express                 |   79   |       1       |
| itsybitsy_m4_express                 |  107   |       3       |
| makerdiary_nrf52840_mdk              |   -    |       0       |
| makerdiary_nrf52840_mdk_usb_dongle   |   -    |       0       |
| meowmeow                             |   -    |       1       |
| metro_m0_express                     |  107   |       3       |
| metro_m4_express                     |   77   |       6       |
| mini_sam_m4                          |   -    |       0       |
| particle_argon                       |   -    |       3       |
| particle_boron                       |   -    |       0       |
| particle_xenon                       |   -    |       0       |
| pca10056                             |   -    |       0       |
| pca10059                             |   -    |       2       |
| pirkey_m0                            |   7    |       0       |
| pyportal                             |   -    |       0       |
| sparkfun_nrf52840_mini               |   -    |       0       |
| sparkfun_samd21_mini                 |   -    |       1       |
| trellis_m4_express                   |   -    |      20       |
| trinket_m0                           |  340   |       4       |
| -------------------------------------|--------|---------------|
|                                Total |  2561  |      81       |
| -------------------------------------|--------|---------------|

By language:

| Board   | 3.1.2  | 4.0.0-beta.0  |
| --------|--------|---------------|
| ID      |   -    |       2       |
| de_DE   |   -    |       0       |
| en_US   |  2561  |      74       |
| es      |   -    |       1       |
| fil     |   -    |       1       |
| fr      |   -    |       3       |
| it_IT   |   -    |       0       |
| pt_BR   |   -    |       0       |
| --------|--------|---------------|
|   Total |  2561  |      81       |
| --------|--------|---------------|

Libraries
* 24 pull requests merged
  * 4 authors - dhalbert, microbuilder, melissagirl, kattni
  * 5 reviewers - tannewt, ladyada, kattni, dhalbert, siddacious
* 11 open pull requests

Comparing to the latest run on AWS S3, saves 16 lines. Not as much as I was hoping for, but...better?

If we limited the boards to the "Top #X", it'll save 39 - X more lines. However, I'll probably have to re-work some of the dictionaries to allow for sorting by downloads. Or...something. :smile:

kattni commented 5 years ago

Even like this, it looks much cleaner. I also like the easy comparison of the two versions.

It occurs to me that "top x boards" would have to choose between stable or unstable, and sort by that, or you'd need more tables. So in the end you wouldn't save as many lines because the top downloads may not match between stable and unstable. So we would have to separate stable and unstable into two separate tables, of say, 10 each, which would still save more space, but not as much as if they were the same.

So only showing the top 10 boards may still be worth considering, but I think it would require separate tables for stable and unstable. But it does have the downside of no longer highlighting the rest of the boards.

I think the iteration you pasted above is a good start, @sommersoft. I would suggest doing it. We can continue to refine it if we decide we want to do that.