This repo contains a pipeline for finding sponsorable dependencies in our key repos (these ones). The purpose is to inform the allocation of our annual open source funding budget.
→ 💸 Fundable Dependencies ← Go check 'em out!
The code here is a gnarly mashup of scripts for zsh
, python3
, and node
.
You'll also need gh
... and probably some other
stuff? curl
, maybe? Good luck!
bootstrap
- set up ecosystem runtimesclone
- clone repos inrepo-list
intorepos/
find-deps-files
- find dependency files across ecosystems, listings end up at./eco/*/deps-files
extract-deps-from-files
- extracted deps (direct deps only) end up in./eco/*/deps.json
, format is{"dep": ["file1", "file2"]}
wheredep
is an ecosystem-specific identifier, andfile*
are paths to package manifest files (relative to./repos/ours
) in which thedep
is mentioneddereference-github
- iterate overeco/*/deps.json
and writegithub.json
(if there are bugs upstream you can get garbage in here; fix upstream and rerun)get-github-details
- iterate overgithub.json
and output additional info (funding links, stars) togh/{org}-{repo}.json
make-deps-csv
- iterate overgithub.json
, pull details fromgh/{org}-{repo}.json
, and outputdeps.csv
make-fundable-html
- iterate overdeps.csv
, pull details fromgithub.json
(I know, I know), and outputfundable.html
- Then copy/paste from Raw in the Sheet and manually clean it up into
submissions.csv
.- lowercase URLs
- attempt to dereference any non-GHS/OC URLs (committers?)
- filter out otherwise ineligible projects/maintainers
- communicate with employees who proposed ineligible projects
- convert all OC urls to GHS if possible (dedupe)
- Manually update
platforms.csv
. - Manually update
prev.csv
. collate
- folddeps.csv
,submissions.csv
,platforms.csv
, andprev.csv
together (usinggithub.json
, too) intodetails.csv
.