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-listintorepos/find-deps-files- find dependency files across ecosystems, listings end up at./eco/*/deps-filesextract-deps-from-files- extracted deps (direct deps only) end up in./eco/*/deps.json, format is{"dep": ["file1", "file2"]}wheredepis an ecosystem-specific identifier, andfile*are paths to package manifest files (relative to./repos/ours) in which thedepis mentioneddereference-github- iterate overeco/*/deps.jsonand writegithub.json(if there are bugs upstream you can get garbage in here; fix upstream and rerun)get-github-details- iterate overgithub.jsonand output additional info (funding links, stars) togh/{org}-{repo}.jsonmake-deps-csv- iterate overgithub.json, pull details fromgh/{org}-{repo}.json, and outputdeps.csvmake-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.csvtogether (usinggithub.json, too) intodetails.csv.