Slide 1

Slide 1 text

Tools to explore the OPAM Community Amir Chaudhry Christophe Troestler OCaml 2015 Vancouver

Slide 2

Slide 2 text

Community? Code — libraries, projects, applications Comms — email, social, websites, meetups Orgs — companies, governance

Slide 3

Slide 3 text

Community? Code — libraries, projects, applications Comms — email, social, websites, meetups Orgs — companies, governance

Slide 4

Slide 4 text

Scope and Aims Create tools for people/projects to use
 lots of existing libs to build on e.g. opam-lib, ocaml-git, cohttp, etc Qualitative look at the OPAM universe
 constrained to OCaml code, version-controlled in git

Slide 5

Slide 5 text

Qualitative vs Quantitative

Slide 6

Slide 6 text

Qualitative Quantitative Holistic
 Understand complex relationships Targeted
 Explanation and control Patterns and themes Non-causal Correlation and validation Cause and effect Evolves with data Subjective ongoing judgement Hypothesis driven Interpret once at the end Continual interpretation Unique to context Summative interpretation Generalise findings Adapted from: http://www.qualitative-researcher.com/focus-group/qualitative-vs-quantitative/

Slide 7

Slide 7 text

Qualitative Quantitative Holistic
 Understand complex relationships Targeted
 Explanation and control Patterns and themes Non-causal Correlation and validation Cause and effect Evolves with data Subjective ongoing judgement Hypothesis driven Interpret once at the end Continual interpretation Unique to context Summative interpretation Generalise findings Adapted from: http://www.qualitative-researcher.com/focus-group/qualitative-vs-quantitative/

Slide 8

Slide 8 text

Scope and Aims Create tools for people/projects to use
 lots of existing libs to build on e.g. opam-lib, ocaml-git, cohttp, etc Qualitative look at the OPAM universe
 constrained to OCaml code, version-controlled in git

Slide 9

Slide 9 text

Starting point OPAM metadata Commits Authors Package relations github.com/ocamllabs/cosmetrics

Slide 10

Slide 10 text

Scope and Aims Create tools for people/projects to use
 lots of existing libs to build on e.g. opam-lib, ocaml-git, cohttp, etc Qualitative look at the OPAM universe
 constrained to OCaml code, version-controlled in git

Slide 11

Slide 11 text

Coverage Can reach ~70% of OPAM packages
 Involves guessing the dev-repo field Simple filtering for OCaml code
 Check for presence of .ml files in src/ or lib/ Can actually look at ~60% of packages
 Issues with connections to some repos (bitbucket)

Slide 12

Slide 12 text

All commits

Slide 13

Slide 13 text

All commits

Slide 14

Slide 14 text

Examples

Slide 15

Slide 15 text

Add more stuff… Pull Requests/Issues! Other VCS’! Project features! Dashboards!

Slide 16

Slide 16 text

… but remember Qualitative Exploratory Beware Assumptions

Slide 17

Slide 17 text

Tools matter Existing libraries made this feasible Quick iteration is important Adaptable to different purposes

Slide 18

Slide 18 text

Feedback?