Proposal: opam namespace (scope) for self-published packages

Hi, the issues that I have in mind are:

  • To ease publishing of packages without human intervention
  • To enable people to name their packages without worrying about what other packages are called, avoiding naming conflicts
  • To encourage a Literal name policy so that package names are obvious and discoverable; e.g. today people are using names like protobuf, pb, ocaml-protoc when reimplementing Protobuf functionality
  • To allow showing at a glance who published the package to help decide which package I want to use

As the opam ecosystem continues to grow, I think the above points will be helpful in scaling up.

@AltGr as you noted, pinning has several limitations to avoid fragile dependency chains. What I am suggesting is that opam namespaces can avoid the need for pinning. People can publish their namespaced packages with proper versions and hopefully use e.g. SemVer to preserve version invariants.

I should emphasize that I’m not saying that globally namespaced packages should go away; people who want to publish globally namespaced packages can go through the PR process we have today. These can be seen as similar to vanity URLs. Namespaced packages can be seen as a convenience and scalability aid.

2 Likes