- JS successful package creation: 3/3
- Rust successful package creation: 3/3
- OCaml successful package creation: 0/3
Average time it took to publish the package (includes the time it took to make an account on npm/cargo):
- JS: 21minutes
- Rust: 18minutes
- OCaml: N/A (none succeeded, took but on average it took 47 minutes for them to give up)
This was a bit alarming to me. The feedback I got:
- Documentation was confusing
- Opam commands ie.
sourceare confusing and unlike anything they’ve used in other communities. Developers especially failed hard on switch and pin. Looking for familiarity, ie.
unpublishsemantics of other package managers
Also many were surprised that there was a review process to be admitted, and the need to fork a repository, many turned off by the ceremony that similar to submitting an app for the app store.
Hopefully this is insightful of how OPAM could do a better job at streamlining this process of package creation and distribution. I’m a little uncertain for why OPAM takes this approach of having to fork instead of just using a cli like npm’s or cargo’s. Also maybe for opam 2, using commands similar/familiar to users would be helpful(
I asked the interns what they wish all these package managers did:
- Package up the libraries in a format to be consumable by others
- Optimize library size for consumption
- Optimize library performance
Rust’s Cargo somewhat does these already
I hope that the people who work on OPAM can try to improve the developer experience for people who might be interested in working on libraries in OPAM.