[BLOG] opam 101: the first steps, by OCamlPro

Greetings Cameleers,

Here’s a quick heads up about our latest blog post: opam 101: the first steps

We believe this short tutorial could be useful to anybody who is looking into getting acquainted with our beloved package manager, be they new or simply unaware about how opam interacts with your system at init time!

Hoping that it may serve as a reference for all newcomers to the ecosystem,

Kind regards,
The OCamlPro Team


From my perspective, what would be great would be a tutorial oriented about the developer experience (installing a local switch, freezing dependencies with a lock, etc.).



Dario here, co-author of the blog post, thank you so much for tuning in! There are more blog posts on the way and there just might be another article around the metaphorical corner that will cover some of the points you’ve leveraged! :slight_smile:

We’ll see you again then hopefully!

Kind regards :+1:


Great article! This is exactly the blog post I wanted to read to understand opam and switches better.

I had to figure out many things on my own and build my own intuition (which I still wasn’t sure reflects the reality). It’s nice see that my understanding is confirmed, and it really makes me feel like I understand packages in OCaml enough to be productive :relieved:


Nice article.

I found the process of pinning a bit difficult to get right, if you need ideas for a future blog post :slightly_smiling_face:

Also, more generally, how one could go about vendoring a specific dependency while keeping tooling effective (LSP go to definition, etc.)


Hi Benjamin! Thank you for tuning in as well!

As far as I know, i don’t believe opam is equipped with QoL features for vendoring operations, as they are outside of its scope as they are not packages to work with. The most closely related feature i can think of from the top of my head is probably that of fetching sources directly for you with the opam source my-package command ? :smile_cat:

I’ve asked around and chances are using git subtrees remains the adequate strategy to go about most cases.

I hope to have been able to answer your question to some extent,

Kind regards

1 Like

Is the text intended to be white on gray?

Oops sorry that’s a dark theme mishap :sweat_smile: i will look into it