+ {{ $base := "https://scverse.org/stats/" }} + {{ $stats := transform.Unmarshal (resources.GetRemote (printf "%sstats.json" $base)).Content }} + {{ $contributors := transform.Unmarshal (resources.GetRemote (printf "%scontributors.json" $base)).Content }} + {{ $gh := $stats.github }} + + +

{{ .Params.preface | safeHTML }}

+ +

+ Updated + +

+ + {{/* The one number the page leads with. Everything else is a tile. */}} +
+ {{ printf "%.1fM" (div (float $stats.pepy_downloads) 1000000.0) }} + downloads of the core packages, all time + + {{ lang.FormatNumberCustom 0 $stats.pepy_avg_daily_30 }} a day on average over the last 30 days + +
+ + {{ $groups := slice + (dict + "name" "Community" + "tiles" (slice + (dict "value" $stats.zulip_users "label" "Zulip members") + (dict "value" $stats.bluesky_followers "label" "Bluesky followers") + (dict "value" $gh.unique_contributors "label" "code contributors") + (dict "value" $gh.organization_members "label" "GitHub organisation members") + (dict "value" $stats.core_team_size "label" "core team members") + ) + ) + (dict + "name" "Packages and code" + "tiles" (slice + (dict "value" $stats.ecosystem_packages "label" "ecosystem packages") + (dict "value" $gh.total_repositories "label" "core repositories") + (dict "value" $gh.total_stars "label" "GitHub stars") + (dict "value" $gh.total_pull_requests_last_year "label" "pull requests in the last year") + (dict "value" $gh.total_pull_requests_closed "label" "pull requests closed, all time") + ) + ) + (dict + "name" "Issues and citations" + "tiles" (slice + (dict "value" $gh.total_issues_closed "label" "issues closed") + (dict "value" $gh.total_issues_open "label" "issues open") + (dict "value" $stats.citation_count "label" "citations of scverse papers") + ) + ) + }} + + {{ range $groups }} +

{{ .name }}

+
+ {{ range .tiles }} +
+ {{ lang.FormatNumberCustom 0 .value }} + {{ .label }} +
+ {{ end }} +
+ {{ end }} + + +

Top contributors

+

+ {{ lang.FormatNumberCustom 0 $contributors.total_contributors }} people have contributed code to the core + packages. These are the busiest, by number of commits. +

+ + {{ $top := first 24 $contributors.contributors }} + {{ $most := (index $top 0).contributions }} +
    + {{ range $top }} +
  1. + + + {{ .name | default .login }} + + {{ lang.FormatNumberCustom 0 .contributions }} + +
  2. + {{ end }} +
+ +

+ …and {{ lang.FormatNumberCustom 0 (sub $contributors.total_contributors (len $top)) }} more. +

+ +

+ Collected from the GitHub, Zulip, Bluesky, PePy and OpenAlex APIs by + scverse/stats. Contribution counts come from the core + repositories only, so they undercount anyone whose work lives in an ecosystem package. +

+