caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Dario Teixeira <darioteixeira@yahoo.com>
To: OCaml mailing-list <caml-list@inria.fr>
Subject: [Caml-list] OPAM conventions
Date: Wed, 12 Dec 2012 06:47:00 -0800 (PST)	[thread overview]
Message-ID: <1355323620.61324.YahooMailNeo@web120404.mail.ne1.yahoo.com> (raw)

Hi,

I've been looking at the OPAM package database -- trying to determine overall
conventions and best practices -- and I came across some inconsistencies.
Though in most cases these are purely cosmetical, I reckon that nevertheless
we could all benefit if some standardisation is agreed upon on.  Examples:

1) Package naming

   For some values of "foo", OPAM's package name for project "ocaml-foo"
   is also "ocaml-foo", whereas for others is simply "foo".  This is an
   ackowledged issue by OPAM developers:
   https://github.com/OCamlPro/opam-repository/issues/163

  In my mind, there are only two sensible policies for naming OPAM packages:

  a) OPAM packages should preserve the name of the original project.
     Thus, if the project is named "ocaml-foo", the OPAM package will
     also be "ocaml-foo".

  b) OPAM packages should have the same name as the findlib entry.
     If project "ocaml-foo" registers itself in findlib with name
     "foo", then "foo" should also be the name of the OPAM package.

   Good arguments can be made for and against each option.  Though this
   is largely a bike-shedding issue, I think the community should make
   a decision sooner rather than later.

2) Invoking executables

   To invoke, say, a configure script, some packages will nonchalantly
   just declare ["./configure"] whereas others will ask the shell to
   do it: ["sh" "configure"].  While either should work in any Unix
   system, should one be preferred for compatibility with more exotic
   systems?

3) Package removal

   For most values of "foo", package "foo" will just declare ["ocamlfind"
   "remove" "foo"].  However, this approach seems a bit brittle to me.
   If the Makefile supports "uninstall" (which is the usually the case
   for OASIS packages), then I reckon that ["%{make}%" "uninstall"]
   should be preferred.

   Having said that, it seems that ["%{make}%" "uninstall"] is currently
   not working (OPAM tries to download the package de novo upon removal!).
   Is this a bug or a feature?

4) Findlib dependency

   Most packages do declare a dependency on ocamlfind.  However, this is
   not universal, even for packages that do register themselves with findlib.
   What should be the standard here: always declare a dependency, or omit
   it altogether since it is implied?

Thank you for your attention!
Best regards,
Dario Teixeira


             reply	other threads:[~2012-12-12 14:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-12 14:47 Dario Teixeira [this message]
2012-12-12 16:53 ` Markus Mottl
2012-12-12 17:36 ` Anil Madhavapeddy
2012-12-12 18:01   ` Wojciech Meyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1355323620.61324.YahooMailNeo@web120404.mail.ne1.yahoo.com \
    --to=darioteixeira@yahoo.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).